SessionTag

Namespace simu5g

SessionTag

class

The session a downlink datagram belongs to at a base station, and so the UE it is for. It is attached where the datagram enters the base station: from the GTP-U tunnel it arrived on, from the core network (GtpUser) or from a handover source (GtpUserX2), or, on the shortcut between two UEs of the same base station (TrafficFlowFilter's fastForwarding), from the destination UE's session (GtpUser). The modules after the entry read the UE from this tag, and each applies its own policy for picking one of the UE's node ids (see HandoverPacketHolderEnb, Ip2Nic). The tag also carries the session's type, as the tunnel end knows it from the session's establishment, so no module after the entry has to parse the datagram to learn what it carries. A datagram forwarded to a handover target keeps it until GtpUserX2 sends it on the session's tunnel there.

The tag is node-local: removeAllSimu5GTags() leaves it in place, and every node attaches its own.

Inheritance diagram

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

Extends

Name Type Description
TagBase class

This is an abstract base class that should not be directly added to a message as a tag. It is used as the base class of all tags, thus it doesn't have any fields.

Fields

Name Type Description
sessionId SessionId
lteNodeId MacNodeId

The UE's node id on its LTE stack

nrNodeId MacNodeId

The UE's node id on its NR stack; NODEID_NONE if it has none

sessionType SessionType

The session's type (see the sessionType parameter of LteUe)

Source code

//
// The session a downlink datagram belongs to at a base station, and so the UE it
// is for. It is attached where the datagram enters the base station: from the GTP-U
// tunnel it arrived on, from the core network (~GtpUser) or from a handover source
// (~GtpUserX2), or, on the shortcut between two UEs of the same base station
// (TrafficFlowFilter's fastForwarding), from the destination UE's session (~GtpUser).
// The modules after the entry read the UE from this tag, and each applies its own
// policy for picking one of the UE's node ids (see ~HandoverPacketHolderEnb, ~Ip2Nic).
// The tag also carries the session's type, as the tunnel end knows it from the
// session's establishment, so no module after the entry has to parse the datagram to
// learn what it carries.
// A datagram forwarded to a handover target keeps it until ~GtpUserX2 sends it on the
// session's tunnel there.
//
// The tag is node-local: removeAllSimu5GTags() leaves it in place, and every node
// attaches its own.
//
class SessionTag extends inet::TagBase
{
    SessionId sessionId;
    MacNodeId lteNodeId = NODEID_NONE;   // The UE's node id on its LTE stack
    MacNodeId nrNodeId = NODEID_NONE;    // The UE's node id on its NR stack; NODEID_NONE if it has none
    SessionType sessionType = IP_V4;     // The session's type (see the sessionType parameter of ~LteUe)
}

File: src/simu5g/common/SessionTag.msg