- uint32_t ptype;
-
- /* (outer) L2 packet type */
- ptype = mb->packet_type & RTE_PTYPE_L2_MASK;
- switch (ptype) {
- case RTE_PTYPE_L2_ETHER:
- printf(" - (outer) L2 type: ETHER");
- break;
- case RTE_PTYPE_L2_ETHER_TIMESYNC:
- printf(" - (outer) L2 type: ETHER_Timesync");
- break;
- case RTE_PTYPE_L2_ETHER_ARP:
- printf(" - (outer) L2 type: ETHER_ARP");
- break;
- case RTE_PTYPE_L2_ETHER_LLDP:
- printf(" - (outer) L2 type: ETHER_LLDP");
- break;
- default:
- printf(" - (outer) L2 type: Unknown");
- break;
- }
-
- /* (outer) L3 packet type */
- ptype = mb->packet_type & RTE_PTYPE_L3_MASK;
- switch (ptype) {
- case RTE_PTYPE_L3_IPV4:
- printf(" - (outer) L3 type: IPV4");
- break;
- case RTE_PTYPE_L3_IPV4_EXT:
- printf(" - (outer) L3 type: IPV4_EXT");
- break;
- case RTE_PTYPE_L3_IPV6:
- printf(" - (outer) L3 type: IPV6");
- break;
- case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN:
- printf(" - (outer) L3 type: IPV4_EXT_UNKNOWN");
- break;
- case RTE_PTYPE_L3_IPV6_EXT:
- printf(" - (outer) L3 type: IPV6_EXT");
- break;
- case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN:
- printf(" - (outer) L3 type: IPV6_EXT_UNKNOWN");
- break;
- default:
- printf(" - (outer) L3 type: Unknown");
- break;
- }
-
- /* (outer) L4 packet type */
- ptype = mb->packet_type & RTE_PTYPE_L4_MASK;
- switch (ptype) {
- case RTE_PTYPE_L4_TCP:
- printf(" - (outer) L4 type: TCP");
- break;
- case RTE_PTYPE_L4_UDP:
- printf(" - (outer) L4 type: UDP");
- break;
- case RTE_PTYPE_L4_FRAG:
- printf(" - (outer) L4 type: L4_FRAG");
- break;
- case RTE_PTYPE_L4_SCTP:
- printf(" - (outer) L4 type: SCTP");
- break;
- case RTE_PTYPE_L4_ICMP:
- printf(" - (outer) L4 type: ICMP");
- break;
- case RTE_PTYPE_L4_NONFRAG:
- printf(" - (outer) L4 type: L4_NONFRAG");
- break;
- default:
- printf(" - (outer) L4 type: Unknown");
- break;
- }
-
- /* packet tunnel type */
- ptype = mb->packet_type & RTE_PTYPE_TUNNEL_MASK;
- switch (ptype) {
- case RTE_PTYPE_TUNNEL_IP:
- printf(" - Tunnel type: IP");
- break;
- case RTE_PTYPE_TUNNEL_GRE:
- printf(" - Tunnel type: GRE");
- break;
- case RTE_PTYPE_TUNNEL_VXLAN:
- printf(" - Tunnel type: VXLAN");
- break;
- case RTE_PTYPE_TUNNEL_NVGRE:
- printf(" - Tunnel type: NVGRE");
- break;
- case RTE_PTYPE_TUNNEL_GENEVE:
- printf(" - Tunnel type: GENEVE");
- break;
- case RTE_PTYPE_TUNNEL_GRENAT:
- printf(" - Tunnel type: GRENAT");
- break;
- default:
- printf(" - Tunnel type: Unknown");
- break;
- }
-
- /* inner L2 packet type */
- ptype = mb->packet_type & RTE_PTYPE_INNER_L2_MASK;
- switch (ptype) {
- case RTE_PTYPE_INNER_L2_ETHER:
- printf(" - Inner L2 type: ETHER");
- break;
- case RTE_PTYPE_INNER_L2_ETHER_VLAN:
- printf(" - Inner L2 type: ETHER_VLAN");
- break;
- default:
- printf(" - Inner L2 type: Unknown");
- break;
- }
-
- /* inner L3 packet type */
- ptype = mb->packet_type & RTE_PTYPE_INNER_L3_MASK;
- switch (ptype) {
- case RTE_PTYPE_INNER_L3_IPV4:
- printf(" - Inner L3 type: IPV4");
- break;
- case RTE_PTYPE_INNER_L3_IPV4_EXT:
- printf(" - Inner L3 type: IPV4_EXT");
- break;
- case RTE_PTYPE_INNER_L3_IPV6:
- printf(" - Inner L3 type: IPV6");
- break;
- case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN:
- printf(" - Inner L3 type: IPV4_EXT_UNKNOWN");
- break;
- case RTE_PTYPE_INNER_L3_IPV6_EXT:
- printf(" - Inner L3 type: IPV6_EXT");
- break;
- case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN:
- printf(" - Inner L3 type: IPV6_EXT_UNKNOWN");
- break;
- default:
- printf(" - Inner L3 type: Unknown");
- break;
- }
-
- /* inner L4 packet type */
- ptype = mb->packet_type & RTE_PTYPE_INNER_L4_MASK;
- switch (ptype) {
- case RTE_PTYPE_INNER_L4_TCP:
- printf(" - Inner L4 type: TCP");
- break;
- case RTE_PTYPE_INNER_L4_UDP:
- printf(" - Inner L4 type: UDP");
- break;
- case RTE_PTYPE_INNER_L4_FRAG:
- printf(" - Inner L4 type: L4_FRAG");
- break;
- case RTE_PTYPE_INNER_L4_SCTP:
- printf(" - Inner L4 type: SCTP");
- break;
- case RTE_PTYPE_INNER_L4_ICMP:
- printf(" - Inner L4 type: ICMP");
- break;
- case RTE_PTYPE_INNER_L4_NONFRAG:
- printf(" - Inner L4 type: L4_NONFRAG");
- break;
- default:
- printf(" - Inner L4 type: Unknown");
- break;
- }
- printf("\n");
- } else
- printf("Unknown packet type\n");
+ rte_get_ptype_name(mb->packet_type, buf, sizeof(buf));
+ printf(" - hw ptype: %s", buf);
+ }
+ sw_packet_type = rte_net_get_ptype(mb, &hdr_lens,
+ RTE_PTYPE_ALL_MASK);
+ rte_get_ptype_name(sw_packet_type, buf, sizeof(buf));
+ printf(" - sw ptype: %s", buf);
+ if (sw_packet_type & RTE_PTYPE_L2_MASK)
+ printf(" - l2_len=%d", hdr_lens.l2_len);
+ if (sw_packet_type & RTE_PTYPE_L3_MASK)
+ printf(" - l3_len=%d", hdr_lens.l3_len);
+ if (sw_packet_type & RTE_PTYPE_L4_MASK)
+ printf(" - l4_len=%d", hdr_lens.l4_len);
+ if (sw_packet_type & RTE_PTYPE_TUNNEL_MASK)
+ printf(" - tunnel_len=%d", hdr_lens.tunnel_len);
+ if (sw_packet_type & RTE_PTYPE_INNER_L2_MASK)
+ printf(" - inner_l2_len=%d", hdr_lens.inner_l2_len);
+ if (sw_packet_type & RTE_PTYPE_INNER_L3_MASK)
+ printf(" - inner_l3_len=%d", hdr_lens.inner_l3_len);
+ if (sw_packet_type & RTE_PTYPE_INNER_L4_MASK)
+ printf(" - inner_l4_len=%d", hdr_lens.inner_l4_len);