Hello,
I don't want to report a bug of Ethereal, but I want to show you a new feature
I've built in.
Ethereal is able of decoding Spanning Tree BPDUs of normal bridges. For my
purposes it is useful to decode also Spanning Tree BPDUs for cable modems
working as bridges. These cable BPDUs are slightly different from the BPDUs of
normal bridges.
The SP-RFIv1.1-I03-991105 (Data-Over-Cable Service Interface Specifications)
says (H.3 Page 174):
The Data over Cable Spanning Tree algorithm and protocol is identical to that
defined in [IEEE 802.1d], with the following exceptions:
When transmitting Configuration Bridge Protocol Data Units (BPDUs), the Data
over Cable Spanning Tree Multicast Address 01-E0-2F-00-00-03 is used rather than
that defined in IEEE 802.1d (01-80-C2-00-00-00). ...
When transmitting Configuration BPDUs, the SNAP header AA-AA-03-00-E0-2F-73-74
is used rather than the LLC 42-42-03 header employed by 802.1d. ...
My changes, documented by 'diff' are listed below.
My environment:
Operating System and version: SuSE Linux 6.4 Kernel 2.2.14
Version of GTK+: 1.2.7
Version of Ethereal: 0.8.3
Sincerely,
Johannes Hennecke
____________________________________________________________
Johannes Hennecke Broadband Communications
ELSA AG Engineering Consumer Communications
Sonnenweg 11 Phone: +49-(0)241-606-4779
52070 Aachen Fax: +49-(0)241-606-2099
Germany EMail: johannes.hennecke@xxxxxxx
____________________________________________________________
-------------------- made by diff for patch -----------------------------------
diff /home/jhenneck/EtherealPatched/oui.h /home/jhenneck/EtherealOrginal/oui.h
33d32
< #define OUI_CABLE_BPDU 0x00E02F /* for docsis cable modem
spanning tree bpdu */
diff /home/jhenneck/EtherealPatched/packet-llc.c
/home/jhenneck/EtherealOrginal/packet-llc.c
179d178
< { OUI_CABLE_BPDU, "Docsis Cable Spanning Tree" }, /* for docsis
cable modem spanning tree bpdu */
408,416c407
<
< case OUI_CABLE_BPDU: /* for docsis cable modem spanning tree
bpdu */
< if (tree) {
< proto_tree_add_item(llc_tree,
< hf_llc_pid, offset+6, 2, etype);
< }
< dissect_bpdu(pd, offset+8, fd, tree);
< break;
<
---
>
-------------------------------------------------------------------------------