[PATCH v11 15/18] net/idpf: add support for Rx offloading

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Tue Oct 25 12:03:38 CEST 2022


On 10/24/22 16:12, Junfeng Guo wrote:
> Add Rx offloading support:
>   - support CHKSUM and RSS offload for split queue model
>   - support CHKSUM offload for single queue model
> 
> Signed-off-by: Beilei Xing <beilei.xing at intel.com>
> Signed-off-by: Xiaoyun Li <xiaoyun.li at intel.com>
> Signed-off-by: Junfeng Guo <junfeng.guo at intel.com>
> ---
>   doc/guides/nics/features/idpf.ini |   2 +
>   drivers/net/idpf/idpf_ethdev.c    |   9 ++-
>   drivers/net/idpf/idpf_rxtx.c      | 122 ++++++++++++++++++++++++++++++
>   3 files changed, 132 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/guides/nics/features/idpf.ini b/doc/guides/nics/features/idpf.ini
> index d4eb9b374c..c86d9378ea 100644
> --- a/doc/guides/nics/features/idpf.ini
> +++ b/doc/guides/nics/features/idpf.ini
> @@ -9,5 +9,7 @@
>   [Features]
>   Queue start/stop     = Y
>   MTU update           = Y
> +L3 checksum offload  = P
> +L4 checksum offload  = P

RSS hash missing

>   Packet type parsing  = Y
>   Linux                = Y
> diff --git a/drivers/net/idpf/idpf_ethdev.c b/drivers/net/idpf/idpf_ethdev.c
> index 739cf31d65..d8cc423a23 100644
> --- a/drivers/net/idpf/idpf_ethdev.c
> +++ b/drivers/net/idpf/idpf_ethdev.c
> @@ -94,7 +94,14 @@ idpf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   	dev_info->max_mac_addrs = IDPF_NUM_MACADDR_MAX;
>   	dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
>   		RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;
> -	dev_info->rx_offload_capa = 0;
> +
> +	dev_info->rx_offload_capa =
> +		RTE_ETH_RX_OFFLOAD_IPV4_CKSUM		|
> +		RTE_ETH_RX_OFFLOAD_UDP_CKSUM		|
> +		RTE_ETH_RX_OFFLOAD_TCP_CKSUM		|
> +		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM	|
> +		RTE_ETH_RX_OFFLOAD_RSS_HASH;

As I understand you know mode here and you should not report
offload which is not supported in current mode (RSS vs single
queue).

> +
>   	dev_info->tx_offload_capa = RTE_ETH_TX_OFFLOAD_MULTI_SEGS;
>   
>   	dev_info->default_rxconf = (struct rte_eth_rxconf) {

[snip]



More information about the dev mailing list