Package: inet.protocolelement.contract
IProtocolLayer
module interfaceInterface for all protocol layer modules that connect to a higher and to a lower protocol layer, both of which are 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 |
Provides various layer 2 services such as packet forwarding, interface selection, virtual LAN handling, stream handling. |
| DirectionReverserLayer | compound 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. |
| EthernetPlca | simple module |
Implements the Ethernet Phyisical Layer Collision Avoidance (PLCA) protocol defined in the IEEE 802.3cg-2019 standard. It can be used to build an Ethernet network interface that can be connected to 10BASE-T1S multidrop links. |
| Ieee8021dRelay | simple module |
Forwards frames (~EtherFrame) based on their destination MAC addresses to appropriate ports. |
| Ieee8021qLayer | compound module |
Implements IEEE 802.1Q protocol functionality as a layered architecture with policy and protocol components. The policy submodule handles VLAN filtering and mapping, while the protocol submodule manages tag encapsulation/ decapsulation. Supports both C-VLAN (0x8100) and S-VLAN (0x88A8) tag types through configuration. Enables network segmentation and traffic control in Ethernet networks by processing VLAN tags according to configured policies. |
| Ieee8021qProtocol | compound 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 |
Implements the IEEE 802.1r protocol encapsulation/decapsulation. |
| InterfaceRelayLayer | compound 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 |
Implements Ethernet switch functionality by relaying frames between different ports based on destination MAC addresses. Maintains a MAC address table that maps addresses to ports, learns addresses from incoming frames, and forwards frames appropriately. Handles unicast, multicast, and broadcast traffic according to standard Ethernet switching rules, with support for VLANs. |
| Mpls | simple module |
Implements the MPLS protocol. |
| MrpRelay | simple module |
Relay unit with support for the Media Redundancy Protocol (MRP), defined in IEC 62439-2. |
| OmittedProtocolLayer | compound module |
Implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialization. |
| StreamCoderLayer | compound 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 |
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 |
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 |
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 |
Provides various layer 2 services such as packet forwarding, interface selection, virtual LAN handling, stream handling. |
| EthernetPlcaInterface | compound module |
Implements a network interface that is suitable for use in Ethernet 10BASE-T1S multidrop links. Such a multidrop link uses the Ethernet Phyisical Layer Collision Avoidance (PLCA) protocol. The protocol is defined in the IEEE 802.3cg-2019 standard. This network interface can be used in any network node module (e.g. ~StandardHost) that allows replacing its network interfaces. All network interfaces on the same multidrop link must use this module. |
| EthernetSwitch | compound module |
EthernetSwitch models a Layer 2 Ethernet switch with support for various IEEE 802.1 protocols and features. It provides frame forwarding based on MAC addresses and implements multiple switching technologies. |
| Ieee8021qLayer | compound module |
Implements IEEE 802.1Q protocol functionality as a layered architecture with policy and protocol components. The policy submodule handles VLAN filtering and mapping, while the protocol submodule manages tag encapsulation/ decapsulation. Supports both C-VLAN (0x8100) and S-VLAN (0x88A8) tag types through configuration. Enables network segmentation and traffic control in Ethernet networks by processing VLAN tags according to configured policies. |
| Ieee8021rLayer | compound module | (no description) |
| LinkLayerNodeBase | compound module |
An extension of the basic node infrastructure with link layer functionality. Provides support for various network interfaces and link layer protocols, forming the foundation for network connectivity. |
| 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
// // Interface for all protocol layer modules that // connect to a higher and to a lower protocol layer, both of which are 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