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

Olivier Matz olivier.matz at 6wind.com
Mon Apr 23 11:59:31 CEST 2018


Hi Xueming,

First, sorry for the lack of quick feedback on this series.

On Fri, Apr 20, 2018 at 08:48:58PM +0800, Xueming Li wrote:
> 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.
> 
> Signed-off-by: Xueming Li <xuemingl at mellanox.com>
> Acked-by: Thomas Monjalon <thomas at monjalon.net>

[...]

> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -210,6 +210,31 @@ extern "C" {
>  #define PKT_TX_TUNNEL_GENEVE  (0x4ULL << 45)
>  /**< TX packet with MPLS-in-UDP RFC 7510 header. */
>  #define PKT_TX_TUNNEL_MPLSINUDP (0x5ULL << 45)
> +/**
> + * 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_GRE
> + * or PKT_TX_TUNNEL_IPIP if possible.
> + * 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_GRE
> + * or PKT_TX_TUNNEL_IPIP if possible.

Minor comment:
A better example here, instead of GRE and IPIP, could be VXLAN because
it is UDP-based.

Then,
Acked-by: Olivier Matz <olivier.matz at 6wind.com>

Thanks


More information about the dev mailing list