]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-gre.c
Merge git://github.com/the-tcpdump-group/tcpdump
[tcpdump] / print-gre.c
index 72edc2466b6ef52a93d03ae5642b712d4aaeb72c..4d7705f80edca018fa25b76862d035582a8306ff 100644 (file)
@@ -36,6 +36,7 @@
  * RFC1701 (GRE), RFC1702 (GRE IPv4), and RFC2637 (Enhanced GRE)
  */
 
+#define NETDISSECT_REWORKED
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -77,9 +78,9 @@ static const struct tok gre_flag_values[] = {
 
 static void gre_print_0(netdissect_options *, const u_char *, u_int);
 static void gre_print_1(netdissect_options *, const u_char *, u_int);
-static void gre_sre_print(netdissect_options *, u_int16_t, u_int8_t, u_int8_t, const u_char *, u_int);
-static void gre_sre_ip_print(netdissect_options *, u_int8_t, u_int8_t, const u_char *, u_int);
-static void gre_sre_asn_print(netdissect_options *, u_int8_t, u_int8_t, const u_char *, u_int);
+static void gre_sre_print(netdissect_options *, uint16_t, uint8_t, uint8_t, const u_char *, u_int);
+static void gre_sre_ip_print(netdissect_options *, uint8_t, uint8_t, const u_char *, u_int);
+static void gre_sre_asn_print(netdissect_options *, uint8_t, uint8_t, const u_char *, u_int);
 
 void
 gre_print(netdissect_options *ndo, const u_char *bp, u_int length)
@@ -110,7 +111,7 @@ static void
 gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length)
 {
        u_int len = length;
-       u_int16_t flags, prot;
+       uint16_t flags, prot;
 
        flags = EXTRACT_16BITS(bp);
         if (ndo->ndo_vflag)
@@ -159,9 +160,9 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length)
 
        if (flags & GRE_RP) {
                for (;;) {
-                       u_int16_t af;
-                       u_int8_t sreoff;
-                       u_int8_t srelen;
+                       uint16_t af;
+                       uint8_t sreoff;
+                       uint8_t srelen;
 
                        if (len < 4)
                                goto trunc;
@@ -199,11 +200,9 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length)
        case ETHERTYPE_IP:
                ip_print(ndo, bp, len);
                break;
-#ifdef INET6
        case ETHERTYPE_IPV6:
                ip6_print(ndo, bp, len);
                break;
-#endif
        case ETHERTYPE_MPLS:
                mpls_print(ndo, bp, len);
                break;
@@ -211,10 +210,10 @@ gre_print_0(netdissect_options *ndo, const u_char *bp, u_int length)
                ipx_print(ndo, bp, len);
                break;
        case ETHERTYPE_ATALK:
-               atalk_print(bp, len);
+               atalk_print(ndo, bp, len);
                break;
        case ETHERTYPE_GRE_ISO:
-               isoclns_print(bp, len, len);
+               isoclns_print(ndo, bp, len, len);
                break;
        case ETHERTYPE_TEB:
                ether_print(ndo, bp, len, len, NULL, NULL);
@@ -232,7 +231,7 @@ static void
 gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length)
 {
        u_int len = length;
-       u_int16_t flags, prot;
+       uint16_t flags, prot;
 
        flags = EXTRACT_16BITS(bp);
        len -= 2;
@@ -250,7 +249,7 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length)
 
 
        if (flags & GRE_KP) {
-               u_int32_t k;
+               uint32_t k;
 
                if (len < 4)
                        goto trunc;
@@ -296,7 +295,7 @@ gre_print_1(netdissect_options *ndo, const u_char *bp, u_int length)
 
        switch (prot) {
        case ETHERTYPE_PPP:
-                ppp_print(bp, len);
+               ppp_print(ndo, bp, len);
                break;
        default:
                ND_PRINT((ndo, "gre-proto-0x%x", prot));
@@ -309,8 +308,8 @@ trunc:
 }
 
 static void
-gre_sre_print(netdissect_options *ndo, u_int16_t af, u_int8_t sreoff,
-    u_int8_t srelen, const u_char *bp, u_int len)
+gre_sre_print(netdissect_options *ndo, uint16_t af, uint8_t sreoff,
+    uint8_t srelen, const u_char *bp, u_int len)
 {
        switch (af) {
        case GRESRE_IP:
@@ -329,7 +328,7 @@ gre_sre_print(netdissect_options *ndo, u_int16_t af, u_int8_t sreoff,
 }
 
 static void
-gre_sre_ip_print(netdissect_options *ndo, u_int8_t sreoff, u_int8_t srelen,
+gre_sre_ip_print(netdissect_options *ndo, uint8_t sreoff, uint8_t srelen,
                  const u_char *bp, u_int len)
 {
        struct in_addr a;
@@ -364,7 +363,7 @@ gre_sre_ip_print(netdissect_options *ndo, u_int8_t sreoff, u_int8_t srelen,
 }
 
 static void
-gre_sre_asn_print(netdissect_options *ndo, u_int8_t sreoff, u_int8_t srelen,
+gre_sre_asn_print(netdissect_options *ndo, uint8_t sreoff, uint8_t srelen,
                   const u_char *bp, u_int len)
 {
        const u_char *up = bp;