diff --git a/wireshark-dcbx-lldp-dissector.patch b/wireshark-dcbx-lldp-dissector.patch new file mode 100644 index 0000000..5c78e81 --- /dev/null +++ b/wireshark-dcbx-lldp-dissector.patch @@ -0,0 +1,412 @@ +diff -pur /mounts/users-space/hare/OpenSUSE/home:hreinecke:branches:network:utilities/wireshark/wireshark-1.4.2/epan/dissectors/packet-lldp.c wireshark-1.4.2/epan/dissectors/packet-lldp.c +--- /mounts/users-space/hare/OpenSUSE/home:hreinecke:branches:network:utilities/wireshark/wireshark-1.4.2/epan/dissectors/packet-lldp.c 2010-11-18 22:30:50.000000000 +0100 ++++ wireshark-1.4.2/epan/dissectors/packet-lldp.c 2011-01-24 17:14:48.000000000 +0100 +@@ -128,6 +128,12 @@ static gint ett_802_3_power = -1; + static gint ett_802_3_aggregation = -1; + static gint ett_media_capabilities = -1; + static gint ett_profinet_period = -1; ++static gint ett_dcb_cn_cnpv = -1; ++static gint ett_dcb_cn_ready = -1; ++static gint ett_dcb_ets_priority_mapping = -1; ++static gint ett_dcb_ets_tc_bw_table = -1; ++static gint ett_dcb_ets_tsa_table = -1; ++static gint ett_dcb_pfc_enable = -1; + + static const value_string tlv_types[] = { + { END_OF_LLDPDU_TLV_TYPE, "End of LLDPDU"}, +@@ -188,6 +194,11 @@ static const value_string ieee_802_1_sub + { 0x02, "Port and Protocol VLAN ID" }, + { 0x03, "VLAN Name" }, + { 0x04, "Protocol Identity" }, ++ { 0x08, "Congestion Notification" }, ++ { 0x09, "ETS Configuration" }, ++ { 0x0A, "ETS Recommendation" }, ++ { 0x0B, "Priority-based Flow Control Configuration" }, ++ { 0x0C, "Application Priority" }, + { 0, NULL } + }; + +@@ -1332,6 +1343,368 @@ dissect_ieee_802_1_tlv(tvbuff_t *tvb, pa + + break; + } ++ case 0x08: /* Congestion Notification */ ++ { ++ proto_item *tf = NULL; ++ proto_tree *cnpv = NULL; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 1, "CNPV to Priority Mapping: 0x%02X", tempByte); ++ cnpv = proto_item_add_subtree(tf, ett_dcb_cn_cnpv); ++ ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x80, 8, "Priority 0: CNPV Capable", ++ "Priority 0: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x40, 8, "Priority 1: CNPV Capable", ++ "Priority 1: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x20, 8, "Priority 2: CNPV Capable", ++ "Priority 2: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x10, 8, "Priority 3: CNPV Capable", ++ "Priority 3: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x08, 8, "Priority 4: CNPV Capable", ++ "Priority 4: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x04, 8, "Priority 5: CNPV Capable", ++ "Priority 5: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x02, 8, "Priority 6: CNPV Capable", ++ "Priority 6: Not CNPV Capable")); ++ proto_tree_add_text(cnpv, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x01, 8, "Priority 7: CNPV Capable", ++ "Priority 7: Not CNPV Capable")); ++ ++ proto_tree *ready = NULL; ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 1, "Ready Indicators: 0x%02X", tempByte); ++ ready = proto_item_add_subtree(tf, ett_dcb_cn_ready); ++ ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x80, 8, "Priority 0: Xmit Ready", ++ "Priority 0: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x40, 8, "Priority 1: Xmit Ready", ++ "Priority 1: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x20, 8, "Priority 2: Xmit Ready", ++ "Priority 2: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x10, 8, "Priority 3: Xmit Ready", ++ "Priority 3: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x08, 8, "Priority 4: Xmit Ready", ++ "Priority 4: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x04, 8, "Priority 5: Xmit Ready", ++ "Priority 5: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x02, 8, "Priority 6: Xmit Ready", ++ "Priority 6: Not Xmit Ready")); ++ proto_tree_add_text(ready, tvb, tempOffset, 1, "%s", decode_boolean_bitfield(tempByte, 0x01, 8, "Priority 7: Xmit Ready", ++ "Priority 7: Not Xmit Ready")); ++ break; ++ } ++ case 0x09: /* ETS Configuration */ ++ { ++ proto_item *tf = NULL; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x80, 8, "Willing: Enabled", ++ "Willing: Not Enabled")); ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x40, 8, "CBS: Enabled", ++ "CBS: Not Enabled")); ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "Max Traffic Classes: %u", (tempByte&0x07)); ++ ++ /* Traffic Class to Priority Map */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ long tempLong = tvb_get_ntohl(tvb, tempOffset); ++ proto_tree *priority_mapping = NULL; ++ ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 4, "Traffic Class to Priority Mapping: 0x%08X", tempLong); ++ priority_mapping = proto_item_add_subtree(tf, ett_dcb_ets_priority_mapping); ++ ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 0: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 1: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 2: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 3: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 4: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 5: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 6: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 7: %u", (tempByte&0x0F)); ++ ++ /* TC BW Table */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ tempLong = tvb_get_ntohl(tvb, tempOffset); ++ long tempLong2 = tvb_get_ntohl(tvb, tempOffset+4); ++ proto_tree *bw_table = NULL; ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 8, "Traffic Class Bandwidth Table: 0x%08X%08X", tempLong, tempLong2); ++ bw_table = proto_item_add_subtree(tf, ett_dcb_ets_tc_bw_table); ++ ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 1: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 2: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 3: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 4: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 5: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 6: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 7: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 8: %u", tempByte); ++ ++ /* TSA Table */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ tempLong = tvb_get_ntohl(tvb, tempOffset); ++ tempLong2 = tvb_get_ntohl(tvb, tempOffset+4); ++ proto_tree *tsa_table = NULL; ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 8, "Traffic Selection Algorithm Table: 0x%08X%08X", tempLong, tempLong2); ++ tsa_table = proto_item_add_subtree(tf, ett_dcb_ets_tsa_table); ++ ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 1: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 2: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 3: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 4: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 5: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 6: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 7: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 8: %u", tempByte); ++ ++ break; ++ } ++ case 0x0A: /* ETS Recommendation */ ++ { ++ /* Traffic Class to Priority Map */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ long tempLong = tvb_get_ntohl(tvb, tempOffset); ++ proto_tree *priority_mapping = NULL; ++ ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 4, "Traffic Class to Priority Mapping: 0x%08X", tempLong); ++ priority_mapping = proto_item_add_subtree(tf, ett_dcb_ets_priority_mapping); ++ ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 0: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 1: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 2: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 3: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 4: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 5: %u", (tempByte&0x0F)); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 6: %u", ((tempByte&0xF0)>>4)); ++ proto_tree_add_text(priority_mapping, tvb, tempOffset, 1, "Priority 7: %u", (tempByte&0x0F)); ++ ++ /* TC BW Table */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ tempLong = tvb_get_ntohl(tvb, tempOffset); ++ long tempLong2 = tvb_get_ntohl(tvb, tempOffset+4); ++ proto_tree *bw_table = NULL; ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 8, "Traffic Class Bandwidth Table: 0x%08X%08X", tempLong, tempLong2); ++ bw_table = proto_item_add_subtree(tf, ett_dcb_ets_tc_bw_table); ++ ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 1: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 2: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 3: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 4: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 5: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 6: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 7: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(bw_table, tvb, tempOffset, 1, "Traffic Class 8: %u", tempByte); ++ ++ /* TSA Table */ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ tempLong = tvb_get_ntohl(tvb, tempOffset); ++ tempLong2 = tvb_get_ntohl(tvb, tempOffset+4); ++ proto_tree *tsa_table = NULL; ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 8, "Traffic Selection Algorithm Table: 0x%08X%08X", tempLong, tempLong2); ++ tsa_table = proto_item_add_subtree(tf, ett_dcb_ets_tsa_table); ++ ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 1: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 2: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 3: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 4: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 5: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 6: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 7: %u", tempByte); ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tsa_table, tvb, tempOffset, 1, "Traffic Class 8: %u", tempByte); ++ ++ break; ++ } ++ case 0x0B: /* PFC Configuration */ ++ { ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ ++ /* Willing Flag */ ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x80, 8, "Willing: Enabled", ++ "Willing: Not Enabled")); ++ /* MBC Flag */ ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x40, 8, "MBC: Enable", ++ "MBC: Not Enabled")); ++ /* PFC Cabaility Field */ ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "PFC Capability: %u", (tempByte&0x0F)); ++ ++ /* PFC Enabled Flag Field */ ++ proto_item *tf = NULL; ++ proto_tree *pfc_table = NULL; ++ ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ tf = proto_tree_add_text(tree, tvb, tempOffset, 1, "PFC Enable Table: 0x%02X", tempByte); ++ pfc_table = proto_item_add_subtree(tf, ett_dcb_pfc_enable); ++ ++ ++ ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x01, 8, "Priority 1: Enabled", ++ "Priority 1: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x02, 8, "Priority 2: Enabled", ++ "Priority 2: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x04, 8, "Priority 3: Enabled", ++ "Priority 3: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x08, 8, "Priority 4: Enabled", ++ "Priority 4: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x10, 8, "Priority 5: Enabled", ++ "Priority 5: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x20, 8, "Priority 6: Enabled", ++ "Priority 6: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x40, 8, "Priority 7: Enabled", ++ "Priority 7: Not Enabled")); ++ proto_tree_add_text(pfc_table, tvb, tempOffset, 1, "%s", ++ decode_boolean_bitfield(tempByte, 0x80, 8, "Priority 8: Enabled", ++ "Priority 8: Not Enabled")); ++ break; ++ } ++ case 0x0C: /* App TLV */ ++ { ++ /* Get tlv length */ ++ guint16 tempShort = tvb_get_ntohs(tvb, tempOffset-6); ++ guint32 tempLen = 0; ++ tempLen = TLV_INFO_LEN(tempShort); ++ ++ if(tempLen-5<0 || (tempLen-5)%3!=0) ++ proto_tree_add_text(tree, tvb, tempOffset-4, tempLen, "Invalid Application TLV Length (%u)", tempLen); ++ else ++ { ++ int i = 0; ++ for( i; i < ((tempLen-5)/3); i++) ++ { ++ tempOffset++; ++ tempByte = tvb_get_guint8(tvb, tempOffset); ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "Application %u Priority: %u", i+1, ((tempByte&0xE0)>>5)); ++ proto_tree_add_text(tree, tvb, tempOffset, 1, "Application %u Selection: %u", i+1, (tempByte&0x07)); ++ tempOffset++; ++ tempShort = tvb_get_ntohs(tvb, tempOffset); ++ proto_tree_add_text(tree, tvb, tempOffset, 2, "Application %u Selection: %04X", i+1, tempShort); ++ tempOffset++; ++ } ++ } ++ break; ++ } + } + + return; +@@ -2844,7 +3217,13 @@ proto_register_lldp(void) + &ett_802_3_power, + &ett_802_3_aggregation, + &ett_media_capabilities, +- &ett_profinet_period ++ &ett_profinet_period, ++ &ett_dcb_cn_cnpv, ++ &ett_dcb_cn_ready, ++ &ett_dcb_ets_priority_mapping, ++ &ett_dcb_ets_tc_bw_table, ++ &ett_dcb_ets_tsa_table, ++ &ett_dcb_pfc_enable + }; + + /* Register the protocol name and description */ diff --git a/wireshark.changes b/wireshark.changes index 1cf81ad..2533ff2 100644 --- a/wireshark.changes +++ b/wireshark.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Feb 11 13:56:50 CET 2011 - hare@suse.de + +- Add packet dissector for DCBx LLDP + ------------------------------------------------------------------- Wed Dec 8 16:15:13 UTC 2010 - prusnak@opensuse.org diff --git a/wireshark.spec b/wireshark.spec index fd61e6c..f1965f9 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -36,6 +36,7 @@ Patch2: %{name}-1.2.0-geoip.patch Patch3: %{name}-corosync-packet-dissector.patch Patch4: %{name}-1.2.4-enable_lua.patch Patch5: %{name}-nfsv4-opts.patch +Patch6: %{name}-dcbx-lldp-dissector.patch BuildRequires: bison BuildRequires: cairo-devel BuildRequires: flex @@ -98,6 +99,7 @@ view the reconstructed stream of a TCP session. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 sed -i 's/^Icon=wireshark.png$/Icon=wireshark/' wireshark.desktop # run as root on 11.3 and older - bnc#349782 %if ! %{use_caps}