From 5aab0a4fd631d5807d70f874a382614c175b8ad68096bf55da5e8d48277e4737 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Mon, 20 Dec 2010 13:20:13 +0000 Subject: [PATCH 1/5] Updating link to change in openSUSE:Factory/wireshark revision 38.0 OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=46020062903b18a5134f12610a3efee6 --- wireshark.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wireshark.spec b/wireshark.spec index ec46b9d..3570764 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -1,7 +1,21 @@ # +# spec file for package wireshark (Version 1.4.2) +# +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + # disable caps for now %define use_caps 0 @@ -117,6 +131,7 @@ install -D -m 0644 wireshark.desktop %{buildroot}%{_datadir}/applications/wiresh rm -rf %{buildroot} %if %{use_caps} + %pre getent group wireshark >/dev/null || groupadd wireshark %endif From 243bd6d43726af598eba70847bf7514547811267deda662e7977b3242d4bd3d4 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 21 Dec 2010 16:22:26 +0000 Subject: [PATCH 2/5] OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=32 --- wireshark.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wireshark.spec b/wireshark.spec index 3570764..fd61e6c 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -110,7 +110,7 @@ sed -i 's!^Exec=wireshark!Exec=/usr/bin/xdg-su -c /usr/bin/wireshark!' wireshark make %{?_smp_mflags} %install -%make_install +make DESTDIR=%{buildroot} install find %{buildroot} -name "*.la" -delete -print ln -fs wireshark %{buildroot}%{_bindir}/ethereal ln -fs tshark %{buildroot}%{_bindir}/tethereal From c0384e6b3d75d442ccf243247f523e6efc5c4a34f77d396eac68bc514f4ea116 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 15 Feb 2011 12:45:28 +0000 Subject: [PATCH 3/5] Accepting request 60587 from home:hreinecke:branches:network:utilities OBS-URL: https://build.opensuse.org/request/show/60587 OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=33 --- wireshark-dcbx-lldp-dissector.patch | 412 ++++++++++++++++++++++++++++ wireshark.changes | 5 + wireshark.spec | 2 + 3 files changed, 419 insertions(+) create mode 100644 wireshark-dcbx-lldp-dissector.patch 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} From dbddd0d7b0540e9f5378317cef99a9a8f4b57bf86320eb3458835842bae287c4 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 15 Feb 2011 13:04:22 +0000 Subject: [PATCH 4/5] - updated to 1.4.3 - security fixes: o MAC-LTE dissector could overflow a buffer o ENTTEC dissector could overflow a buffer o ASN.1 BER dissector could assert and make Wireshark exit prematurely - bug fixes: o AMQP failed assertion o Reassemble.c leaks memory for GLIB > 2.8 o Fuzz testing reports possible dissector bug: TCP o Wrong length calculation in new_octet_aligned_subset_bits() o Function dissect_per_bit_string_display might read more bytes than available o Wireshark crashes with Copy -> Description on date/time fields o DHCPv6 OPTION_CLIENT_FQDN parse error o Information element Error for supported channels o Assert when using ASN.1 dissector with loading a 'type table' o Bug with RWH parsing in Infiniband dissector o Help->About Wireshark mis-reports OS o Delegated-IPv6-Prefix(123) is shown incorrect as X-Ascend-Call-Attempt-Limit(123) o "tshark -r file -T fields" is truncating exported data o gsm_a_dtap: incorrect "Extraneous Data" when decoding Packet Flow Identifier o Improper decode of TLS 1.2 packet containing both CertificateRequest and ServerHelloDone messages o LTE-PDCP UL and DL problem o CIGI 3.2/3.3 support broken o Prepare Filter in RTP Streams dialog does not work correctly. o Wrong decode at ethernet OAM Y.1731 ETH-CC OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=34 --- wireshark-1.2.0-disable-warning-dialog.patch | 6 +-- wireshark-1.2.4-enable_lua.patch | 6 +-- wireshark-1.4.2.tar.bz2 | 3 -- wireshark-1.4.3.tar.bz2 | 3 ++ wireshark-corosync-packet-dissector.patch | 24 +++++------ wireshark-dcbx-lldp-dissector.patch | 7 ++-- wireshark-nfsv4-opts.patch | 6 +-- wireshark.changes | 43 ++++++++++++++++++++ wireshark.spec | 7 +++- 9 files changed, 76 insertions(+), 29 deletions(-) delete mode 100644 wireshark-1.4.2.tar.bz2 create mode 100644 wireshark-1.4.3.tar.bz2 diff --git a/wireshark-1.2.0-disable-warning-dialog.patch b/wireshark-1.2.0-disable-warning-dialog.patch index ef10eea..eb221f0 100644 --- a/wireshark-1.2.0-disable-warning-dialog.patch +++ b/wireshark-1.2.0-disable-warning-dialog.patch @@ -2,7 +2,7 @@ Index: gtk/main.c =================================================================== --- gtk/main.c.orig +++ gtk/main.c -@@ -1417,13 +1417,13 @@ set_display_filename(capture_file *cf) +@@ -1421,13 +1421,13 @@ set_display_filename(capture_file *cf) } GtkWidget *close_dlg = NULL; @@ -18,7 +18,7 @@ Index: gtk/main.c #ifdef _WIN32 static void npf_warning_dialog_cb(gpointer dialog, gint btn _U_, gpointer data _U_) -@@ -1993,9 +1993,10 @@ check_and_warn_user_startup(gchar *cf_na +@@ -1997,9 +1997,10 @@ check_and_warn_user_startup(gchar *cf_na #endif { gchar *cur_user, *cur_group; @@ -30,7 +30,7 @@ Index: gtk/main.c if (running_with_special_privs() && recent.privs_warn_if_elevated) { cur_user = get_cur_username(); cur_group = get_cur_groupname(); -@@ -2007,7 +2008,7 @@ check_and_warn_user_startup(gchar *cf_na +@@ -2011,7 +2012,7 @@ check_and_warn_user_startup(gchar *cf_na simple_dialog_check_set(priv_warning_dialog, "Don't show this message again."); simple_dialog_set_cb(priv_warning_dialog, priv_warning_dialog_cb, NULL); } diff --git a/wireshark-1.2.4-enable_lua.patch b/wireshark-1.2.4-enable_lua.patch index 041ac3c..5f7bbe3 100644 --- a/wireshark-1.2.4-enable_lua.patch +++ b/wireshark-1.2.4-enable_lua.patch @@ -1,7 +1,7 @@ -Index: wireshark-1.4.2/epan/wslua/template-init.lua +Index: wireshark-1.4.3/epan/wslua/template-init.lua =================================================================== ---- wireshark-1.4.2.orig/epan/wslua/template-init.lua -+++ wireshark-1.4.2/epan/wslua/template-init.lua +--- wireshark-1.4.3.orig/epan/wslua/template-init.lua ++++ wireshark-1.4.3/epan/wslua/template-init.lua @@ -42,7 +42,7 @@ if running_superuser then local disabled_lib = {} setmetatable(disabled_lib,{ __index = function() error("this package has been disabled") end } ); diff --git a/wireshark-1.4.2.tar.bz2 b/wireshark-1.4.2.tar.bz2 deleted file mode 100644 index af6b8ef..0000000 --- a/wireshark-1.4.2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44c6e1ec328fa8e1e7b3838b2f25d51c36b38c562fc0d097ba464205fdb049b2 -size 20208792 diff --git a/wireshark-1.4.3.tar.bz2 b/wireshark-1.4.3.tar.bz2 new file mode 100644 index 0000000..a82f7f0 --- /dev/null +++ b/wireshark-1.4.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ec9b709ea0e2b26c4d5869374a9013a5c7ca4493f2a2a64640824c5a477eda6 +size 20469021 diff --git a/wireshark-corosync-packet-dissector.patch b/wireshark-corosync-packet-dissector.patch index aa0ff18..746a82f 100644 --- a/wireshark-corosync-packet-dissector.patch +++ b/wireshark-corosync-packet-dissector.patch @@ -1,7 +1,7 @@ -Index: wireshark-1.4.2/epan/dissectors/Makefile.common +Index: wireshark-1.4.3/epan/dissectors/Makefile.common =================================================================== ---- wireshark-1.4.2.orig/epan/dissectors/Makefile.common -+++ wireshark-1.4.2/epan/dissectors/Makefile.common +--- wireshark-1.4.3.orig/epan/dissectors/Makefile.common ++++ wireshark-1.4.3/epan/dissectors/Makefile.common @@ -307,6 +307,8 @@ DISSECTOR_SRC = \ packet-collectd.c \ packet-componentstatus.c \ @@ -11,10 +11,10 @@ Index: wireshark-1.4.2/epan/dissectors/Makefile.common packet-cosine.c \ packet-cpfi.c \ packet-cpha.c \ -Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemnet.c +Index: wireshark-1.4.3/epan/dissectors/packet-corosync-totemnet.c =================================================================== --- /dev/null -+++ wireshark-1.4.2/epan/dissectors/packet-corosync-totemnet.c ++++ wireshark-1.4.3/epan/dissectors/packet-corosync-totemnet.c @@ -0,0 +1,1274 @@ +/* packet-corosync-totemnet.c + * Routines for the lowest level(encryption/decryption) protocol used in Corosync cluster engine @@ -1290,10 +1290,10 @@ Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemnet.c +} + +/* packet-corosync-totemnet.c ends here */ -Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.c +Index: wireshark-1.4.3/epan/dissectors/packet-corosync-totemsrp.c =================================================================== --- /dev/null -+++ wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.c ++++ wireshark-1.4.3/epan/dissectors/packet-corosync-totemsrp.c @@ -0,0 +1,1379 @@ +/* packet-corosync-totemsrp.c + * Dissectors for totem single ring protocol implementated in corosync cluster engine @@ -2674,10 +2674,10 @@ Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.c + corosync_totemsrp_is_little_endian(pinfo)); +} + -Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.h +Index: wireshark-1.4.3/epan/dissectors/packet-corosync-totemsrp.h =================================================================== --- /dev/null -+++ wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.h ++++ wireshark-1.4.3/epan/dissectors/packet-corosync-totemsrp.h @@ -0,0 +1,53 @@ +/* packet-corosync-totemsrp.h + * Dissectors for totem single ring protocol implemented in corosync cluster engine @@ -2732,10 +2732,10 @@ Index: wireshark-1.4.2/epan/dissectors/packet-corosync-totemsrp.h + + +#endif /* packet-totemsrp.h */ -Index: wireshark-1.4.2/epan/dissectors/Makefile.in +Index: wireshark-1.4.3/epan/dissectors/Makefile.in =================================================================== ---- wireshark-1.4.2.orig/epan/dissectors/Makefile.in -+++ wireshark-1.4.2/epan/dissectors/Makefile.in +--- wireshark-1.4.3.orig/epan/dissectors/Makefile.in ++++ wireshark-1.4.3/epan/dissectors/Makefile.in @@ -224,6 +224,8 @@ am__objects_3 = libdissectors_la-packet- libdissectors_la-packet-collectd.lo \ libdissectors_la-packet-componentstatus.lo \ diff --git a/wireshark-dcbx-lldp-dissector.patch b/wireshark-dcbx-lldp-dissector.patch index 5c78e81..9afd4ca 100644 --- a/wireshark-dcbx-lldp-dissector.patch +++ b/wireshark-dcbx-lldp-dissector.patch @@ -1,6 +1,7 @@ -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 +Index: wireshark-1.4.3/epan/dissectors/packet-lldp.c +=================================================================== +--- wireshark-1.4.3.orig/epan/dissectors/packet-lldp.c ++++ wireshark-1.4.3/epan/dissectors/packet-lldp.c @@ -128,6 +128,12 @@ static gint ett_802_3_power = -1; static gint ett_802_3_aggregation = -1; static gint ett_media_capabilities = -1; diff --git a/wireshark-nfsv4-opts.patch b/wireshark-nfsv4-opts.patch index 91b97cb..c909748 100644 --- a/wireshark-nfsv4-opts.patch +++ b/wireshark-nfsv4-opts.patch @@ -1,7 +1,7 @@ -Index: wireshark-1.4.2/epan/dissectors/packet-nfs.c +Index: wireshark-1.4.3/epan/dissectors/packet-nfs.c =================================================================== ---- wireshark-1.4.2.orig/epan/dissectors/packet-nfs.c -+++ wireshark-1.4.2/epan/dissectors/packet-nfs.c +--- wireshark-1.4.3.orig/epan/dissectors/packet-nfs.c ++++ wireshark-1.4.3/epan/dissectors/packet-nfs.c @@ -8795,6 +8795,8 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of ftree = proto_item_add_subtree(fitem, ett_nfs_argop4); } diff --git a/wireshark.changes b/wireshark.changes index 2533ff2..96ccd3e 100644 --- a/wireshark.changes +++ b/wireshark.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Tue Feb 15 12:52:45 UTC 2011 - prusnak@opensuse.org + +- updated to 1.4.3 + - security fixes: + o MAC-LTE dissector could overflow a buffer + o ENTTEC dissector could overflow a buffer + o ASN.1 BER dissector could assert and make Wireshark exit prematurely + - bug fixes: + o AMQP failed assertion + o Reassemble.c leaks memory for GLIB > 2.8 + o Fuzz testing reports possible dissector bug: TCP + o Wrong length calculation in new_octet_aligned_subset_bits() + o Function dissect_per_bit_string_display might read more bytes + than available + o Wireshark crashes with Copy -> Description on date/time fields + o DHCPv6 OPTION_CLIENT_FQDN parse error + o Information element Error for supported channels + o Assert when using ASN.1 dissector with loading a 'type table' + o Bug with RWH parsing in Infiniband dissector + o Help->About Wireshark mis-reports OS + o Delegated-IPv6-Prefix(123) is shown incorrect as + X-Ascend-Call-Attempt-Limit(123) + o "tshark -r file -T fields" is truncating exported data + o gsm_a_dtap: incorrect "Extraneous Data" when decoding Packet + Flow Identifier + o Improper decode of TLS 1.2 packet containing both + CertificateRequest and ServerHelloDone messages + o LTE-PDCP UL and DL problem + o CIGI 3.2/3.3 support broken + o Prepare Filter in RTP Streams dialog does not work correctly. + o Wrong decode at ethernet OAM Y.1731 ETH-CC + o WPS: RF bands decryption + o Incorrect LTP SDNV value handling + o LTP bug found by randpkt + o Buffer overflow in SNMP EngineID preferences + - updated protocol support: + AMQP, ASN.1 BER, ASN.1 PER, CFM, CIGI, DHCPv6, Diameter, ENTTEC, + GSM A GM, IEEE 802.11, InfiniBand, LTE-PDCP, LTP, MAC-LTE, MP2T, + RADIUS, SAMR, SCCP, SIP, SNMP, TCP, TLS, TN3270, UNISTIM, WPS + - new and updated capture file support: + Endace ERF, Microsoft Network Monitor, VMS TCPtrace + ------------------------------------------------------------------- Fri Feb 11 13:56:50 CET 2011 - hare@suse.de diff --git a/wireshark.spec b/wireshark.spec index f1965f9..88bc2e8 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -1,5 +1,5 @@ # -# spec file for package wireshark (Version 1.4.2) +# spec file for package wireshark (Version 1.4.3) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -20,7 +20,7 @@ %define use_caps 0 Name: wireshark -Version: 1.4.2 +Version: 1.4.3 Release: 1 License: GPLv2+ Summary: A Network Traffic Analyser @@ -34,8 +34,11 @@ Patch1: %{name}-1.2.0-disable-warning-dialog.patch Patch2: %{name}-1.2.0-geoip.patch # PATCH-FEATURE-UPSTREAM wireshark-corosync-packet-dissector.patch tserong@novell.com -- add corosync packet dissector Patch3: %{name}-corosync-packet-dissector.patch +# PATCH-FIX-OPENSUSE wireshark-1.2.4-enable_lua.patch bnc#650434 Patch4: %{name}-1.2.4-enable_lua.patch +# PATCH-FEATURE-OPENSUSE wireshark-nfsv4-opts.patch -- add NFSv4 options Patch5: %{name}-nfsv4-opts.patch +# PATCH-FEATURE-UPSTREAM wireshark-dcbx-lldp-dissector.patch hare@suse.de -- add DCBx LLDP packet dissector Patch6: %{name}-dcbx-lldp-dissector.patch BuildRequires: bison BuildRequires: cairo-devel From 39aa943ff96cf2d231888b3d0d08321c9970d92b70d4454e8859d942df740840 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 15 Feb 2011 13:39:48 +0000 Subject: [PATCH 5/5] remove the broken patch for now OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=35 --- wireshark-dcbx-lldp-dissector.patch | 413 ---------------------------- wireshark.changes | 5 - wireshark.spec | 3 - 3 files changed, 421 deletions(-) delete mode 100644 wireshark-dcbx-lldp-dissector.patch diff --git a/wireshark-dcbx-lldp-dissector.patch b/wireshark-dcbx-lldp-dissector.patch deleted file mode 100644 index 9afd4ca..0000000 --- a/wireshark-dcbx-lldp-dissector.patch +++ /dev/null @@ -1,413 +0,0 @@ -Index: wireshark-1.4.3/epan/dissectors/packet-lldp.c -=================================================================== ---- wireshark-1.4.3.orig/epan/dissectors/packet-lldp.c -+++ wireshark-1.4.3/epan/dissectors/packet-lldp.c -@@ -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 96ccd3e..6d4ff68 100644 --- a/wireshark.changes +++ b/wireshark.changes @@ -41,11 +41,6 @@ Tue Feb 15 12:52:45 UTC 2011 - prusnak@opensuse.org - new and updated capture file support: Endace ERF, Microsoft Network Monitor, VMS TCPtrace -------------------------------------------------------------------- -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 88bc2e8..196d260 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -38,8 +38,6 @@ Patch3: %{name}-corosync-packet-dissector.patch Patch4: %{name}-1.2.4-enable_lua.patch # PATCH-FEATURE-OPENSUSE wireshark-nfsv4-opts.patch -- add NFSv4 options Patch5: %{name}-nfsv4-opts.patch -# PATCH-FEATURE-UPSTREAM wireshark-dcbx-lldp-dissector.patch hare@suse.de -- add DCBx LLDP packet dissector -Patch6: %{name}-dcbx-lldp-dissector.patch BuildRequires: bison BuildRequires: cairo-devel BuildRequires: flex @@ -102,7 +100,6 @@ 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}