17/04/2018 16:47, Xueming Li: > This patch introduce new TX offload flags for device that supports > IP or UDP tunneled packet L3/L4 checksum and TSO offload. > > 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 tunnel headers that contain payload length, sequence id > or checksum will not be updated. [...] > +/**< Device supports UDP tunneled packet TSO */ > +#define DEV_TX_OFFLOAD_UDP_TNL_TSO 0x00040000 > +/**< Device supports IP based tunnel packet TSO */ > +#define DEV_TX_OFFLOAD_IP_TNL_TSO 0x00080000
These doxygen comments are related to the constants on the next line. So the syntax is /** not /**< [...] General comment: API description is required for application writers and PMD developers. You need to provide details about what the offload is expected to do. > +/** > + * Generic IP encapsulated tunnel type, used for TSO offload instead > + * of defining new tunnel types. The words "instead of defining new tunnel types" are justifications for the commit message, not for the code itself. > This feature relies on offloading > + * DEV_TX_OFFLOAD_IP_TNL_TSO present. I think you want to say that DEV_TX_OFFLOAD_IP_TNL_TSO must be enabled. > + * Tunnel header that contains payload length, sequence id or checksum > + * is not expected to be updated. OK So what is updated by this offload exactly? inner and outer checksums on IPV4/TCP/UDP? What else? No IPv6? No SCTP? > + */ > +#define PKT_TX_TUNNEL_IP (0xDULL << 45) > +/** > + * Generic UDP encapsulated tunnel type, used for TSO offload instead > + * of defining new tunnel types. This feature relies on offloading > + * DEV_TX_OFFLOAD_UDP_TNL_TSO present. > + * Tunnel header that contains payload length, sequence id or checksum > + * is not expected to be updated. > + */ Same comments as for PKT_TX_TUNNEL_IP. > +#define PKT_TX_TUNNEL_UDP (0xEULL << 45)