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

Thomas Monjalon thomas at monjalon.net
Wed Apr 18 16:28:23 CEST 2018


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.


> --- 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