[dpdk-dev] [PATCH v2 05/12] mbuf: add new Rx checksum mbuf flags

Maxime Coquelin maxime.coquelin at redhat.com
Tue Oct 11 15:43:00 CEST 2016



On 10/03/2016 11:00 AM, Olivier Matz wrote:
> Following discussions in [1] and [2], introduce a new bit to
> describe the Rx checksum status in mbuf.
>
> Before this patch, only one flag was available:
>   PKT_RX_L4_CKSUM_BAD: L4 cksum of RX pkt. is not OK.
>
> And same for L3:
>   PKT_RX_IP_CKSUM_BAD: IP cksum of RX pkt. is not OK.
>
> This had 2 issues:
> - it was not possible to differentiate "checksum good" from
>   "checksum unknown".
> - it was not possible for a virtual driver to say "the checksum
>   in packet may be wrong, but data integrity is valid".
>
> This patch tries to solve this issue by having 4 states (2 bits)
> for the IP and L4 Rx checksums. New values are:
>
>  - PKT_RX_L4_CKSUM_UNKNOWN: no information about the RX L4 checksum
>    -> the application should verify the checksum by sw
>  - PKT_RX_L4_CKSUM_BAD: the L4 checksum in the packet is wrong
>    -> the application can drop the packet without additional check
>  - PKT_RX_L4_CKSUM_GOOD: the L4 checksum in the packet is valid
>    -> the application can accept the packet without verifying the
>       checksum by sw
>  - PKT_RX_L4_CKSUM_NONE: the L4 checksum is not correct in the packet
>    data, but the integrity of the L4 data is verified.
>    -> the application can process the packet but must not verify the
>       checksum by sw. It has to take care to recalculate the cksum
>       if the packet is transmitted (either by sw or using tx offload)
>
>   And same for L3 (replace L4 by IP in description above).
>
> This commit tries to be compatible with existing applications that
> only check the existing flag (CKSUM_BAD).
>
> [1] http://dpdk.org/ml/archives/dev/2016-May/039920.html
> [2] http://dpdk.org/ml/archives/dev/2016-June/040007.html
>
> Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> ---
>  doc/guides/rel_notes/release_16_11.rst |  6 ++++
>  lib/librte_mbuf/rte_mbuf.c             | 16 +++++++++--
>  lib/librte_mbuf/rte_mbuf.h             | 51 ++++++++++++++++++++++++++++++++--
>  3 files changed, 68 insertions(+), 5 deletions(-)
>
> diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst
> index f29b44c..2aff84c 100644
> --- a/doc/guides/rel_notes/release_16_11.rst
> +++ b/doc/guides/rel_notes/release_16_11.rst
> @@ -60,6 +60,12 @@ New Features
>    Added a new function ``rte_raw_cksum_mbuf()`` to process the checksum of
>    data embedded in an mbuf chain.
>
> +* **Added new Rx checksum mbuf flags.**
> +
> +  Added new Rx checksum flags in mbufs to described more states: unknown,
s/described/describe/

With this typo fixed, it looks good to me:
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

Thanks,
Maxime


More information about the dev mailing list