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