[v7,13/21] net/cpfl: support Rx offloading
Checks
Commit Message
Add Rx offloading support:
- support CHKSUM and RSS offload for split queue model
- support CHKSUM offload for single queue model
Signed-off-by: Mingxia Liu <mingxia.liu@intel.com>
---
doc/guides/nics/features/cpfl.ini | 2 ++
drivers/net/cpfl/cpfl_ethdev.c | 6 ++++++
2 files changed, 8 insertions(+)
Comments
On 2/16/2023 12:30 AM, Mingxia Liu wrote:
> Add Rx offloading support:
> - support CHKSUM and RSS offload for split queue model
> - support CHKSUM offload for single queue model
>
> Signed-off-by: Mingxia Liu <mingxia.liu@intel.com>
> ---
> doc/guides/nics/features/cpfl.ini | 2 ++
> drivers/net/cpfl/cpfl_ethdev.c | 6 ++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/doc/guides/nics/features/cpfl.ini b/doc/guides/nics/features/cpfl.ini
> index 470ba81579..ee5948f444 100644
> --- a/doc/guides/nics/features/cpfl.ini
> +++ b/doc/guides/nics/features/cpfl.ini
> @@ -8,6 +8,8 @@
> ;
> [Features]
> MTU update = Y
> +L3 checksum offload = P
> +L4 checksum offload = P
> Linux = Y
> x86-32 = Y
> x86-64 = Y
> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index fb15004e48..d0f90b7d2c 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -99,6 +99,12 @@ cpfl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>
> dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
>
> + 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;
> +
Just to confirm, are these capabilities are already supported in the
data path functions?
Same for Tx ones in next patch.
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Tuesday, February 28, 2023 5:50 AM
> To: Liu, Mingxia <mingxia.liu@intel.com>; dev@dpdk.org; Xing, Beilei
> <beilei.xing@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>
> Subject: Re: [PATCH v7 13/21] net/cpfl: support Rx offloading
>
> On 2/16/2023 12:30 AM, Mingxia Liu wrote:
> > Add Rx offloading support:
> > - support CHKSUM and RSS offload for split queue model
> > - support CHKSUM offload for single queue model
> >
> > Signed-off-by: Mingxia Liu <mingxia.liu@intel.com>
> > ---
> > doc/guides/nics/features/cpfl.ini | 2 ++
> > drivers/net/cpfl/cpfl_ethdev.c | 6 ++++++
> > 2 files changed, 8 insertions(+)
> >
> > diff --git a/doc/guides/nics/features/cpfl.ini
> > b/doc/guides/nics/features/cpfl.ini
> > index 470ba81579..ee5948f444 100644
> > --- a/doc/guides/nics/features/cpfl.ini
> > +++ b/doc/guides/nics/features/cpfl.ini
> > @@ -8,6 +8,8 @@
> > ;
> > [Features]
> > MTU update = Y
> > +L3 checksum offload = P
> > +L4 checksum offload = P
> > Linux = Y
> > x86-32 = Y
> > x86-64 = Y
> > diff --git a/drivers/net/cpfl/cpfl_ethdev.c
> > b/drivers/net/cpfl/cpfl_ethdev.c index fb15004e48..d0f90b7d2c 100644
> > --- a/drivers/net/cpfl/cpfl_ethdev.c
> > +++ b/drivers/net/cpfl/cpfl_ethdev.c
> > @@ -99,6 +99,12 @@ cpfl_dev_info_get(struct rte_eth_dev *dev, struct
> > rte_eth_dev_info *dev_info)
> >
> > dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
> >
> > + 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;
> > +
>
> Just to confirm, are these capabilities are already supported in the data
> path functions?
>
> Same for Tx ones in next patch.
[Liu, Mingxia] sure, they are all already supported.
@@ -8,6 +8,8 @@
;
[Features]
MTU update = Y
+L3 checksum offload = P
+L4 checksum offload = P
Linux = Y
x86-32 = Y
x86-64 = Y
@@ -99,6 +99,12 @@ cpfl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->flow_type_rss_offloads = CPFL_RSS_OFFLOAD_ALL;
+ 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;
+
dev_info->tx_offload_capa = RTE_ETH_TX_OFFLOAD_MULTI_SEGS;
dev_info->default_txconf = (struct rte_eth_txconf) {