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

Reply via email to