[dpdk-dev] [PATCH v2 3/3] net/enetc: enable Rx and Tx

Ferruh Yigit ferruh.yigit at intel.com
Fri Sep 21 15:28:36 CEST 2018


On 9/13/2018 10:42 AM, Gagandeep Singh wrote:
> Add RX and TX queue setup, datapath functions
> and enable the packet parsing
> 
> Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
<...>

> -LDLIBS += -lrte_eal
> +LDLIBS += -lrte_eal -lrte_mempool
>  LDLIBS += -lrte_ethdev
>  LDLIBS += -lrte_bus_pci

Isn't mbuf and ring are dependency?

<...>

> +static inline void __attribute__((hot))
> +enetc_dev_rx_parse(struct rte_mbuf *m, uint16_t parse_results)
> +{
> +	ENETC_PMD_DP_DEBUG("parse summary = 0x%x   ", parse_results);
> +
> +	m->packet_type = RTE_PTYPE_UNKNOWN;
> +	switch (parse_results) {
> +	case ENETC_PKT_TYPE_ETHER:
> +		m->packet_type = RTE_PTYPE_L2_ETHER;
> +		break;
> +	case ENETC_PKT_TYPE_IPV4:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +					RTE_PTYPE_L3_IPV4;
> +		break;
> +	case ENETC_PKT_TYPE_IPV6:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +					RTE_PTYPE_L3_IPV6;
> +		break;
> +	case ENETC_PKT_TYPE_IPV4_TCP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_TCP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV6_TCP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_TCP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV4_UDP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_UDP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV6_UDP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_UDP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV4_SCTP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_SCTP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV6_SCTP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_SCTP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV4_ICMP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_ICMP;
> +		break;
> +	case ENETC_PKT_TYPE_IPV6_ICMP:
> +		m->packet_type = RTE_PTYPE_L2_ETHER |
> +			RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_ICMP;
> +		break;
> +	/* More switch cases can be added */
> +	default:
> +		m->packet_type = RTE_PTYPE_UNKNOWN;
> +	}
> +}

You are already getting packet type info from device and set mbuf, by
implementing (relatively easy) rte_eth_dev_get_supported_ptypes() API you can
make applications use these values better,
And enable "Packet type parsing" feature in .ini file


More information about the dev mailing list