]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-arp.c
OpenFlow: Have a function for each message type.
[tcpdump] / print-arp.c
index 9465e8f493f04b22ec429f6773c6dca6a2fa52b7..e883817488c929e9b48f45e27658f480cd949b72 100644 (file)
@@ -54,6 +54,7 @@ struct  arp_pkthdr {
 #define ARPHRD_ATM2225  19      /* ATM (RFC 2225) */
 #define ARPHRD_STRIP    23      /* Ricochet Starmode Radio hardware format */
 #define ARPHRD_IEEE1394 24      /* IEEE 1394 (FireWire) hardware format */
+#define ARPHRD_INFINIBAND 32    /* InfiniBand RFC 4391 */
         nd_uint16_t ar_pro;     /* format of protocol address */
         nd_uint8_t  ar_hln;     /* length of hardware address */
         nd_uint8_t  ar_pln;     /* length of protocol address */
@@ -114,6 +115,7 @@ static const struct tok arphrd_values[] = {
     { ARPHRD_STRIP, "Strip" },
     { ARPHRD_IEEE1394, "IEEE 1394" },
     { ARPHRD_ATM2225, "ATM" },
+    { ARPHRD_INFINIBAND, "InfiniBand" },
     { 0, NULL }
 };
 
@@ -196,7 +198,7 @@ tpaddr_print_ip(netdissect_options *ndo,
        else if (PROTO_LEN(ap) != 4)
                ND_PRINT("<wrong len>");
        else
-               ND_PRINT("%s", ipaddr_string(ndo, TPA(ap)));
+               ND_PRINT("%s", GET_IPADDR_STRING(TPA(ap)));
 }
 
 static void
@@ -208,7 +210,7 @@ spaddr_print_ip(netdissect_options *ndo,
        else if (PROTO_LEN(ap) != 4)
                ND_PRINT("<wrong len>");
        else
-               ND_PRINT("%s", ipaddr_string(ndo, SPA(ap)));
+               ND_PRINT("%s", GET_IPADDR_STRING(SPA(ap)));
 }
 
 static void
@@ -219,10 +221,10 @@ atmarp_addr_print(netdissect_options *ndo,
        if (ha_len == 0)
                ND_PRINT("<No address>");
        else {
-               ND_PRINT("%s", linkaddr_string(ndo, ha, LINKADDR_ATM, ha_len));
+               ND_PRINT("%s", GET_LINKADDR_STRING(ha, LINKADDR_ATM, ha_len));
                if (srca_len != 0)
                        ND_PRINT(",%s",
-                                 linkaddr_string(ndo, srca, LINKADDR_ATM, srca_len));
+                                 GET_LINKADDR_STRING(srca, LINKADDR_ATM, srca_len));
        }
 }
 
@@ -235,7 +237,7 @@ atmarp_tpaddr_print(netdissect_options *ndo,
        else if (ATMTPROTO_LEN(ap) != 4)
                ND_PRINT("<wrong tplen>");
        else
-               ND_PRINT("%s", ipaddr_string(ndo, ATMTPA(ap)));
+               ND_PRINT("%s", GET_IPADDR_STRING(ATMTPA(ap)));
 }
 
 static void
@@ -247,7 +249,7 @@ atmarp_spaddr_print(netdissect_options *ndo,
        else if (ATMSPROTO_LEN(ap) != 4)
                ND_PRINT("<wrong splen>");
        else
-               ND_PRINT("%s", ipaddr_string(ndo, ATMSPA(ap)));
+               ND_PRINT("%s", GET_IPADDR_STRING(ATMSPA(ap)));
 }
 
 static void
@@ -284,7 +286,7 @@ atmarp_print(netdissect_options *ndo,
                           ATMSPROTO_LEN(ap),
                           ATMTPROTO_LEN(ap));
 
-                /* don't know know about the address formats */
+                /* don't know about the address formats */
                 if (!ndo->ndo_vflag) {
                     goto out;
                 }
@@ -370,7 +372,7 @@ arp_print(netdissect_options *ndo,
         /* if its ATM then call the ATM ARP printer
            for Frame-relay ARP most of the fields
            are similar to Ethernet so overload the Ethernet Printer
-           and set the linkaddr type for linkaddr_string(ndo, ) accordingly */
+           and set the linkaddr type for GET_LINKADDR_STRING() accordingly */
 
         switch(hrd) {
         case ARPHRD_ATM2225:
@@ -405,7 +407,7 @@ arp_print(netdissect_options *ndo,
                       tok2str(ethertype_values, "Unknown Protocol (0x%04x)", pro),
                       PROTO_LEN(ap));
 
-            /* don't know know about the address formats */
+            /* don't know about the address formats */
             if (!ndo->ndo_vflag) {
                 goto out;
             }
@@ -423,7 +425,7 @@ arp_print(netdissect_options *ndo,
                tpaddr_print_ip(ndo, ap, pro);
                if (isnonzero(ndo, (const u_char *)THA(ap), HRD_LEN(ap)))
                        ND_PRINT(" (%s)",
-                                 linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)));
+                                 GET_LINKADDR_STRING(THA(ap), linkaddr, HRD_LEN(ap)));
                ND_PRINT(" tell ");
                spaddr_print_ip(ndo, ap, pro);
                break;
@@ -431,30 +433,30 @@ arp_print(netdissect_options *ndo,
        case ARPOP_REPLY:
                spaddr_print_ip(ndo, ap, pro);
                ND_PRINT(" is-at %s",
-                          linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap)));
+                          GET_LINKADDR_STRING(SHA(ap), linkaddr, HRD_LEN(ap)));
                break;
 
        case ARPOP_REVREQUEST:
                ND_PRINT("who-is %s tell %s",
-                         linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
-                         linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap)));
+                         GET_LINKADDR_STRING(THA(ap), linkaddr, HRD_LEN(ap)),
+                         GET_LINKADDR_STRING(SHA(ap), linkaddr, HRD_LEN(ap)));
                break;
 
        case ARPOP_REVREPLY:
                ND_PRINT("%s at ",
-                         linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)));
+                         GET_LINKADDR_STRING(THA(ap), linkaddr, HRD_LEN(ap)));
                tpaddr_print_ip(ndo, ap, pro);
                break;
 
        case ARPOP_INVREQUEST:
                ND_PRINT("who-is %s tell %s",
-                         linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
-                         linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap)));
+                         GET_LINKADDR_STRING(THA(ap), linkaddr, HRD_LEN(ap)),
+                         GET_LINKADDR_STRING(SHA(ap), linkaddr, HRD_LEN(ap)));
                break;
 
        case ARPOP_INVREPLY:
                ND_PRINT("%s at ",
-                         linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap)));
+                         GET_LINKADDR_STRING(SHA(ap), linkaddr, HRD_LEN(ap)));
                spaddr_print_ip(ndo, ap, pro);
                break;