[dpdk-dev] [PATCH] net/ice: modify packet type table

Ye Xiaolong xiaolong.ye at intel.com
Mon Oct 28 07:04:26 CET 2019


On 10/25, Ying Wang wrote:
>The original packet type table's hw-ptype index to sw-ptype
>mapping is wrong. This patch fixed the issue.
>
>Fixes: ab9dccf09af9 ("net/ice: support packet type getting")
>Cc: stable at dpdk.org
>
>Signed-off-by: Ying Wang <ying.a.wang at intel.com>
>---
> drivers/net/ice/ice_rxtx.c | 312 ++++++++++++++++++++++++---------------------
> 1 file changed, 169 insertions(+), 143 deletions(-)
>
>diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
>index 8d4820d3c..82ae67d34 100644
>--- a/drivers/net/ice/ice_rxtx.c
>+++ b/drivers/net/ice/ice_rxtx.c
>@@ -1773,9 +1773,42 @@ ice_recv_scattered_pkts(void *rx_queue,
> const uint32_t *
> ice_dev_supported_ptypes_get(struct rte_eth_dev *dev)
> {
>-	static const uint32_t ptypes[] = {
>+	struct ice_adapter *ad =
>+		ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
>+	const uint32_t *ptypes;
>+
>+	static const uint32_t ptypes_os[] = {
>+		/* refers to ice_get_default_pkt_type() */
>+		RTE_PTYPE_L2_ETHER,
>+		RTE_PTYPE_L2_ETHER_TIMESYNC,
>+		RTE_PTYPE_L2_ETHER_LLDP,
>+		RTE_PTYPE_L2_ETHER_ARP,
>+		RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
>+		RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
>+		RTE_PTYPE_L4_FRAG,
>+		RTE_PTYPE_L4_ICMP,
>+		RTE_PTYPE_L4_NONFRAG,
>+		RTE_PTYPE_L4_SCTP,
>+		RTE_PTYPE_L4_TCP,
>+		RTE_PTYPE_L4_UDP,
>+		RTE_PTYPE_TUNNEL_GRENAT,
>+		RTE_PTYPE_TUNNEL_IP,
>+		RTE_PTYPE_INNER_L2_ETHER,
>+		RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
>+		RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
>+		RTE_PTYPE_INNER_L4_FRAG,
>+		RTE_PTYPE_INNER_L4_ICMP,
>+		RTE_PTYPE_INNER_L4_NONFRAG,
>+		RTE_PTYPE_INNER_L4_SCTP,
>+		RTE_PTYPE_INNER_L4_TCP,
>+		RTE_PTYPE_INNER_L4_UDP,
>+		RTE_PTYPE_UNKNOWN
>+	};
>+
>+	static const uint32_t ptypes_comms[] = {
> 		/* refers to ice_get_default_pkt_type() */
> 		RTE_PTYPE_L2_ETHER,
>+		RTE_PTYPE_L2_ETHER_TIMESYNC,
> 		RTE_PTYPE_L2_ETHER_LLDP,
> 		RTE_PTYPE_L2_ETHER_ARP,
> 		RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
>@@ -1789,7 +1822,6 @@ ice_dev_supported_ptypes_get(struct rte_eth_dev *dev)
> 		RTE_PTYPE_TUNNEL_GRENAT,
> 		RTE_PTYPE_TUNNEL_IP,
> 		RTE_PTYPE_INNER_L2_ETHER,
>-		RTE_PTYPE_INNER_L2_ETHER_VLAN,
> 		RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
> 		RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
> 		RTE_PTYPE_INNER_L4_FRAG,
>@@ -1800,9 +1832,15 @@ ice_dev_supported_ptypes_get(struct rte_eth_dev *dev)
> 		RTE_PTYPE_INNER_L4_UDP,
> 		RTE_PTYPE_TUNNEL_GTPC,
> 		RTE_PTYPE_TUNNEL_GTPU,
>+		RTE_PTYPE_L2_ETHER_PPPOE,
> 		RTE_PTYPE_UNKNOWN
> 	};
> 
>+	if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS)
>+		ptypes = ptypes_comms;
>+	else
>+		ptypes = ptypes_os;
>+
> 	if (dev->rx_pkt_burst == ice_recv_pkts ||
> #ifdef RTE_LIBRTE_ICE_RX_ALLOW_BULK_ALLOC
> 	    dev->rx_pkt_burst == ice_recv_pkts_bulk_alloc ||
>@@ -2770,7 +2808,6 @@ ice_set_rx_function(struct rte_eth_dev *dev)
> 	}
> 
> #endif
>-

Minor nit, it's an unrelated change, remove it while merging. 

For the reset, 

Reviewed-by: Xiaolong Ye <xiaolong.ye at intel.com>

Applied to dpdk-next-net-intel. Thanks.


More information about the dev mailing list