GtpUserX2

Package: simu5g.corenetwork.gtp

simple module GtpUserX2

Implements a simplified version of the user plane of the GPRS Tunneling Protocol (GTP) used for handover procedures. In particular, it is employed to transfer data packets from the source e/gNodeB to the target e/gNodeB during a handover (i.e., packets destined for a UE that is undergoing a handover). On one hand, this module encapsulates incoming IP datagrams from the local LteX2Manager into GTP packets and sends them over the X2 interface. On the other hand, it receives GTP packets from other e/gNodeBs and decapsulates the included IP datagrams, which are then forwarded to the local LteX2Manager.

simu5g.corenetwork.gtp.GtpUserX2GtpUserX2simple

Usage diagram

Used in compound modules

Name

Type

Description

eNodeB

compound module

Models an evolved Node B (eNB) of a 4G LTE network. It is a specialized device equipped with a Network Interface Card (NIC) that enables communication with the LteUe devices connected to it. It serves as an access point that routes packets between the UEs and the 4G Core Network. Packets arriving from the UEs are tunneled to the appropriate next hop in the core network (e.g., the PDN Gateway, PGW) using the GPRS Tunneling Protocol (GTP). Conversely, packets received from the core network are detunneled and sent to the appropriate destination UE. In addition to the 4G NIC, this compound module includes a configurable number of wired interfaces to connect with routers of the core network or directly to the PgwStandard module, which serves as the IP module to perform forwarding, and the UserPlaneRelay that relays between the NIC and the GTP tunnels: its TrafficFlowFilter classifies incoming packets and determines the next hop, and its GtpUser handles GTP (de)tunneling. Furthermore, it features a configurable number of LteX2App modules to facilitate peer-to-peer communications with other eNodeBs within the same LTE network.

Parameters

Name

Type

Default value

Description

binderModule

string

“binder”

localPort

int

32

tunnelPeerPort

int

32

Properties

Name

Value

Description

display

i=block/tunnel

Gates

Name

Direction

Size

Description

socketOut

output

socketIn

input

lteStackOut

output

lteStackIn

input

Source code

//
// Implements a simplified version of the user plane of the GPRS Tunneling
// Protocol (GTP) used for handover procedures. In particular, it is employed to transfer
// data packets from the source e/gNodeB to the target e/gNodeB during a handover (i.e.,
// packets destined for a UE that is undergoing a handover).
// On one hand, this module encapsulates incoming IP datagrams from the local ~LteX2Manager
// into GTP packets and sends them over the X2 interface. On the other hand, it receives GTP
// packets from other e/gNodeBs and decapsulates the included IP datagrams, which are then
// forwarded to the local ~LteX2Manager.
//
simple GtpUserX2
{
    parameters:
        string binderModule = default("binder");

        int localPort = default(32);
        int tunnelPeerPort = default(32);

        @display("i=block/tunnel");

    gates:
        output socketOut;
        input socketIn;

        output lteStackOut;
        input lteStackIn;
}

File: src/simu5g/corenetwork/gtp/GtpUserX2.ned