Hi Xueming, > > This patch introduce new TX offloads flag for devices that support > tunnel agnostic checksum and TSO offloads. > > 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
So in terms of usage - what is the difference with current TSO types? Konstantin > > Signed-off-by: Xueming Li <xuemi...@mellanox.com> > --- > lib/librte_ether/rte_ethdev.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h > index 1a5b4cdc5..d8d08ccb2 100644 > --- a/lib/librte_ether/rte_ethdev.h > +++ b/lib/librte_ether/rte_ethdev.h > @@ -979,6 +979,16 @@ struct rte_eth_conf { > * the same mempool and has refcnt = 1. > */ > #define DEV_TX_OFFLOAD_SECURITY 0x00020000 > +/**< Device supports generic tunnel checksum and TSO offloading. > + * Checksum and TSO are done based on following mbuf fields: > + * - Length of each header > + * - Type of outer/inner L3 type, IPv4 or IPv6 > + * - Type of outer/inner L4 type, TCP or UDP. > + * - PKT_TX_TUNNEL_VXLAN implies outer UDP type. > + * - PKT_TX_TCP_SEG implies inner TCP type. > + * Tunnel type is optional except PKT_TX_TUNNEL_VXLAN to hint outer UDP. > + */ > +#define DEV_TX_OFFLOAD_GENERIC_TNL_CKSUM_TSO 0x00040000 > > /* > * If new Tx offload capabilities are defined, they also must be > -- > 2.13.3