5G-LENA nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrEpcHelper Class Referenceabstract

Base helper class to handle the creation of the EPC entities. More...

#include "nr-epc-helper.h"

+ Inheritance diagram for ns3::NrEpcHelper:
+ Collaboration diagram for ns3::NrEpcHelper:

Public Member Functions

 NrEpcHelper ()
 
 ~NrEpcHelper () override
 
virtual uint8_t ActivateEpsBearer (Ptr< NetDevice > ueNrDevice, uint64_t imsi, Ptr< NrEpcTft > tft, NrEpsBearer bearer)=0
 
virtual void AddGnb (Ptr< Node > gnbNode, Ptr< NetDevice > nrGnbNetDevice, std::vector< uint16_t > cellIds)=0
 
virtual void AddS1Interface (Ptr< Node > gnb, Ipv4Address gnbAddress, Ipv4Address sgwAddress, std::vector< uint16_t > cellIds)=0
 
virtual void AddUe (Ptr< NetDevice > ueNrDevice, uint64_t imsi)=0
 
virtual void AddX2Interface (Ptr< Node > gnbNode1, Ptr< Node > gnbNode2)=0
 
virtual int64_t AssignStreams (int64_t stream)=0
 
virtual Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices)=0
 
virtual Ipv6InterfaceContainer AssignUeIpv6Address (NetDeviceContainer ueDevices)=0
 
void DoDispose () override
 
virtual Ptr< Node > GetPgwNode () const =0
 
virtual Ptr< Node > GetSgwNode () const =0
 
virtual Ipv4Address GetUeDefaultGatewayAddress ()=0
 
virtual Ipv6Address GetUeDefaultGatewayAddress6 ()=0
 
virtual std::pair< Ptr< Node >, Ipv4Address > SetupRemoteHost (std::optional< std::string > dataRate, std::optional< uint16_t > mtu, std::optional< Time > delay)=0
 
virtual std::pair< Ptr< Node >, Ipv6Address > SetupRemoteHost6 (std::optional< std::string > dataRate, std::optional< uint16_t > mtu, std::optional< Time > delay)=0
 

Static Public Member Functions

static TypeId GetTypeId ()
 

Detailed Description

Base helper class to handle the creation of the EPC entities.

This class provides the API for the implementation of helpers that allow to create EPC entities and the nodes and interfaces that host and connect them.

Introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 56 bytes (on a 64-bit architecture).

Definition at line 40 of file nr-epc-helper.h.

Constructor & Destructor Documentation

◆ NrEpcHelper()

ns3::NrEpcHelper::NrEpcHelper ( )

Constructor

Definition at line 24 of file nr-epc-helper.cc.

◆ ~NrEpcHelper()

ns3::NrEpcHelper::~NrEpcHelper ( )
override

Destructor

Definition at line 29 of file nr-epc-helper.cc.

Member Function Documentation

◆ ActivateEpsBearer()

virtual uint8_t ns3::NrEpcHelper::ActivateEpsBearer ( Ptr< NetDevice >  ueNrDevice,
uint64_t  imsi,
Ptr< NrEpcTft tft,
NrEpsBearer  bearer 
)
pure virtual

Activate an EPS bearer, setting up the corresponding S1-U tunnel.

Parameters
ueNrDevicethe Ipv4-enabled device of the UE, normally connected via the NR radio interface
imsithe unique identifier of the UE
tftthe Traffic Flow Template of the new bearer
bearerstruct describing the characteristics of the EPS bearer to be activated
Returns
bearer ID

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AddGnb()

virtual void ns3::NrEpcHelper::AddGnb ( Ptr< Node >  gnbNode,
Ptr< NetDevice >  nrGnbNetDevice,
std::vector< uint16_t >  cellIds 
)
pure virtual

Add an gNB to the EPC

Parameters
gnbNodethe previously created gNB node which is to be added to the EPC
nrGnbNetDevicethe NrGnbNetDevice of the gNB node
cellIdsIDs of cells served by this gNB

Implemented in ns3::NrNoBackhaulEpcHelper, ns3::NrPointToPointEpcHelperBase, and ns3::NrPointToPointEpcHelper.

◆ AddS1Interface()

virtual void ns3::NrEpcHelper::AddS1Interface ( Ptr< Node >  gnb,
Ipv4Address  gnbAddress,
Ipv4Address  sgwAddress,
std::vector< uint16_t >  cellIds 
)
pure virtual

Add an S1 interface between an gNB and a SGW

Parameters
gnbgNB peer of the S1 interface
gnbAddressgNB IPv4 address of the S1 interface
sgwAddressSGW IPv4 address of the S1 interface
cellIdscellIds of the gNB

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AddUe()

virtual void ns3::NrEpcHelper::AddUe ( Ptr< NetDevice >  ueNrDevice,
uint64_t  imsi 
)
pure virtual

Notify the EPC of the existence of a new UE which might attach at a later time

Parameters
ueNrDevicethe UE device to be attached
imsithe unique identifier of the UE

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AddX2Interface()

virtual void ns3::NrEpcHelper::AddX2Interface ( Ptr< Node >  gnbNode1,
Ptr< Node >  gnbNode2 
)
pure virtual

Add an X2 interface between two gNB

Parameters
gnbNode1one gNB peer of the X2 interface
gnbNode2the other gNB peer of the X2 interface

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AssignStreams()

virtual int64_t ns3::NrEpcHelper::AssignStreams ( int64_t  stream)
pure virtual

Assign a fixed random variable stream number to the random variables used.

Parameters
streamfirst stream index to use
Returns
the number of stream indices (possibly zero) that have been assigned

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AssignUeIpv4Address()

virtual Ipv4InterfaceContainer ns3::NrEpcHelper::AssignUeIpv4Address ( NetDeviceContainer  ueDevices)
pure virtual

Assign IPv4 addresses to UE devices

Parameters
ueDevicesthe set of UE devices
Returns
the interface container,
See also
Ipv4AddressHelper::Assign() which has similar semantics

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ AssignUeIpv6Address()

virtual Ipv6InterfaceContainer ns3::NrEpcHelper::AssignUeIpv6Address ( NetDeviceContainer  ueDevices)
pure virtual

Assign IPv6 addresses to UE devices

Parameters
ueDevicesthe set of UE devices
Returns
the interface container,
See also
Ipv6AddressHelper::Assign() which has similar semantics

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ DoDispose()

void ns3::NrEpcHelper::DoDispose ( )
override

Definition at line 42 of file nr-epc-helper.cc.

◆ GetPgwNode()

virtual Ptr< Node > ns3::NrEpcHelper::GetPgwNode ( ) const
pure virtual

Get the PGW node

Returns
a pointer to the PGW node The primary use intended for this method is to allow the user to configure the SGi interface of the PGW, i.e., to connect the PGW to the internet.

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ GetSgwNode()

virtual Ptr< Node > ns3::NrEpcHelper::GetSgwNode ( ) const
pure virtual

Get the SGW node

Returns
a pointer to the SGW

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ GetTypeId()

TypeId ns3::NrEpcHelper::GetTypeId ( )
static

Register this type.

Returns
The object TypeId.

Definition at line 35 of file nr-epc-helper.cc.

◆ GetUeDefaultGatewayAddress()

virtual Ipv4Address ns3::NrEpcHelper::GetUeDefaultGatewayAddress ( )
pure virtual
Returns
the IPv4 address of the Default Gateway to be used by UEs to reach the internet

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ GetUeDefaultGatewayAddress6()

virtual Ipv6Address ns3::NrEpcHelper::GetUeDefaultGatewayAddress6 ( )
pure virtual
Returns
the IPv6 address of the Default Gateway to be used by UEs to reach the internet

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ SetupRemoteHost()

virtual std::pair< Ptr< Node >, Ipv4Address > ns3::NrEpcHelper::SetupRemoteHost ( std::optional< std::string >  dataRate,
std::optional< uint16_t >  mtu,
std::optional< Time >  delay 
)
pure virtual

Setup a P2P link connecting the PGW to a remote host, and create a route from the remote host to the UEs using IPv4 networks. Addresses are hardcoded for simplicity.

RemoteHost –P2P– PGW --— SGW – gNB – UEs 1.0.0.2 1.0.0.1 7.0.0.1 7.0.0.0/8

Parameters
dataRateValueLink speed connecting the PGW and the remote host
mtuMTU of link connecting the PGW and the remote host
delayOne-way propagation delay of link connecting the PGW and the remote host
Returns
a pair containing a node pointer to the remote host and its IPv4 address

Implemented in ns3::NrNoBackhaulEpcHelper.

◆ SetupRemoteHost6()

virtual std::pair< Ptr< Node >, Ipv6Address > ns3::NrEpcHelper::SetupRemoteHost6 ( std::optional< std::string >  dataRate,
std::optional< uint16_t >  mtu,
std::optional< Time >  delay 
)
pure virtual

Setup a P2P link connecting the PGW to a remote host, and create a route from the remote host to the UEs using IPv6 networks. Addresses are hardcoded for simplicity.

RemoteHost ------------—P2P--------— PGW -------------------— SGW – gNB – UEs 6001:db80:0000:0000:0200:00ff:fe00:0007 6001:db80:0000:0000:0200:00ff:fe00:0006 7777:f00d:0000:0000:0000:0000:0000:0001 7777:f00d:

Parameters
dataRateValueLink speed connecting the PGW and the remote host
mtuMTU of link connecting the PGW and the remote host
delayOne-way propagation delay of link connecting the PGW and the remote host
Returns
a pair containing a node pointer to the remote host and its IPv6 address

Implemented in ns3::NrNoBackhaulEpcHelper.


The documentation for this class was generated from the following files: