]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Babel: amend to match the specification better
authorDenis Ovsienko <[email protected]>
Thu, 1 Feb 2018 20:12:09 +0000 (20:12 +0000)
committerDenis Ovsienko <[email protected]>
Thu, 1 Feb 2018 20:14:16 +0000 (20:14 +0000)
In RFC 6126 TLV type 9 is "Route Request", TLV type 10 is "Seqno
Request" and the field in the IHU TLV is called "Rxcost". Make the
decoder spell those data items the same way. Add some comments and
update tests.

print-babel.c
tests/babel1.out
tests/babel1v.out
tests/babel_auth.out
tests/babel_rtt.out

index fdba430757768225ae47f85e780338acb1bfe0ee..c7fef600ca287048fd85496e55503d263ec11898 100644 (file)
@@ -86,13 +86,13 @@ babel_print(netdissect_options *ndo,
 #define MESSAGE_ROUTER_ID 6
 #define MESSAGE_NH 7
 #define MESSAGE_UPDATE 8
-#define MESSAGE_REQUEST 9
-#define MESSAGE_MH_REQUEST 10
+#define MESSAGE_ROUTE_REQUEST 9
+#define MESSAGE_SEQNO_REQUEST 10
 #define MESSAGE_TSPC 11
 #define MESSAGE_HMAC 12
-#define MESSAGE_UPDATE_SRC_SPECIFIC 13
-#define MESSAGE_REQUEST_SRC_SPECIFIC 14
-#define MESSAGE_MH_REQUEST_SRC_SPECIFIC 15
+#define MESSAGE_UPDATE_SRC_SPECIFIC 13 /* last appearance in draft-boutier-babel-source-specific-01 */
+#define MESSAGE_REQUEST_SRC_SPECIFIC 14 /* idem */
+#define MESSAGE_MH_REQUEST_SRC_SPECIFIC 15 /* idem */
 
 /* sub-TLVs */
 #define MESSAGE_SUB_PAD1 0
@@ -434,7 +434,7 @@ babel_print_v2(netdissect_options *ndo,
             break;
 
         case MESSAGE_IHU: {
-            unsigned short txcost, interval;
+            unsigned short rxcost, interval;
             if (!ndo->ndo_vflag)
                 ND_PRINT(" ihu");
             else {
@@ -443,15 +443,15 @@ babel_print_v2(netdissect_options *ndo,
                 int rc;
                 ND_PRINT("\n\tIHU ");
                 if(len < 6) goto invalid;
-                txcost = EXTRACT_BE_U_2(message + 4);
+                rxcost = EXTRACT_BE_U_2(message + 4);
                 interval = EXTRACT_BE_U_2(message + 6);
                 ae = EXTRACT_U_1(message + 2);
                 rc = network_address(ae, message + 8,
                                      len - 6, address);
                 if(rc < 0) { ND_PRINT("%s", tstr); break; }
-                ND_PRINT("%s txcost %u interval %s",
+                ND_PRINT("%s rxcost %u interval %s",
                        ae == 0 ? "any" : format_address(ndo, address),
-                       txcost, format_interval(interval));
+                       rxcost, format_interval(interval));
                 /* Extra data. */
                 if((u_int)rc < len - 6)
                     subtlvs_print(ndo, message + 8 + rc, message + 2 + len,
@@ -537,13 +537,13 @@ babel_print_v2(netdissect_options *ndo,
         }
             break;
 
-        case MESSAGE_REQUEST: {
+        case MESSAGE_ROUTE_REQUEST: {
             if (!ndo->ndo_vflag)
-                ND_PRINT(" request");
+                ND_PRINT(" route-request");
             else {
                 int rc;
                 u_char prefix[16], ae, plen;
-                ND_PRINT("\n\tRequest ");
+                ND_PRINT("\n\tRoute Request ");
                 if(len < 2) goto invalid;
                 ae = EXTRACT_U_1(message + 2);
                 plen = EXTRACT_U_1(message + 3) + (EXTRACT_U_1(message + 2) == 1 ? 96 : 0);
@@ -557,14 +557,14 @@ babel_print_v2(netdissect_options *ndo,
         }
             break;
 
-        case MESSAGE_MH_REQUEST : {
+        case MESSAGE_SEQNO_REQUEST : {
             if (!ndo->ndo_vflag)
-                ND_PRINT(" mh-request");
+                ND_PRINT(" seqno-request");
             else {
                 int rc;
                 u_short seqno;
                 u_char prefix[16], ae, plen;
-                ND_PRINT("\n\tMH-Request ");
+                ND_PRINT("\n\tSeqno Request ");
                 if(len < 14) goto invalid;
                 ae = EXTRACT_U_1(message + 2);
                 seqno = EXTRACT_BE_U_2(message + 4);
index de3d37ec9d6605c7669bf013ef886bf817921bf2..d2a467ff5ef3e48c5e9f6ca5325d7ce372316480 100644 (file)
@@ -8,18 +8,18 @@ IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (24) hello ihu
 IP6 fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: babel 2 (8) hello
 IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (8) hello
 IP6 fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: babel 2 (52) update/prefix/id update/prefix update/prefix
-IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) mh-request
+IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) seqno-request
 IP6 fe80::68d3:1235:d068:1f9e.5359 > ff02::cca6:c0f9:e182:5359.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e.5359 > ff02::cca6:c0f9:e182:5359.5359: AHCP Version 1
 IP6 fe80::3428:af91:251:d626.5359 > fe80::68d3:1235:d068:1f9e.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e.5359 > ff02::cca6:c0f9:e182:5359.5359: AHCP Version 1
 IP6 fe80::3428:af91:251:d626.5359 > ff02::cca6:c0f9:e182:5359.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: babel 2 (28) update/prefix/id
-IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) mh-request
+IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) seqno-request
 IP6 fe80::3428:af91:251:d626.5359 > fe80::68d3:1235:d068:1f9e.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e.5359 > ff02::cca6:c0f9:e182:5359.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: babel 2 (24) hello ihu
 IP6 fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: babel 2 (28) update/prefix/id
-IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) mh-request
+IP6 fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: babel 2 (32) seqno-request
 IP6 fe80::3428:af91:251:d626.5359 > fe80::68d3:1235:d068:1f9e.5359: AHCP Version 1
 IP6 fe80::68d3:1235:d068:1f9e > ff02::16: HBH ICMP6, multicast listener report v2, 2 group record(s), length 48
index d483a1460dc3a9cca7b1c2a50e13c84741afba85..50fdb9becec12268eee8d3ffca2b6a059d446d04 100644 (file)
@@ -11,14 +11,14 @@ IP6 (hlim 1, next-header UDP (17) payload length: 122) fe80::68d3:1235:d068:1f9e
        Update 192.168.4.25/32 metric 0 seqno 40149 interval 80.00s sub-diversity empty
 IP6 (hlim 1, next-header UDP (17) payload length: 36) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (24)
        Hello seqno 8043 interval 20.00s
-       IHU fe80::3428:af91:251:d626 txcost 96 interval 60.00s
+       IHU fe80::3428:af91:251:d626 rxcost 96 interval 60.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 20) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (8)
        Hello seqno 40103 interval 20.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 20) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (8)
        Hello seqno 8044 interval 20.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 36) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (24)
        Hello seqno 40104 interval 20.00s
-       IHU fe80::68d3:1235:d068:1f9e txcost 96 interval 60.00s
+       IHU fe80::68d3:1235:d068:1f9e rxcost 96 interval 60.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 20) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (8)
        Hello seqno 8045 interval 20.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 20) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (8)
@@ -28,7 +28,7 @@ IP6 (hlim 1, next-header UDP (17) payload length: 64) fe80::68d3:1235:d068:1f9e.
        Update/prefix 2001:660:3301:8063:218:f3ff:fea9:914e/128 metric 65535 seqno 40149 interval 80.00s
        Update/prefix 2001:660:3301:8063:218:f3ff:fea9:914e/128 metric 65535 seqno 40149 interval 80.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 44) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (32)
-       MH-Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
+       Seqno Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
 IP6 (hlim 1, next-header UDP (17) payload length: 50) fe80::68d3:1235:d068:1f9e.5359 > ff02::cca6:c0f9:e182:5359.5359: [udp sum ok] AHCP Version 1
        Hopcount 1, Original Hopcount 1, Nonce 0xde3e5127, Source Id 02:18:f3:ff:fe:a9:91:4e, Destination Id ff:ff:ff:ff:ff:ff:ff:ff
        Discover, Length 14
@@ -47,7 +47,7 @@ IP6 (hlim 1, next-header UDP (17) payload length: 50) fe80::3428:af91:251:d626.5
 IP6 (hlim 1, next-header UDP (17) payload length: 40) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (28)
        Update/prefix/id 2001:660:3301:8063:218:f3ff:fea9:914e/128 metric 65535 seqno 40149 interval 80.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 44) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (32)
-       MH-Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
+       Seqno Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
 IP6 (hlim 64, next-header UDP (17) payload length: 188) fe80::3428:af91:251:d626.5359 > fe80::68d3:1235:d068:1f9e.5359: [udp sum ok] AHCP Version 1
        Hopcount 2, Original Hopcount 2, Nonce 0xcab83d0d, Source Id 79:40:14:7f:b6:6d:c3:29, Destination Id 02:18:f3:ff:fe:a9:91:4e
        Offer, Length 152
@@ -56,11 +56,11 @@ IP6 (hlim 1, next-header UDP (17) payload length: 50) fe80::68d3:1235:d068:1f9e.
        Request, Length 14
 IP6 (hlim 1, next-header UDP (17) payload length: 36) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (24)
        Hello seqno 8046 interval 20.00s
-       IHU fe80::3428:af91:251:d626 txcost 96 interval 60.00s
+       IHU fe80::3428:af91:251:d626 rxcost 96 interval 60.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 40) fe80::68d3:1235:d068:1f9e.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (28)
        Update/prefix/id 2001:660:3301:8063:218:f3ff:fea9:914e/128 metric 65535 seqno 40149 interval 80.00s
 IP6 (hlim 1, next-header UDP (17) payload length: 44) fe80::3428:af91:251:d626.6697 > ff02::1:6.6697: [udp sum ok] babel 2 (32)
-       MH-Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
+       Seqno Request (127 hops) for 2001:660:3301:8063:218:f3ff:fea9:914e/128 seqno 40150 id 02:18:f3:ff:fe:a9:91:4e
 IP6 (hlim 64, next-header UDP (17) payload length: 188) fe80::3428:af91:251:d626.5359 > fe80::68d3:1235:d068:1f9e.5359: [udp sum ok] AHCP Version 1
        Hopcount 1, Original Hopcount 1, Nonce 0xcbb83d0d, Source Id 79:40:14:7f:b6:6d:c3:29, Destination Id 02:18:f3:ff:fe:a9:91:4e
        Ack, Length 152
index 1f41fdcb8f2e04c753f4e100f1af2c5f2b90da5c..28f7ccec2973a24eb9cb78e6e720bf829d12a932 100644 (file)
@@ -1,7 +1,7 @@
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 436) fe80::b299:28ff:fec8:d646.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (424)
        Hello seqno 58134 interval 4.00s
        Update/id any metric 65535 seqno 41391 interval infinity
-       Request for any
+       Route Request for any
        TS/PC timestamp 1339081200 packetcounter 2
        HMAC key-id 30 digest-20 AD0FA7CD8D5A1898EC5409C8EDDA68B3ACA21B80
        HMAC key-id 50 digest-32 8239F283D985047FA4B88597FDE3246455C6E4DD917B1441C2F3A82B9F737674
index a95829a337a7e9bc6c5426a65f182c760118c36c..fb79990f9309bb3861580e13e953604fcb66eb69 100644 (file)
@@ -2,10 +2,10 @@ IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 26) fe80::5054:ff:
        Hello seqno 58805 interval 4.00s sub-timestamp 2222.954827s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 52) fe80::5054:ff:fe23:4567.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (40)
        Hello seqno 15585 interval 4.00s sub-timestamp 94.665527s
-       IHU fe80::5054:ff:fe85:5da9 txcost 96 interval 12.00s sub-timestamp 2222.954827s|91.378052s
+       IHU fe80::5054:ff:fe85:5da9 rxcost 96 interval 12.00s sub-timestamp 2222.954827s|91.378052s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 52) fe80::5054:ff:fe85:5da9.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (40)
        Hello seqno 58806 interval 4.00s sub-timestamp 2226.449854s
-       IHU fe80::5054:ff:fe23:4567 txcost 96 interval 12.00s sub-timestamp 90.173759s|2222.137366s
+       IHU fe80::5054:ff:fe23:4567 rxcost 96 interval 12.00s sub-timestamp 90.173759s|2222.137366s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 26) fe80::5054:ff:fe85:5da9.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (14)
        Hello seqno 58807 interval 4.00s sub-timestamp 2229.725353s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 26) fe80::5054:ff:fe23:4567.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (14)
@@ -16,10 +16,10 @@ IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 26) fe80::5054:ff:
        Hello seqno 58808 interval 4.00s sub-timestamp 2234.612063s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 52) fe80::5054:ff:fe23:4567.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (40)
        Hello seqno 15588 interval 4.00s sub-timestamp 106.492002s
-       IHU fe80::5054:ff:fe85:5da9 txcost 96 interval 12.00s sub-timestamp 2234.612063s|103.034525s
+       IHU fe80::5054:ff:fe85:5da9 rxcost 96 interval 12.00s sub-timestamp 2234.612063s|103.034525s
 IP6 (class 0xc0, hlim 1, next-header UDP (17) payload length: 88) fe80::5054:ff:fe85:5da9.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (76)
        Hello seqno 58809 interval 4.00s sub-timestamp 2239.274046s
-       IHU fe80::5054:ff:fe23:4567 txcost 96 interval 12.00s sub-timestamp 98.956759s|2230.863572s
+       IHU fe80::5054:ff:fe23:4567 rxcost 96 interval 12.00s sub-timestamp 98.956759s|2230.863572s
        Next Hop 192.168.42.1
        Router Id 48:5f:08:26:dc:36:6d:ad
        Update 192.168.42.1/32 metric 0 seqno 61070 interval 16.00s