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

Thomas Monjalon thomas at monjalon.net
Tue Apr 17 23:21:55 CEST 2018


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)







More information about the dev mailing list