![]() |
5G-LENA nr-v3.3-161-gad18933f
The 5G/NR module for the ns-3 simulator
|
Create an EPC network with PointToPoint links between the core network nodes. More...
#include "nr-no-backhaul-epc-helper.h"
Public Member Functions | |
NrNoBackhaulEpcHelper () | |
~NrNoBackhaulEpcHelper () override | |
uint8_t | ActivateEpsBearer (Ptr< NetDevice > ueNrDevice, uint64_t imsi, Ptr< NrEpcTft > tft, NrEpsBearer bearer) override |
void | AddGnb (Ptr< Node > gnbNode, Ptr< NetDevice > nrGnbNetDevice, std::vector< uint16_t > cellIds) override |
void | AddS1Interface (Ptr< Node > gnb, Ipv4Address gnbAddress, Ipv4Address sgwAddress, std::vector< uint16_t > cellIds) override |
void | AddUe (Ptr< NetDevice > ueNrDevice, uint64_t imsi) override |
void | AddX2Interface (Ptr< Node > gnbNode1, Ptr< Node > gnbNode2) override |
int64_t | AssignStreams (int64_t stream) override |
Ipv4InterfaceContainer | AssignUeIpv4Address (NetDeviceContainer ueDevices) override |
Ipv6InterfaceContainer | AssignUeIpv6Address (NetDeviceContainer ueDevices) override |
void | DoDispose () override |
Ptr< Node > | GetPgwNode () const override |
Ptr< Node > | GetSgwNode () const override |
Ipv4Address | GetUeDefaultGatewayAddress () override |
Ipv6Address | GetUeDefaultGatewayAddress6 () override |
std::pair< Ptr< Node >, Ipv4Address > | SetupRemoteHost (std::optional< std::string > dataRate, std::optional< uint16_t > mtu, std::optional< Time > delay) override |
std::pair< Ptr< Node >, Ipv6Address > | SetupRemoteHost6 (std::optional< std::string > dataRate, std::optional< uint16_t > mtu, std::optional< Time > delay) override |
![]() | |
NrEpcHelper () | |
~NrEpcHelper () override | |
void | DoDispose () override |
Static Public Member Functions | |
static TypeId | GetTypeId () |
![]() | |
static TypeId | GetTypeId () |
Protected Member Functions | |
virtual void | DoActivateEpsBearerForUe (const Ptr< NetDevice > &ueDevice, const Ptr< NrEpcTft > &tft, const NrEpsBearer &bearer) const |
DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE. | |
virtual void | DoAddX2Interface (const Ptr< NrEpcX2 > &gnb1X2, const Ptr< NetDevice > &gnb1NrDev, const Ipv4Address &gnb1X2Address, const Ptr< NrEpcX2 > &gnb2X2, const Ptr< NetDevice > &gnb2NrDev, const Ipv4Address &gnb2X2Address) const |
DoAddX2Interface: Call AddX2Interface on top of the Gnb device pointers. | |
Create an EPC network with PointToPoint links between the core network nodes.
This Helper will create an EPC network topology comprising of three nodes: SGW, PGW and MME. The X2-U, X2-C, S5 and S11 interfaces are realized over PointToPoint links.
The S1 interface is not created. So, no backhaul network is built. You have to build your own backhaul network in the simulation program. Or you can use NrPointToPointEpcHelper or CsmaNrEpcHelper (instead of this NrNoBackhaulEpcHelper) to use reference backhaul networks.
Introspection did not find any typical Config paths.
No TraceSources are defined for this type.
Size of this type is 432 bytes (on a 64-bit architecture).
Definition at line 33 of file nr-no-backhaul-epc-helper.h.
ns3::NrNoBackhaulEpcHelper::NrNoBackhaulEpcHelper | ( | ) |
Constructor
Definition at line 35 of file nr-no-backhaul-epc-helper.cc.
References AssignUeIpv4Address(), AssignUeIpv6Address(), and ns3::NrEpcPgwApplication::RecvFromTunDevice().
|
override |
Destructor
Definition at line 216 of file nr-no-backhaul-epc-helper.cc.
|
overridevirtual |
Activate an EPS bearer, setting up the corresponding S1-U tunnel.
ueNrDevice | the Ipv4-enabled device of the UE, normally connected via the NR radio interface |
imsi | the unique identifier of the UE |
tft | the Traffic Flow Template of the new bearer |
bearer | struct describing the characteristics of the EPS bearer to be activated |
Implements ns3::NrEpcHelper.
Definition at line 448 of file nr-no-backhaul-epc-helper.cc.
References DoActivateEpsBearerForUe().
|
overridevirtual |
Add an gNB to the EPC
gnbNode | the previously created gNB node which is to be added to the EPC |
nrGnbNetDevice | the NrGnbNetDevice of the gNB node |
cellIds | IDs of cells served by this gNB |
Implements ns3::NrEpcHelper.
Reimplemented in ns3::NrPointToPointEpcHelperBase, and ns3::NrPointToPointEpcHelper.
Definition at line 305 of file nr-no-backhaul-epc-helper.cc.
Referenced by ns3::NrPointToPointEpcHelperBase::AddGnb(), and ns3::NrPointToPointEpcHelper::AddGnb().
|
overridevirtual |
Add an S1 interface between an gNB and a SGW
gnb | gNB peer of the S1 interface |
gnbAddress | gNB IPv4 address of the S1 interface |
sgwAddress | SGW IPv4 address of the S1 interface |
cellIds | cellIds of the gNB |
Implements ns3::NrEpcHelper.
Definition at line 585 of file nr-no-backhaul-epc-helper.cc.
Referenced by ns3::NrPointToPointEpcHelperBase::AddGnb(), and ns3::NrPointToPointEpcHelper::AddGnb().
|
overridevirtual |
Notify the EPC of the existence of a new UE which might attach at a later time
ueNrDevice | the UE device to be attached |
imsi | the unique identifier of the UE |
Implements ns3::NrEpcHelper.
Definition at line 439 of file nr-no-backhaul-epc-helper.cc.
|
overridevirtual |
Add an X2 interface between two gNB
gnbNode1 | one gNB peer of the X2 interface |
gnbNode2 | the other gNB peer of the X2 interface |
Implements ns3::NrEpcHelper.
Definition at line 365 of file nr-no-backhaul-epc-helper.cc.
References DoAddX2Interface().
|
overridevirtual |
Assign a fixed random variable stream number to the random variables used.
stream | first stream index to use |
Implements ns3::NrEpcHelper.
Definition at line 613 of file nr-no-backhaul-epc-helper.cc.
|
overridevirtual |
Assign IPv4 addresses to UE devices
ueDevices | the set of UE devices |
Implements ns3::NrEpcHelper.
Definition at line 522 of file nr-no-backhaul-epc-helper.cc.
References GetUeDefaultGatewayAddress().
Referenced by NrNoBackhaulEpcHelper().
|
overridevirtual |
Assign IPv6 addresses to UE devices
ueDevices | the set of UE devices |
Implements ns3::NrEpcHelper.
Definition at line 541 of file nr-no-backhaul-epc-helper.cc.
References GetUeDefaultGatewayAddress6().
Referenced by NrNoBackhaulEpcHelper().
|
protectedvirtual |
DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE.
ueDevice | NR device for the UE |
tft | TFT |
bearer | Bearer |
Definition at line 491 of file nr-no-backhaul-epc-helper.cc.
References ns3::NrEpcUeNas::ActivateEpsBearer().
Referenced by ActivateEpsBearer().
|
protectedvirtual |
DoAddX2Interface: Call AddX2Interface on top of the Gnb device pointers.
gnb1X2 | EPCX2 of gNB1 |
gnb1NrDev | NR device of gNB1 |
gnb1X2Address | Address for gNB1 |
gnb2X2 | EPCX2 of gNB2 |
gnb2NrDev | NR device of gNB2 |
gnb2X2Address | Address for gNB2 |
Definition at line 407 of file nr-no-backhaul-epc-helper.cc.
Referenced by AddX2Interface().
|
override |
Definition at line 290 of file nr-no-backhaul-epc-helper.cc.
|
overridevirtual |
Get the PGW node
Implements ns3::NrEpcHelper.
Definition at line 516 of file nr-no-backhaul-epc-helper.cc.
Referenced by SetupRemoteHost(), and SetupRemoteHost6().
|
overridevirtual |
Get the SGW node
Implements ns3::NrEpcHelper.
Definition at line 579 of file nr-no-backhaul-epc-helper.cc.
Referenced by ns3::NrPointToPointEpcHelperBase::AddGnb(), and ns3::NrPointToPointEpcHelper::AddGnb().
|
static |
Register this type.
Definition at line 222 of file nr-no-backhaul-epc-helper.cc.
|
overridevirtual |
Implements ns3::NrEpcHelper.
Definition at line 565 of file nr-no-backhaul-epc-helper.cc.
Referenced by AssignUeIpv4Address().
|
overridevirtual |
Implements ns3::NrEpcHelper.
Definition at line 572 of file nr-no-backhaul-epc-helper.cc.
Referenced by AssignUeIpv6Address().
|
overridevirtual |
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
dataRateValue | Link speed connecting the PGW and the remote host |
mtu | MTU of link connecting the PGW and the remote host |
delay | One-way propagation delay of link connecting the PGW and the remote host |
Implements ns3::NrEpcHelper.
Definition at line 627 of file nr-no-backhaul-epc-helper.cc.
References GetPgwNode().
|
overridevirtual |
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:
dataRateValue | Link speed connecting the PGW and the remote host |
mtu | MTU of link connecting the PGW and the remote host |
delay | One-way propagation delay of link connecting the PGW and the remote host |
Implements ns3::NrEpcHelper.
Definition at line 668 of file nr-no-backhaul-epc-helper.cc.
References GetPgwNode().