X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Focteontx2%2Fotx2_lookup.c;h=3071278fc19bc29a499af9f051d2217b957c913b;hb=14d7ea259aebaacfa9326e54e881ab0e550f6a6e;hp=99199d08acaae3b5d7216ca712dd397f6cd7e6e3;hpb=6e892eabce11386d9df754911fedccdef4fc6dbe;p=dpdk.git diff --git a/drivers/net/octeontx2/otx2_lookup.c b/drivers/net/octeontx2/otx2_lookup.c index 99199d08ac..3071278fc1 100644 --- a/drivers/net/octeontx2/otx2_lookup.c +++ b/drivers/net/octeontx2/otx2_lookup.c @@ -53,6 +53,7 @@ otx2_nix_supported_ptypes_get(struct rte_eth_dev *eth_dev) RTE_PTYPE_INNER_L4_UDP, /* LH */ RTE_PTYPE_INNER_L4_SCTP, /* LH */ RTE_PTYPE_INNER_L4_ICMP, /* LH */ + RTE_PTYPE_UNKNOWN, }; if (dev->rx_offload_flags & NIX_RX_OFFLOAD_PTYPE_F) @@ -78,7 +79,8 @@ static void nix_create_non_tunnel_ptype_array(uint16_t *ptype) { uint8_t lb, lc, ld, le; - uint16_t idx, val; + uint16_t val; + uint32_t idx; for (idx = 0; idx < PTYPE_NON_TUNNEL_ARRAY_SZ; idx++) { lb = idx & 0xF; @@ -88,7 +90,7 @@ nix_create_non_tunnel_ptype_array(uint16_t *ptype) val = RTE_PTYPE_UNKNOWN; switch (lb) { - case NPC_LT_LB_QINQ: + case NPC_LT_LB_STAG_QINQ: val |= RTE_PTYPE_L2_ETHER_QINQ; break; case NPC_LT_LB_CTAG: @@ -137,6 +139,7 @@ nix_create_non_tunnel_ptype_array(uint16_t *ptype) val |= RTE_PTYPE_L4_SCTP; break; case NPC_LT_LD_ICMP: + case NPC_LT_LD_ICMP6: val |= RTE_PTYPE_L4_ICMP; break; case NPC_LT_LD_IGMP: @@ -180,28 +183,29 @@ nix_create_non_tunnel_ptype_array(uint16_t *ptype) } } -#define TU_SHIFT(x) ((x) >> PTYPE_WIDTH) +#define TU_SHIFT(x) ((x) >> PTYPE_NON_TUNNEL_WIDTH) static void nix_create_tunnel_ptype_array(uint16_t *ptype) { - uint8_t le, lf, lg; - uint16_t idx, val; + uint8_t lf, lg, lh; + uint16_t val; + uint32_t idx; /* Skip non tunnel ptype array memory */ ptype = ptype + PTYPE_NON_TUNNEL_ARRAY_SZ; for (idx = 0; idx < PTYPE_TUNNEL_ARRAY_SZ; idx++) { - le = idx & 0xF; - lf = (idx & 0xF0) >> 4; - lg = (idx & 0xF00) >> 8; + lf = idx & 0xF; + lg = (idx & 0xF0) >> 4; + lh = (idx & 0xF00) >> 8; val = RTE_PTYPE_UNKNOWN; - switch (le) { + switch (lf) { case NPC_LT_LF_TU_ETHER: val |= TU_SHIFT(RTE_PTYPE_INNER_L2_ETHER); break; } - switch (lf) { + switch (lg) { case NPC_LT_LG_TU_IP: val |= TU_SHIFT(RTE_PTYPE_INNER_L3_IPV4); break; @@ -209,7 +213,7 @@ nix_create_tunnel_ptype_array(uint16_t *ptype) val |= TU_SHIFT(RTE_PTYPE_INNER_L3_IPV6); break; } - switch (lg) { + switch (lh) { case NPC_LT_LH_TU_TCP: val |= TU_SHIFT(RTE_PTYPE_INNER_L4_TCP); break; @@ -220,6 +224,7 @@ nix_create_tunnel_ptype_array(uint16_t *ptype) val |= TU_SHIFT(RTE_PTYPE_INNER_L4_SCTP); break; case NPC_LT_LH_TU_ICMP: + case NPC_LT_LH_TU_ICMP6: val |= TU_SHIFT(RTE_PTYPE_INNER_L4_ICMP); break; } @@ -272,13 +277,13 @@ nix_create_rx_ol_flags_array(void *mem) val |= PKT_RX_IP_CKSUM_GOOD; break; case NPC_ERRLEV_NIX: + val |= PKT_RX_IP_CKSUM_GOOD; if (errcode == NIX_RX_PERRCODE_OL4_CHK) { val |= PKT_RX_OUTER_L4_CKSUM_BAD; val |= PKT_RX_L4_CKSUM_BAD; } else if (errcode == NIX_RX_PERRCODE_IL4_CHK) { val |= PKT_RX_L4_CKSUM_BAD; } else { - val |= PKT_RX_IP_CKSUM_GOOD; val |= PKT_RX_L4_CKSUM_GOOD; } break;