5G-LENA nr-v3.3-161-gad18933f
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrNoBackhaulEpcHelper Class Reference

Create an EPC network with PointToPoint links between the core network nodes. More...

#include "nr-no-backhaul-epc-helper.h"

+ Inheritance diagram for ns3::NrNoBackhaulEpcHelper:
+ Collaboration diagram for ns3::NrNoBackhaulEpcHelper:

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
 
- Public Member Functions inherited from ns3::NrEpcHelper
 NrEpcHelper ()
 
 ~NrEpcHelper () override
 
void DoDispose () override
 

Static Public Member Functions

static TypeId GetTypeId ()
 
- Static Public Member Functions inherited from ns3::NrEpcHelper
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.
 

Detailed Description

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.

Attributes

  • S5LinkDataRate: The data rate to be used for the next S5 link to be created
    • Set with class: ns3::DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: construct write read
  • S5LinkDelay: The delay to be used for the next S5 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read
  • S5LinkMtu: The MTU of the next S5 link to be created
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 2000
    • Flags: construct write read
  • S11LinkDataRate: The data rate to be used for the next S11 link to be created
    • Set with class: ns3::DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: construct write read
  • S11LinkDelay: The delay to be used for the next S11 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read
  • S11LinkMtu: The MTU of the next S11 link to be created.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 2000
    • Flags: construct write read
  • X2LinkDataRate: The data rate to be used for the next X2 link to be created
    • Set with class: ns3::DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: construct write read
  • X2LinkDelay: The delay to be used for the next X2 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read
  • X2LinkMtu: The MTU of the next X2 link to be created. Note that, because of some big X2 messages, you need a big MTU.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 3000
    • Flags: construct write read
  • X2LinkPcapPrefix: Prefix for Pcap generated by X2 link
    • Set with class: ns3::StringValue
    • Underlying type:
    • Initial value: x2
    • Flags: construct write read
  • X2LinkEnablePcap: Enable Pcap for X2 link
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read

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.

Constructor & Destructor Documentation

◆ NrNoBackhaulEpcHelper()

ns3::NrNoBackhaulEpcHelper::NrNoBackhaulEpcHelper ( )

Constructor

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

References AssignUeIpv4Address(), AssignUeIpv6Address(), and ns3::NrEpcPgwApplication::RecvFromTunDevice().

+ Here is the call graph for this function:

◆ ~NrNoBackhaulEpcHelper()

ns3::NrNoBackhaulEpcHelper::~NrNoBackhaulEpcHelper ( )
override

Destructor

Definition at line 216 of file nr-no-backhaul-epc-helper.cc.

Member Function Documentation

◆ ActivateEpsBearer()

uint8_t ns3::NrNoBackhaulEpcHelper::ActivateEpsBearer ( Ptr< NetDevice >  ueNrDevice,
uint64_t  imsi,
Ptr< NrEpcTft tft,
NrEpsBearer  bearer 
)
overridevirtual

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

Implements ns3::NrEpcHelper.

Definition at line 448 of file nr-no-backhaul-epc-helper.cc.

References DoActivateEpsBearerForUe().

+ Here is the call graph for this function:

◆ AddGnb()

void ns3::NrNoBackhaulEpcHelper::AddGnb ( Ptr< Node >  gnbNode,
Ptr< NetDevice >  nrGnbNetDevice,
std::vector< uint16_t >  cellIds 
)
overridevirtual

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

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().

+ Here is the caller graph for this function:

◆ AddS1Interface()

void ns3::NrNoBackhaulEpcHelper::AddS1Interface ( Ptr< Node >  gnb,
Ipv4Address  gnbAddress,
Ipv4Address  sgwAddress,
std::vector< uint16_t >  cellIds 
)
overridevirtual

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

Implements ns3::NrEpcHelper.

Definition at line 585 of file nr-no-backhaul-epc-helper.cc.

Referenced by ns3::NrPointToPointEpcHelperBase::AddGnb(), and ns3::NrPointToPointEpcHelper::AddGnb().

+ Here is the caller graph for this function:

◆ AddUe()

void ns3::NrNoBackhaulEpcHelper::AddUe ( Ptr< NetDevice >  ueNrDevice,
uint64_t  imsi 
)
overridevirtual

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

Implements ns3::NrEpcHelper.

Definition at line 439 of file nr-no-backhaul-epc-helper.cc.

◆ AddX2Interface()

void ns3::NrNoBackhaulEpcHelper::AddX2Interface ( Ptr< Node >  gnbNode1,
Ptr< Node >  gnbNode2 
)
overridevirtual

Add an X2 interface between two gNB

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

Implements ns3::NrEpcHelper.

Definition at line 365 of file nr-no-backhaul-epc-helper.cc.

References DoAddX2Interface().

+ Here is the call graph for this function:

◆ AssignStreams()

int64_t ns3::NrNoBackhaulEpcHelper::AssignStreams ( int64_t  stream)
overridevirtual

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

Implements ns3::NrEpcHelper.

Definition at line 613 of file nr-no-backhaul-epc-helper.cc.

◆ AssignUeIpv4Address()

Ipv4InterfaceContainer ns3::NrNoBackhaulEpcHelper::AssignUeIpv4Address ( NetDeviceContainer  ueDevices)
overridevirtual

Assign IPv4 addresses to UE devices

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

Implements ns3::NrEpcHelper.

Definition at line 522 of file nr-no-backhaul-epc-helper.cc.

References GetUeDefaultGatewayAddress().

Referenced by NrNoBackhaulEpcHelper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AssignUeIpv6Address()

Ipv6InterfaceContainer ns3::NrNoBackhaulEpcHelper::AssignUeIpv6Address ( NetDeviceContainer  ueDevices)
overridevirtual

Assign IPv6 addresses to UE devices

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

Implements ns3::NrEpcHelper.

Definition at line 541 of file nr-no-backhaul-epc-helper.cc.

References GetUeDefaultGatewayAddress6().

Referenced by NrNoBackhaulEpcHelper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoActivateEpsBearerForUe()

void ns3::NrNoBackhaulEpcHelper::DoActivateEpsBearerForUe ( const Ptr< NetDevice > &  ueDevice,
const Ptr< NrEpcTft > &  tft,
const NrEpsBearer bearer 
) const
protectedvirtual

DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE.

Parameters
ueDeviceNR device for the UE
tftTFT
bearerBearer

Definition at line 491 of file nr-no-backhaul-epc-helper.cc.

References ns3::NrEpcUeNas::ActivateEpsBearer().

Referenced by ActivateEpsBearer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoAddX2Interface()

void ns3::NrNoBackhaulEpcHelper::DoAddX2Interface ( const Ptr< NrEpcX2 > &  gnb1X2,
const Ptr< NetDevice > &  gnb1NrDev,
const Ipv4Address &  gnb1X2Address,
const Ptr< NrEpcX2 > &  gnb2X2,
const Ptr< NetDevice > &  gnb2NrDev,
const Ipv4Address &  gnb2X2Address 
) const
protectedvirtual

DoAddX2Interface: Call AddX2Interface on top of the Gnb device pointers.

Parameters
gnb1X2EPCX2 of gNB1
gnb1NrDevNR device of gNB1
gnb1X2AddressAddress for gNB1
gnb2X2EPCX2 of gNB2
gnb2NrDevNR device of gNB2
gnb2X2AddressAddress for gNB2

Definition at line 407 of file nr-no-backhaul-epc-helper.cc.

Referenced by AddX2Interface().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::NrNoBackhaulEpcHelper::DoDispose ( )
override

Definition at line 290 of file nr-no-backhaul-epc-helper.cc.

◆ GetPgwNode()

Ptr< Node > ns3::NrNoBackhaulEpcHelper::GetPgwNode ( ) const
overridevirtual

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.

Implements ns3::NrEpcHelper.

Definition at line 516 of file nr-no-backhaul-epc-helper.cc.

Referenced by SetupRemoteHost(), and SetupRemoteHost6().

+ Here is the caller graph for this function:

◆ GetSgwNode()

Ptr< Node > ns3::NrNoBackhaulEpcHelper::GetSgwNode ( ) const
overridevirtual

Get the SGW node

Returns
a pointer to the SGW

Implements ns3::NrEpcHelper.

Definition at line 579 of file nr-no-backhaul-epc-helper.cc.

Referenced by ns3::NrPointToPointEpcHelperBase::AddGnb(), and ns3::NrPointToPointEpcHelper::AddGnb().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::NrNoBackhaulEpcHelper::GetTypeId ( )
static

Register this type.

Returns
The object TypeId.

Definition at line 222 of file nr-no-backhaul-epc-helper.cc.

◆ GetUeDefaultGatewayAddress()

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

Implements ns3::NrEpcHelper.

Definition at line 565 of file nr-no-backhaul-epc-helper.cc.

Referenced by AssignUeIpv4Address().

+ Here is the caller graph for this function:

◆ GetUeDefaultGatewayAddress6()

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

Implements ns3::NrEpcHelper.

Definition at line 572 of file nr-no-backhaul-epc-helper.cc.

Referenced by AssignUeIpv6Address().

+ Here is the caller graph for this function:

◆ SetupRemoteHost()

std::pair< Ptr< Node >, Ipv4Address > ns3::NrNoBackhaulEpcHelper::SetupRemoteHost ( std::optional< std::string >  dataRate,
std::optional< uint16_t >  mtu,
std::optional< Time >  delay 
)
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

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

Implements ns3::NrEpcHelper.

Definition at line 627 of file nr-no-backhaul-epc-helper.cc.

References GetPgwNode().

+ Here is the call graph for this function:

◆ SetupRemoteHost6()

std::pair< Ptr< Node >, Ipv6Address > ns3::NrNoBackhaulEpcHelper::SetupRemoteHost6 ( std::optional< std::string >  dataRate,
std::optional< uint16_t >  mtu,
std::optional< Time >  delay 
)
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:

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

Implements ns3::NrEpcHelper.

Definition at line 668 of file nr-no-backhaul-epc-helper.cc.

References GetPgwNode().

+ Here is the call graph for this function:

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