[dpdk-dev] [PATCH v2 15/16] app/testpmd: dump ptype using the new function

Olivier Matz olivier.matz at 6wind.com
Mon Aug 29 16:35:34 CEST 2016


Use the function introduced in previous commit to dump the packet type
of the received packet.

Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 app/test-pmd/rxonly.c | 175 ++------------------------------------------------
 1 file changed, 4 insertions(+), 171 deletions(-)

diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c
index fbf287d..aba07ee 100644
--- a/app/test-pmd/rxonly.c
+++ b/app/test-pmd/rxonly.c
@@ -92,6 +92,7 @@ pkt_burst_receive(struct fwd_stream *fs)
 	uint16_t nb_rx;
 	uint16_t i, packet_type;
 	uint16_t is_encapsulation;
+	char buf[256];
 
 #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES
 	uint64_t start_tsc;
@@ -162,177 +163,9 @@ pkt_burst_receive(struct fwd_stream *fs)
 			printf(" - QinQ VLAN tci=0x%x, VLAN tci outer=0x%x",
 					mb->vlan_tci, mb->vlan_tci_outer);
 		if (mb->packet_type) {
-			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;
-			case RTE_PTYPE_L2_ETHER_NSH:
-				printf(" - (outer) L2 type: ETHER_NSH");
-				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(" - %s", buf);
+		}
 		if (is_encapsulation) {
 			struct ipv4_hdr *ipv4_hdr;
 			struct ipv6_hdr *ipv6_hdr;
-- 
2.8.1



More information about the dev mailing list