]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-vxlan-gpe.c
Use more the EXTRACT_U_1() macro (40/n)
[tcpdump] / print-vxlan-gpe.c
index a3c214d3ef5b34e0bb225cff82ede5407fe20055..71c517baf7e084fa50ded27d7acd22f96b438afc 100644 (file)
@@ -75,7 +75,7 @@ vxlan_gpe_print(netdissect_options *ndo, const u_char *bp, u_int len)
     next_protocol = *bp;
     bp += 1;
 
-    vni = EXTRACT_24BITS(bp);
+    vni = EXTRACT_BE_U_3(bp);
     bp += 4;
 
     ND_PRINT((ndo, "VXLAN-GPE, "));
@@ -86,19 +86,19 @@ vxlan_gpe_print(netdissect_options *ndo, const u_char *bp, u_int len)
 
     switch (next_protocol) {
     case 0x1:
-        ip_print(ndo, bp, len - 8);
+        ip_print(ndo, bp, len - VXLAN_GPE_HDR_LEN);
         break;
     case 0x2:
-        ip6_print(ndo, bp, len - 8);
+        ip6_print(ndo, bp, len - VXLAN_GPE_HDR_LEN);
         break;
     case 0x3:
-        ether_print(ndo, bp, len - 8, len - 8, NULL, NULL);
+        ether_print(ndo, bp, len - VXLAN_GPE_HDR_LEN, ndo->ndo_snapend - bp, NULL, NULL);
         break;
     case 0x4:
-        nsh_print(ndo, bp, len - 8);
+        nsh_print(ndo, bp, len - VXLAN_GPE_HDR_LEN);
         break;
     case 0x5:
-        mpls_print(ndo, bp, len - 8);
+        mpls_print(ndo, bp, len - VXLAN_GPE_HDR_LEN);
         break;
     default:
         ND_PRINT((ndo, "ERROR: unknown-next-protocol"));