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.si...@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

Reply via email to