Packet BPDU

File: src/inet/linklayer/ieee8021d/common/Ieee8021dBPDU.msg

C++ definition

Represents a BPDU (Bridge PDU) used by the STP and RSTP protocols, as defined in the 802.1D-1998 specification.

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Fields:

Name Type Description
byteLength
protocolIdentifier unsigned int

0 for STP, 1 for RSTP (TODO use them)

protocolVersionIdentifier unsigned int

currently 0

bpduType unsigned int

0 for Configuration BPDU, 1 for Topology Change Notification BPDU

tcaFlag bool

Topology Change Acknowledgment flag

tcFlag bool

Topology Change flag

rootAddress MACAddress

address of the tree root (first part of Root Identifier)

rootPriority unsigned int

priority of the tree root (second part of Root Identifier)

rootPathCost unsigned int

cost to the root

bridgeAddress MACAddress

address of sender bridge (first part of Bridge Identifier)

bridgePriority unsigned int

priority of sender bridge (second part of Bridge Identifier)

portNum unsigned int

port number (ethg[] gate index) of sender port (first part of Port Identifier)

portPriority unsigned int

priority of sender port (second part of Port Identifier)

messageAge simtime_t

Message Age in seconds

maxAge simtime_t

maximum lifetime of the BPDU (seconds)

helloTime simtime_t

Hello Time of the sender bridge

forwardDelay simtime_t

Forward Delay timer of the sender bridge

Source code:

//
// Represents a BPDU (Bridge PDU) used by the STP and RSTP protocols,
// as defined in the 802.1D-1998 specification.
//
packet BPDU
{
    byteLength = 35;
    unsigned int protocolIdentifier;          // 0 for STP, 1 for RSTP (TODO use them)
    unsigned int protocolVersionIdentifier;   // currently 0

    unsigned int bpduType;                    // 0 for Configuration BPDU, 1 for Topology Change Notification BPDU
    bool tcaFlag;                             // Topology Change Acknowledgment flag
    bool tcFlag;                              // Topology Change flag

    MACAddress rootAddress;                   // address of the tree root (first part of Root Identifier)
    unsigned int rootPriority;                // priority of the tree root (second part of Root Identifier)
    unsigned int rootPathCost;                // cost to the root

    MACAddress bridgeAddress;                 // address of sender bridge (first part of Bridge Identifier)
    unsigned int bridgePriority;              // priority of sender bridge (second part of Bridge Identifier)

    unsigned int portNum;                     // port number (ethg[] gate index) of sender port (first part of Port Identifier)
    unsigned int portPriority;                // priority of sender port (second part of Port Identifier)

    simtime_t messageAge;                     // Message Age in seconds
    simtime_t maxAge;                         // maximum lifetime of the BPDU (seconds)
    simtime_t helloTime;                      // Hello Time of the sender bridge
    simtime_t forwardDelay;                   // Forward Delay timer of the sender bridge
}