[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