[dpdk-dev] [PATCH v2 1/5] ethdev: introduce Tx generic tunnel offloads

Ananyev, Konstantin konstantin.ananyev at intel.com
Mon Jan 29 17:49:16 CET 2018


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



More information about the dev mailing list