Package: inet.protocolelement.contract
IProtocolLayer
module interfaceThis module interface is implemented by all protocol layer modules that connect to a higher and to a lower protocol layer, both of which is optional.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
BridgingLayer | compound module |
This module provides various layer 2 services such as packet forwarding, interface selection, virtual LAN handling, stream handling. |
DirectionReverserLayer | compound module |
This module provides a layer that combines the decision for local delivery with the service of reversing the direction of an incoming packet to outgoing for packet forwarding. |
Ieee8021dRelay | simple module |
This modul forwards frames (EtherFrame) based on their destination MAC addresses to appropriate ports. |
Ieee8021qLayer | compound module | (no description) |
Ieee8021qProtocol | compound module |
This module implements the IEEE 802.1Q protocol encapsulation/decapsulation. It also provides socket support so applications can use the protocol directly. |
Ieee8021rLayer | compound module | (no description) |
Ieee8021rProtocol | compound module |
This module implements the IEEE 802.1r protocol encapsulation/decapsulation. |
InterfaceRelayLayer | compound module |
This module combines the interface MAC address learning from incoming packets with the outgoing interface selection for outgoing packets into a single layer. |
MacRelayUnit | simple module | (no description) |
Mpls | simple module |
Implements the MPLS protocol. |
OmittedProtocolLayer | compound module |
This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize. |
StreamCoderLayer | compound module |
This module combines a stream decoder and a stream encoder into a layer. For incoming packets the stream decoder determines the stream of the packet. For outgoing packets the stream encoder determines the VLAN id, etc. of the packet. |
StreamFilterLayer | compound module |
This module combines two packet filters into a protocol layer so that it can be used in a layered compound module. There are separate submodules for ingress and egress traffic, but in most cases only the ingress filter is used. |
StreamIdentifierLayer | compound module |
This module wraps a stream identifier into a protocol layer so that it can be used in a layered compound module. |
StreamPolicyLayer | compound module | (no description) |
StreamRelayLayer | compound module |
This module combines a stream merger and a stream splitter module into a stream relay layer. For incoming packets the identified streams are merged by the stream merger. For outgoing packets the requested streams are split by the stream splitter. |
VlanPolicyLayer | compound module | (no description) |
Used in compound modules
Name | Type | Description |
---|---|---|
BridgingLayer | compound module |
This module provides various layer 2 services such as packet forwarding, interface selection, virtual LAN handling, stream handling. |
EthernetSwitch | compound module |
Model of an Ethernet switch. |
Ieee8021qLayer | compound module | (no description) |
Ieee8021rLayer | compound module | (no description) |
LinkLayerNodeBase | compound module | (no description) |
StreamPolicyLayer | compound module | (no description) |
Known subclasses
Name | Type | Description |
---|---|---|
IIeee8021qLayer | module interface | (no description) |
IIeee8021rLayer | module interface | (no description) |
IMacRelayUnit | module interface |
Module interface for modules providing Ethernet switch functionality. These modules handle the mapping between ports and MAC addresses, and forward frames to appropriate ports. |
Properties
Name | Value | Description |
---|---|---|
omittedTypename | OmittedProtocolLayer | |
display | i=block/layer |
Source code
// // This module interface is implemented by all protocol layer modules that // connect to a higher and to a lower protocol layer, both of which is optional. // moduleinterface IProtocolLayer { parameters: @omittedTypename(OmittedProtocolLayer); @display("i=block/layer"); gates: input upperLayerIn; output upperLayerOut; input lowerLayerIn; output lowerLayerOut; }File: src/inet/protocolelement/contract/IProtocolLayer.ned