]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-stp.c
Add changes in 4.2.1.
[tcpdump] / print-stp.c
index 64d4530a7aa45d1e1dee27240e9913ce8613858a..8822c3046d0b026347c68054e3317e40733bc3d0 100644 (file)
@@ -11,7 +11,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-"@(#) $Header: /tcpdump/master/tcpdump/print-stp.c,v 1.18 2007-03-08 13:49:46 hannes Exp $";
+"@(#) $Header: /tcpdump/master/tcpdump/print-stp.c,v 1.20 2007-03-18 17:11:46 hannes Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -180,6 +180,7 @@ stp_print_config_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
 /* Offsets of fields from the begginning for the packet */
 #define MST_BPDU_VER3_LEN_OFFSET           36
 #define MST_BPDU_CONFIG_NAME_OFFSET        39
+#define MST_BPDU_CONFIG_DIGEST_OFFSET      73
 #define MST_BPDU_CIST_INT_PATH_COST_OFFSET  89
 #define MST_BPDU_CIST_BRIDGE_ID_OFFSET     93
 #define MST_BPDU_CIST_REMAIN_HOPS_OFFSET    101
@@ -236,8 +237,13 @@ stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
     printf("\n\tCIST regional-root-id %s",
            stp_print_bridge_id((const u_char *)&stp_bpdu->bridge_id));
 
-    printf("\n\tMSTP Configuration Name %s",
-           ptr + MST_BPDU_CONFIG_NAME_OFFSET);
+    printf("\n\tMSTP Configuration Name %s, revision %u, digest %08x%08x%08x%08x",
+           ptr + MST_BPDU_CONFIG_NAME_OFFSET,
+          EXTRACT_16BITS(ptr + MST_BPDU_CONFIG_NAME_OFFSET + 32),
+          EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET),
+          EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 4),
+          EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 8),
+          EXTRACT_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12));
 
     printf("\n\tCIST remaining-hops %d", ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]);
 
@@ -261,8 +267,8 @@ stp_print_mstp_bpdu(const struct stp_bpdu_ *stp_bpdu, u_int length)
                    EXTRACT_32BITS(ptr + offset +
                                   MST_BPDU_MSTI_ROOT_PATH_COST_OFFSET));
             printf("\n\t\tMSTI bridge-prio %d, port-prio %d, hops %d",
-                   ptr[offset + MST_BPDU_MSTI_BRIDGE_PRIO_OFFSET],
-                   ptr[offset + MST_BPDU_MSTI_PORT_PRIO_OFFSET],
+                   ptr[offset + MST_BPDU_MSTI_BRIDGE_PRIO_OFFSET] >> 4,
+                   ptr[offset + MST_BPDU_MSTI_PORT_PRIO_OFFSET] >> 4,
                    ptr[offset + MST_BPDU_MSTI_REMAIN_HOPS_OFFSET]);
 
             len -= MST_BPDU_MSTI_LENGTH;