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

Message ID 1508469795-29830-1-git-send-email-beilei.xing@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Xing, Beilei Oct. 20, 2017, 3:23 a.m. UTC
  Since meta data in profile is updated, parsing inner
packet information needs to be updated, too.

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

Comments

Ferruh Yigit Oct. 23, 2017, 8:16 p.m. UTC | #1
On 10/19/2017 8:23 PM, Beilei Xing wrote:
> Since meta data in profile is updated, parsing inner
> packet information needs to be updated, too.
> 
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

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))