[dpdk-dev] [PATCH v6 1/2] ethdev: introduce generic IP/UDP tunnel checksum and TSO

Ananyev, Konstantin konstantin.ananyev at intel.com
Wed Apr 18 18:45:53 CEST 2018



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Wednesday, April 18, 2018 3:28 PM
> To: Xueming Li <xuemingl at mellanox.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>; Yongseok Koh <yskoh at mellanox.com>; Olivier MATZ
> <olivier.matz at 6wind.com>; Shahaf Shuler <shahafs at mellanox.com>; Iremonger, Bernard <bernard.iremonger at intel.com>; Yigit, Ferruh
> <ferruh.yigit at intel.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v6 1/2] ethdev: introduce generic IP/UDP tunnel checksum and TSO
> 
> 18/04/2018 15:58, Xueming Li:
> > This patch introduce new TX offload flags for device that supports
> > IP or UDP tunneled packet L3/L4 checksum and TSO offload.
> > It will be used for non-standard tunnels.
> >
> > The support from the device is for inner and outer checksums on
> > IPV4/TCP/UDP and TSO for *any packet with the following format*:
> >
> > <some headers> / [optional IPv4/IPv6] / [optional TCP/UDP] / <some
> > headers> / [optional inner IPv4/IPv6] / [optional TCP/UDP]
> >
> > For example the following packets can use this feature:
> >
> > 1. eth / ipv4 / udp / VXLAN / ip / tcp
> > 2. eth / ipv4 / GRE / MPLS / ipv4 / udp
> >
> > Please note that specific tunnel headers that contain payload length,
> > sequence id or checksum will not be updated.
> >
> > The new flag PKT_TX_TUNNEL_IP is redundant with PKT_TX_OUTER_IP_CKSUM.
> > The old flag PKT_TX_OUTER_IP_CKSUM can be deprecated and removed in
> > later release.
> >
> > Signed-off-by: Xueming Li <xuemingl at mellanox.com>
> 
> Except a small comment below, it looks OK.
> 
> Acked-by: Thomas Monjalon <thomas at monjalon.net>
> 
> Please send a deprecation notice for PKT_TX_OUTER_IP_CKSUM.

I probably missed something, but why PKT_TX_OUTER_IP_CKSUM
is supposed to be deprecated?
Konstantin

> 
> 
> > --- a/lib/librte_mbuf/rte_mbuf.h
> > +++ b/lib/librte_mbuf/rte_mbuf.h
> > +/**
> > + * Generic IP encapsulated tunnel type, used for TSO and checksum offload.
> > + * It can be used for tunnels which are not standards or listed above.
> > + * It is preferred to use specific tunnel flags like PKT_TX_TUNNEL_VXLAN
> > + * if possible.
> 
> PKT_TX_TUNNEL_GRE or PKT_TX_TUNNEL_IPIP may be a better example than
> PKT_TX_TUNNEL_VXLAN in IP tunnel case.
> 
> > + * The ethdev must be configured with DEV_TX_OFFLOAD_IP_TNL_TSO.
> > + * Outer and inner checksums are done according to the existing flags like
> > + * PKT_TX_xxx_CKSUM.
> > + * Specific tunnel headers that contain payload length, sequence id
> > + * or checksum are not expected to be updated.
> > + */
> > +#define PKT_TX_TUNNEL_IP (0xDULL << 45)
> > +/**
> > + * Generic UDP encapsulated tunnel type, used for TSO and checksum offload.
> > + * UDP tunnel type implies outer IP layer.
> > + * It can be used for tunnels which are not standards or listed above.
> > + * It is preferred to use specific tunnel flags like PKT_TX_TUNNEL_VXLAN
> > + * if possible.
> > + * The ethdev must be configured with DEV_TX_OFFLOAD_UDP_TNL_TSO.
> > + * Outer and inner checksums are done according to the existing flags like
> > + * PKT_TX_xxx_CKSUM.
> > + * Specific tunnel headers that contain payload length, sequence id
> > + * or checksum are not expected to be updated.
> > + */
> > +#define PKT_TX_TUNNEL_UDP (0xEULL << 45)
> 
> 



More information about the dev mailing list