[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