EthernetSessionMux

Package: simu5g.corenetwork.ethernetSessionBridge

EthernetSessionMux

simple module

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.

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