[dpdk-dev] [PATCH] net/i40e: update parsing inner packet info

Beilei Xing beilei.xing at intel.com
Fri Oct 20 05:23:15 CEST 2017


Since meta data in profile is updated, parsing inner
packet information needs to be updated, too.

Signed-off-by: Beilei Xing <beilei.xing at intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index f40c463..36ff3ee 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -11131,30 +11131,32 @@ i40e_update_customized_ptype(struct rte_eth_dev *dev, uint8_t *pkg,
 					ptype_mapping[i].sw_ptype |=
 						RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;
 					inner_ip = true;
-				} else if (!strncmp(name, "IPV4", 4) &&
+				} else if (!strncmp(name, "IPV4FRAG", 8) &&
 					   inner_ip) {
 					ptype_mapping[i].sw_ptype |=
 					    RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN;
-				} else if (!strncmp(name, "IPV6", 4) &&
-					   !inner_ip) {
+					ptype_mapping[i].sw_ptype |=
+						RTE_PTYPE_INNER_L4_FRAG;
+				} else if (!strncmp(name, "IPV4", 4) &&
+					   inner_ip)
+					ptype_mapping[i].sw_ptype |=
+					    RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN;
+				else if (!strncmp(name, "IPV6", 4) &&
+					 !inner_ip) {
 					ptype_mapping[i].sw_ptype |=
 						RTE_PTYPE_L3_IPV6_EXT_UNKNOWN;
 					inner_ip = true;
-				} else if (!strncmp(name, "IPV6", 4) &&
+				} else if (!strncmp(name, "IPV6FRAG", 8) &&
 					   inner_ip) {
 					ptype_mapping[i].sw_ptype |=
 					    RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN;
-				} else if (!strncmp(name, "IPV4FRAG", 8)) {
-					ptype_mapping[i].sw_ptype |=
-					    RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN;
 					ptype_mapping[i].sw_ptype |=
 						RTE_PTYPE_INNER_L4_FRAG;
-				} else if (!strncmp(name, "IPV6FRAG", 8)) {
+				} else if (!strncmp(name, "IPV6", 4) &&
+					   inner_ip)
 					ptype_mapping[i].sw_ptype |=
 					    RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN;
-					ptype_mapping[i].sw_ptype |=
-						RTE_PTYPE_INNER_L4_FRAG;
-				} else if (!strncmp(name, "GTPC", 4))
+				else if (!strncmp(name, "GTPC", 4))
 					ptype_mapping[i].sw_ptype |=
 						RTE_PTYPE_TUNNEL_GTPC;
 				else if (!strncmp(name, "GTPU", 4))
-- 
2.5.5



More information about the dev mailing list