]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-babel.c
Remove EXTRACT_LE_8BITS() macro, use EXTRACT_8BITS() macro
[tcpdump] / print-babel.c
index ea724666e25068c3e6626c35cf579701a27bc21f..df0c5941402e06fc7fe1fedd85b0a794f62f58d7 100644 (file)
  * SUCH DAMAGE.
  */
 
+/* \summary: Babel Routing Protocol printer */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#include <tcpdump-stdinc.h>
+#include <netdissect-stdinc.h>
 
 #include <stdio.h>
 #include <string.h>
@@ -125,11 +127,7 @@ format_prefix(netdissect_options *ndo, const u_char *prefix, unsigned char plen)
     if(plen >= 96 && memcmp(prefix, v4prefix, 12) == 0)
         snprintf(buf, 50, "%s/%u", ipaddr_string(ndo, prefix + 12), plen - 96);
     else
-#ifdef INET6
         snprintf(buf, 50, "%s/%u", ip6addr_string(ndo, prefix), plen);
-#else
-        snprintf(buf, 50, "IPv6 addresses not supported");
-#endif
     buf[49] = '\0';
     return buf;
 }
@@ -140,11 +138,7 @@ format_address(netdissect_options *ndo, const u_char *prefix)
     if(memcmp(prefix, v4prefix, 12) == 0)
         return ipaddr_string(ndo, prefix + 12);
     else
-#ifdef INET6
         return ip6addr_string(ndo, prefix);
-#else
-        return "IPv6 addresses not supported";
-#endif
 }
 
 static const char *
@@ -316,14 +310,14 @@ subtlvs_print(netdissect_options *ndo,
             if(tlv_type == MESSAGE_HELLO) {
                 if(sublen < 4)
                     goto invalid;
-                t1 = EXTRACT_32BITS(cp);
+                t1 = EXTRACT_BE_32BITS(cp);
                 ND_PRINT((ndo, " %s", format_timestamp(t1)));
             } else if(tlv_type == MESSAGE_IHU) {
                 if(sublen < 8)
                     goto invalid;
-                t1 = EXTRACT_32BITS(cp);
+                t1 = EXTRACT_BE_32BITS(cp);
                 ND_PRINT((ndo, " %s", format_timestamp(t1)));
-                t2 = EXTRACT_32BITS(cp + 4);
+                t2 = EXTRACT_BE_32BITS(cp + 4);
                 ND_PRINT((ndo, "|%s", format_timestamp(t2)));
             } else
                 ND_PRINT((ndo, " (bogus)"));
@@ -337,7 +331,7 @@ subtlvs_print(netdissect_options *ndo,
     return;
 
  invalid:
-    ND_PRINT((ndo, " (invalid)"));
+    ND_PRINT((ndo, "%s", istr));
 }
 
 #define ICHECK(i, l) \
@@ -356,7 +350,7 @@ babel_print_v2(netdissect_options *ndo,
     ND_TCHECK2(*cp, 4);
     if (length < 4)
         goto invalid;
-    bodylen = EXTRACT_16BITS(cp + 2);
+    bodylen = EXTRACT_BE_16BITS(cp + 2);
     ND_PRINT((ndo, " (%u)", bodylen));
 
     /* Process the TLVs in the body */
@@ -397,8 +391,8 @@ babel_print_v2(netdissect_options *ndo,
             else {
                 ND_PRINT((ndo, "\n\tAcknowledgment Request "));
                 if(len < 6) goto invalid;
-                nonce = EXTRACT_16BITS(message + 4);
-                interval = EXTRACT_16BITS(message + 6);
+                nonce = EXTRACT_BE_16BITS(message + 4);
+                interval = EXTRACT_BE_16BITS(message + 6);
                 ND_PRINT((ndo, "%04x %s", nonce, format_interval(interval)));
             }
         }
@@ -411,7 +405,7 @@ babel_print_v2(netdissect_options *ndo,
             else {
                 ND_PRINT((ndo, "\n\tAcknowledgment "));
                 if(len < 2) goto invalid;
-                nonce = EXTRACT_16BITS(message + 2);
+                nonce = EXTRACT_BE_16BITS(message + 2);
                 ND_PRINT((ndo, "%04x", nonce));
             }
         }
@@ -424,8 +418,8 @@ babel_print_v2(netdissect_options *ndo,
             else {
                 ND_PRINT((ndo, "\n\tHello "));
                 if(len < 6) goto invalid;
-                seqno = EXTRACT_16BITS(message + 4);
-                interval = EXTRACT_16BITS(message + 6);
+                seqno = EXTRACT_BE_16BITS(message + 4);
+                interval = EXTRACT_BE_16BITS(message + 6);
                 ND_PRINT((ndo, "seqno %u interval %s", seqno, format_interval(interval)));
                 /* Extra data. */
                 if(len > 6)
@@ -443,8 +437,8 @@ babel_print_v2(netdissect_options *ndo,
                 int rc;
                 ND_PRINT((ndo, "\n\tIHU "));
                 if(len < 6) goto invalid;
-                txcost = EXTRACT_16BITS(message + 4);
-                interval = EXTRACT_16BITS(message + 6);
+                txcost = EXTRACT_BE_16BITS(message + 4);
+                interval = EXTRACT_BE_16BITS(message + 6);
                 rc = network_address(message[2], message + 8, len - 6, address);
                 if(rc < 0) { ND_PRINT((ndo, "%s", tstr)); break; }
                 ND_PRINT((ndo, "%s txcost %u interval %s",
@@ -506,9 +500,9 @@ babel_print_v2(netdissect_options *ndo,
                                     message[2] == 1 ? v4_prefix : v6_prefix,
                                     len - 10, prefix);
                 if(rc < 0) goto invalid;
-                interval = EXTRACT_16BITS(message + 6);
-                seqno = EXTRACT_16BITS(message + 8);
-                metric = EXTRACT_16BITS(message + 10);
+                interval = EXTRACT_BE_16BITS(message + 6);
+                seqno = EXTRACT_BE_16BITS(message + 8);
+                metric = EXTRACT_BE_16BITS(message + 10);
                 ND_PRINT((ndo, "%s%s%s %s metric %u seqno %u interval %s",
                        (message[3] & 0x80) ? "/prefix": "",
                        (message[3] & 0x40) ? "/id" : "",
@@ -555,7 +549,7 @@ babel_print_v2(netdissect_options *ndo,
                 u_char prefix[16], plen;
                 ND_PRINT((ndo, "\n\tMH-Request "));
                 if(len < 14) goto invalid;
-                seqno = EXTRACT_16BITS(message + 4);
+                seqno = EXTRACT_BE_16BITS(message + 4);
                 rc = network_prefix(message[2], message[3], 0,
                                     message + 16, NULL, len - 14, prefix);
                 if(rc < 0) goto invalid;
@@ -572,8 +566,8 @@ babel_print_v2(netdissect_options *ndo,
             else {
                 ND_PRINT((ndo, "\n\tTS/PC "));
                 if(len < 6) goto invalid;
-                ND_PRINT((ndo, "timestamp %u packetcounter %u", EXTRACT_32BITS (message + 4),
-                       EXTRACT_16BITS(message + 2)));
+                ND_PRINT((ndo, "timestamp %u packetcounter %u", EXTRACT_BE_32BITS(message + 4),
+                          EXTRACT_BE_16BITS(message + 2)));
             }
             break;
         case MESSAGE_HMAC : {
@@ -583,7 +577,7 @@ babel_print_v2(netdissect_options *ndo,
                 unsigned j;
                 ND_PRINT((ndo, "\n\tHMAC "));
                 if(len < 18) goto invalid;
-                ND_PRINT((ndo, "key-id %u digest-%u ", EXTRACT_16BITS(message + 2), len - 2));
+                ND_PRINT((ndo, "key-id %u digest-%u ", EXTRACT_BE_16BITS(message + 2), len - 2));
                 for (j = 0; j < len - 2; j++)
                     ND_PRINT((ndo, "%02X", message[4 + j]));
             }
@@ -605,9 +599,9 @@ babel_print_v2(netdissect_options *ndo,
                 src_plen = message[3];
                 plen = message[4];
                 omitted = message[5];
-                interval = EXTRACT_16BITS(message + 6);
-                seqno = EXTRACT_16BITS(message + 8);
-                metric = EXTRACT_16BITS(message + 10);
+                interval = EXTRACT_BE_16BITS(message + 6);
+                seqno = EXTRACT_BE_16BITS(message + 8);
+                metric = EXTRACT_BE_16BITS(message + 10);
                 rc = network_prefix(ae, plen, omitted, message + 2 + parsed_len,
                                     ae == 1 ? v4_prefix : v6_prefix,
                                     len - parsed_len, prefix);
@@ -679,7 +673,7 @@ babel_print_v2(netdissect_options *ndo,
                 if(len < 14) goto invalid;
                 ae = message[2];
                 plen = message[3];
-                seqno = EXTRACT_16BITS(message + 4);
+                seqno = EXTRACT_BE_16BITS(message + 4);
                 hopc = message[6];
                 src_plen = message[7];
                 router_id = message + 8;
@@ -718,6 +712,6 @@ babel_print_v2(netdissect_options *ndo,
     return;
 
  invalid:
-    ND_PRINT((ndo, " (invalid)"));
+    ND_PRINT((ndo, "%s", istr));
     return;
 }