The Rx and Tx offload capability masks duplicated the offload lists already maintained for tracking the offloads enabled on the various scalar and vector Rx and Tx paths. Instead of defining explicit lists for the offload capabilities masks, instead derive the capabilities from the path masks.
A benefit of this is that if an offload is ever added to a path, it is automatically reflected in the advertised capabilities too, instead of relying on the capabilities masks in dev_info being kept manually in sync. Some overlap will be present when masking the masks but it is kept because relying on one path's offload mask always being a superset of another's is fragile. Signed-off-by: Ciara Loftus <[email protected]> --- drivers/net/intel/i40e/i40e_ethdev.c | 29 +++------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/drivers/net/intel/i40e/i40e_ethdev.c b/drivers/net/intel/i40e/i40e_ethdev.c index defdff0378f..5d6102cae7b 100644 --- a/drivers/net/intel/i40e/i40e_ethdev.c +++ b/drivers/net/intel/i40e/i40e_ethdev.c @@ -3865,35 +3865,12 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_mtu = dev_info->max_rx_pktlen - I40E_ETH_OVERHEAD; dev_info->min_mtu = RTE_ETHER_MIN_MTU; dev_info->rx_queue_offload_capa = 0; - dev_info->rx_offload_capa = - RTE_ETH_RX_OFFLOAD_VLAN_STRIP | - RTE_ETH_RX_OFFLOAD_QINQ_STRIP | - 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_KEEP_CRC | - RTE_ETH_RX_OFFLOAD_SCATTER | - RTE_ETH_RX_OFFLOAD_VLAN_EXTEND | - RTE_ETH_RX_OFFLOAD_VLAN_FILTER | - RTE_ETH_RX_OFFLOAD_RSS_HASH; + dev_info->rx_offload_capa = I40E_RX_SCALAR_OFFLOADS | I40E_RX_VECTOR_OFFLOADS; dev_info->tx_queue_offload_capa = RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE; dev_info->tx_offload_capa = - RTE_ETH_TX_OFFLOAD_VLAN_INSERT | - RTE_ETH_TX_OFFLOAD_QINQ_INSERT | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_UDP_CKSUM | - RTE_ETH_TX_OFFLOAD_TCP_CKSUM | - RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | - RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_TCP_TSO | - RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_MULTI_SEGS | - dev_info->tx_queue_offload_capa; + (I40E_TX_SCALAR_OFFLOADS | I40E_TX_VECTOR_OFFLOADS) & + ~RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; if (hw->mac.type == I40E_MAC_X722) { dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; -- 2.43.0

