Ref: 13680005
Title: Bridge Protocol Data Unit (BPDU) Format
Date: 12/20/89

Copyright 3Com Corporation, 1991.  All rights reserved.

The following BPDU (Bridge Protocol Data Unit) format shows what the Spanning
Tree Algorithm packet looks like and how to interpret the packet on an
analyzer such as a Sniffer.

Some old Sniffer programs have wrong information for Spanning Tree packets,
because they adopted old IEEE specs.  The current version is
802.1D Revision 7 as of 2/13/89, and is progressing through ISO
as DP 10038.


ADDR  HEX                                                ASCII
0000  01 80 C2 00 00 00 08 00  02 00 29 36 00 26 42 42  ..........)6.&BB
0010  03 00 00 00 00 00 80 00  08 00 02 00 29 36 00 00  ............)6..
0020  00 00 80 00 08 00 02 00  29 36 80 01 00 00 08 00  ........)6......
0030  02 00 05 00 4F 43 01 00  00 00 00 00              ....OC......


Offset 0, Length 6:

Destination Address: 01 80 C2 00 00 00
This address is used for detecting a loop on the network, and is
a multicast address.  The multicast address 01-80-C2-00-00-00
comes from the block of addresses 01-80-C2-00-00-00 to 01-80-C2-
FF-FF-FF that was initially allocated to the IEEE 802 committee.
Since then, the block of addresses has been donated to ISO for
its use.

The block is further divided into two:  MAC frames that have a
destination MAC address with the range 01-80-C2-00-00-01 to 01-
80-C2-00-00-0F are not relayed by MAC bridges conforming to ISO
10038.  MAC frames that have designation MAC addresses within
the range 01-80-C2-00-00-10 to 01-80-C2-FF-FF-FF may be relayed
by MAC bridges conforming to ISO 10038, depending on whether or
not the addresses have been explicitly entered into the MAC
bridge static filtering database.


Offset 6, Length 6:

Source Address: 08 00 02 00 29 36
The address for the IB which generates this packet.


Offset 12, Length 2:

Length Field: 00 26
This field indicates the number of LLC (Logical Link Control) data
octets in the data field.  If the value is less than the minimum
required for proper operation of the protocol, a PAD field is added
to the end of the data field.  00 26 means decimal number 38, so the
size of actual LLC data is 38 (from offset 14 through 51).


Offset 14, Length 3:

L.L.C Header: 42 42 03
Logical Link Control header refers to the client processes running
in the host.
DSAP: 42 - Spanning Tree Process
SSAP: 42 - Spanning Tree Process
Control: 03 - Unnumbered information


Offset 17, Length 2:

Protocol Identifier: 00 00
STA = all 0's


Offset 19, Length 1:

Protocol Version ID: 00
If two protocol version identifiers are interpreted as unsigned
binary numbers, then the greater number will be associated with the
most recently defined protocol version.


Offset 20, Length 1:

BPDU type : 00
Configuration = all 0's


Offset 21, Length 1:

Topology Change Active Flag: 00
00 - No Topology Change
The Flags field (octet 5 of the BPDU) encodes two flags.  The
most significant bit is used to encode the Topology Change
Acknowledgement Flag and the least significant bit encodes the
Topology Change Flag.  The other bits should be set to 0.


Offset 22, Length 8:

Root Identifier: 80 00 08 00 02 00 29 36
     Priority: 80 00
     MAC Address: 08 00 02 00 29 36
An IB with address 08 00 02 00 29 36 is the root and priority
is 80 00 (default).  An IB with a lower priority number has more
chance to become a root bridge.


Offset 30, Length 4:

Root Path Cost: 00 00 00 00
00 00 00 00 means this packet was generated by the root bridge.
Path Cost = 1000 / Attached LAN speed in megabits per second

e.g. Ethernet: Path Cost = 1000 / 10 MBPS = 100
     Broadband: Path Cost = 1000 / 5 MBPS = 200
     T-1 (1.544MBPS): Path Cost = 1000 / 1.544 MBPS = 650


Offset 34, Length 8:

Bridge Identifier: 80 00 08 00 02 00 29 36
       Priority: 80 00
       MAC Address: 08 00 02 00 29 36
If two bridge identifiers are numerically compared, the lesser
number denotes the bridge of higher priority.


Offset 42, Length 2:

Port Identifier: 80 01
If two port identifiers are numerically compared, the lesser number
denotes the port of higher priority.  80 01 means port #1 (default).


Offset 44, Length 2:

Message Age: 00 00
This timer measures the age of the received protocol
information recorded for a port, and ensures that this information
is discarded when its age exceeds the value of the Max Age parameter
recorded by the bridge.


Offset 46, Length 2:

MaxAge: 08 00
A timeout value to be used by all bridges in the bridged LAN.  The
value of MaxAge is set by the root.  08 00 means eight seconds.


Offset 48, Length 2:

Hello Time: 02 00
The time interval between transmissions of BPDUs towards the root
when the bridge is attempting to notify the designated bridge on the
LAN where the root port is attached of a topology change.  02 00 means
two seconds.


Offset 50, Length 2:

Forward Delay: 05 00
A timeout value when transferring the State of a Port to the
Forwarding State.  This parameter is set by the Root.  05 00 means
five seconds.


Offset 52, Length 8:

PAD: 4F 43 01 00 00 00 00 00
Does not mean anything.  Lies outside the 0x26 octets of LLC
data.


