Ieee8021dRelay

Package: inet.linklayer.ieee8021d.relay

Ieee8021dRelay

simple module

This modul forwards frames (EtherFrame) based on their destination MAC addresses to appropriate ports.

It can work in two mode:

  • STP unaware mode (If no module connected to its STP gate): Looks up the frames destination address in the MACAddressTable, if it found the address, sends through that port, or otherwise broadcasts it.
  • STP aware mode (If an STP or RSTP module connected to its STP gate): Handles BPDU frames. If relaying a message also checks the port's status in the InterfaceTable.

See also: EtherFrame, MACAddressTable, STP, RSTP

Inheritance diagram

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

Parameters

Name Type Default value Description
interfaceTablePath string "^.interfaceTable"

The path to the InterfaceTable module

macTablePath string "^.macTable"

The path to the MACAddressTable module

Properties

Name Value Description
display i=block/broadcast;bgb=425,114

Gates

Name Direction Size Description
ifIn [ ] input
ifOut [ ] output
stpIn input
stpOut output

Signals

Name Type Unit
packetReceivedFromLower cPacket
packetSentToLower cPacket

Source code

//
// This modul forwards frames (~EtherFrame) based on their destination MAC addresses to appropriate ports.
//
// It can work in two mode:
// - STP unaware mode (If no module connected to its STP gate):
//     Looks up the frames destination address in the ~MACAddressTable, if it found the address, sends through
//	   that port, or otherwise broadcasts it.
// - STP aware mode (If an ~STP or ~RSTP module connected to its STP gate):
//     Handles BPDU frames.
//     If relaying a message also checks the port's status in the InterfaceTable.
//
// @see EtherFrame, MACAddressTable, STP, RSTP
//
simple Ieee8021dRelay like IMACRelayUnit
{
    parameters:
        string interfaceTablePath = default("^.interfaceTable"); // The path to the InterfaceTable module
        string macTablePath = default("^.macTable");             // The path to the MACAddressTable module
        @display("i=block/broadcast;bgb=425,114");
        @signal[packetSentToLower](type=cPacket);
        @signal[packetReceivedFromLower](type=cPacket);
    gates:
        input ifIn[];
        output ifOut[];
        input stpIn @loose;
        output stpOut @loose;
}
File: src/inet/linklayer/ieee8021d/relay/Ieee8021dRelay.ned