Package: simu5g.corenetwork.ethernetSessionBridge
EthernetSessionMux
simple moduleThe bridge's entry point and multiplexer: creates an EthernetSessionPort per Ethernet PDU session and deletes it at the session's release (flushing its MAC table entries first), on the calls of the node's UserPlaneNodeControl; sends each uplink frame of a session (arriving on sessionIn with its SessionTag) to the session's port, and each frame a port sends down out on sessionOut, tagged with the port's session.
Used in compound modules
| Name | Type | Description |
|---|---|---|
| EthernetSessionBridge | compound module |
The Ethernet bridge of a Upf, which forwards the traffic of its Ethernet PDU sessions "based on detected MAC addresses" (TS 23.501 5.8.2.5.3): one learning bridge per UPF, whose ports are the Ethernet sessions the UPF anchors and one N6 Ethernet interface, the node's dnEth (TS 23.501 5.8.2.5.3, NOTE 2), which is connected to lowerLayerIn/Out: a submodule of the node, but a port of this bridge, registered in its interface table. A session's uplink frames enter the bridge on the session's port; the bridge learns their source addresses, forwards known unicast to the port of the destination (another session: switched locally, not via N6; or dnEth), floods unknown unicast, broadcast and multicast to every port but the ingress, and drops a frame whose destination is on its ingress port. Learning is per VLAN. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| interfaceTableModule | string |
The bridge's interface table, which the session ports are registered in |
|
| macTableModule | string |
The bridge's MAC table, flushed of a released session's port |
|
| portModuleType | string | "simu5g.corenetwork.ethernetSessionBridge.EthernetSessionPort" |
The module type of the session ports |
| portDisplayString | string | "" |
Display string of the session ports (their place in the bridge's layout) |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/join |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| sessionIn | input |
Uplink frames of the sessions, each with its SessionTag |
|
| sessionOut | output |
Downlink frames of the sessions, each with its SessionTag |
|
| portIn [ ] | input |
From the session ports, one per port |
|
| portOut [ ] | output |
To the session ports, one per port |
Source code
// // The bridge's entry point and multiplexer: creates an ~EthernetSessionPort per // Ethernet PDU session and deletes it at the session's release (flushing its MAC table // entries first), on the calls of the node's ~UserPlaneNodeControl; sends each uplink // frame of a session (arriving on sessionIn with its ~SessionTag) to the session's port, // and each frame a port sends down out on sessionOut, tagged with the port's session. // simple EthernetSessionMux { parameters: string interfaceTableModule; // The bridge's interface table, which the session ports are registered in string macTableModule; // The bridge's MAC table, flushed of a released session's port string portModuleType = default("simu5g.corenetwork.ethernetSessionBridge.EthernetSessionPort"); // The module type of the session ports string portDisplayString = default(""); // Display string of the session ports (their place in the bridge's layout) @display("i=block/join"); gates: input sessionIn; // Uplink frames of the sessions, each with its SessionTag output sessionOut; // Downlink frames of the sessions, each with its SessionTag input portIn[]; // From the session ports, one per port output portOut[]; // To the session ports, one per port }File: src/simu5g/corenetwork/ethernetSessionBridge/EthernetSessionBridge.ned