Tested-by: Zhou, Jun <junx.w.z...@intel.com>

-----Original Message-----
From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Xiaoyu Min
Sent: Monday, November 16, 2020 3:55 PM
To: Singh, Jasvinder <jasvinder.si...@intel.com>; Dumitrescu, Cristian 
<cristian.dumitre...@intel.com>
Cc: dev@dpdk.org; Dekel Peled <dek...@nvidia.com>
Subject: [dpdk-dev] [PATCH 5/5] net/softnic: update headers size calculation

From: Dekel Peled <dek...@nvidia.com>

The rte_flow_item_eth and rte_flow_item_vlan items were updated in [1].
The rte_flow_item_ipv6 item was updated in [2].
The structs now contain additional metadata following the header data.
The size to use for match should be the header data size only, and not the size 
of the whole struct.

This patch replaces the rte_flow_item_* with the corresponding rte_*_hdr.

[1]:commit 09315fc83861 ("ethdev: add VLAN attributes to ethernet and VLAN
items")

[2]: commit ad976bd40d28 ("ethdev: add extensions attributes to IPv6 item")

Signed-off-by: Dekel Peled <dek...@nvidia.com>
---
 drivers/net/softnic/rte_eth_softnic_flow.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/softnic/rte_eth_softnic_flow.c 
b/drivers/net/softnic/rte_eth_softnic_flow.c
index f05ff092fa..7925bad1c0 100644
--- a/drivers/net/softnic/rte_eth_softnic_flow.c
+++ b/drivers/net/softnic/rte_eth_softnic_flow.c
@@ -169,22 +169,22 @@ flow_item_is_proto(enum rte_flow_item_type type,
 
        case RTE_FLOW_ITEM_TYPE_ETH:
                *mask = &rte_flow_item_eth_mask;
-               *size = sizeof(struct rte_flow_item_eth);
+               *size = sizeof(struct rte_ether_hdr);
                return 1; /* TRUE */
 
        case RTE_FLOW_ITEM_TYPE_VLAN:
                *mask = &rte_flow_item_vlan_mask;
-               *size = sizeof(struct rte_flow_item_vlan);
+               *size = sizeof(struct rte_vlan_hdr);
                return 1;
 
        case RTE_FLOW_ITEM_TYPE_IPV4:
                *mask = &rte_flow_item_ipv4_mask;
-               *size = sizeof(struct rte_flow_item_ipv4);
+               *size = sizeof(struct rte_ipv4_hdr);
                return 1;
 
        case RTE_FLOW_ITEM_TYPE_IPV6:
                *mask = &rte_flow_item_ipv6_mask;
-               *size = sizeof(struct rte_flow_item_ipv6);
+               *size = sizeof(struct rte_ipv6_hdr);
                return 1;
 
        case RTE_FLOW_ITEM_TYPE_ICMP:
--
2.25.1

Reply via email to