virtio: suport multiple MAC addresses
[dpdk.git] / app / test-pmd / icmpecho.c
index 4a277b8..08ea01d 100644 (file)
@@ -88,7 +88,7 @@ arp_op_name(uint16_t arp_op)
 }
 
 static const char *
-ip_proto_name(uint8_t ip_proto)
+ip_proto_name(uint16_t ip_proto)
 {
        static const char * ip_proto_names[] = {
                "IP6HOPOPTS", /**< IP6 hop-by-hop options */
@@ -221,12 +221,16 @@ ip_proto_name(uint8_t ip_proto)
        if (ip_proto < sizeof(ip_proto_names) / sizeof(ip_proto_names[0]))
                return ip_proto_names[ip_proto];
        switch (ip_proto) {
+#ifdef IPPROTO_PGM
        case IPPROTO_PGM:  /**< PGM */
                return "PGM";
+#endif
        case IPPROTO_SCTP:  /**< Stream Control Transport Protocol */
                return "SCTP";
+#ifdef IPPROTO_DIVERT
        case IPPROTO_DIVERT: /**< divert pseudo-protocol */
                return "DIVERT";
+#endif
        case IPPROTO_RAW: /**< raw IP packet */
                return "RAW";
        default:
@@ -235,18 +239,6 @@ ip_proto_name(uint8_t ip_proto)
        return "UNASSIGNED";
 }
 
-static void
-ether_addr_to_hexa(const struct ether_addr *ea, char *buf)
-{
-       sprintf(buf, "%02x:%02x:%02x:%02x:%02x:%02x",
-               ea->addr_bytes[0],
-               ea->addr_bytes[1],
-               ea->addr_bytes[2],
-               ea->addr_bytes[3],
-               ea->addr_bytes[4],
-               ea->addr_bytes[5]);
-}
-
 static void
 ipv4_addr_to_dot(uint32_t be_ipv4_addr, char *buf)
 {
@@ -261,9 +253,9 @@ ipv4_addr_to_dot(uint32_t be_ipv4_addr, char *buf)
 static void
 ether_addr_dump(const char *what, const struct ether_addr *ea)
 {
-       char buf[18];
+       char buf[ETHER_ADDR_FMT_SIZE];
 
-       ether_addr_to_hexa(ea, buf);
+       ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, ea);
        if (what)
                printf("%s", what);
        printf("%s", buf);
@@ -330,7 +322,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs)
        nb_replies = 0;
        for (i = 0; i < nb_rx; i++) {
                pkt = pkts_burst[i];
-               eth_h = (struct ether_hdr *) pkt->data;
+               eth_h = rte_pktmbuf_mtod(pkt, struct ether_hdr *);
                eth_type = RTE_BE_TO_CPU_16(eth_h->ether_type);
                l2_len = sizeof(struct ether_hdr);
                if (verbose_level > 0) {