|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
22 #ifndef EPC_ENB_APPLICATION_H
23 #define EPC_ENB_APPLICATION_H
25 #include <ns3/address.h>
26 #include <ns3/socket.h>
27 #include <ns3/virtual-net-device.h>
28 #include <ns3/traced-callback.h>
29 #include <ns3/callback.h>
31 #include <ns3/object.h>
32 #include <ns3/lte-common.h>
33 #include <ns3/application.h>
34 #include <ns3/eps-bearer.h>
35 #include <ns3/epc-enb-s1-sap.h>
36 #include <ns3/epc-s1ap-sap.h>
211 void DoInitialContextSetupRequest (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list<EpcS1apSapEnb::ErabToBeSetupItem> erabToBeSetupList);
219 void DoPathSwitchRequestAcknowledge (uint64_t enbUeS1Id, uint64_t mmeUeS1Id, uint16_t cgi, std::list<EpcS1apSapEnb::ErabSwitchedInUplinkItem> erabToBeSwitchedInUplinkList);
void DoDispose(void)
Destructor implementation.
a unique identifier for an interface.
void DoUeContextRelease(uint16_t rnti)
UE Context Release function.
uint8_t m_bid
Bid, the EPS Bearer IDentifier.
virtual ~EpcEnbApplication(void)
Destructor.
This application is installed inside eNBs and provides the bridge functionality for user data plane p...
void DoPathSwitchRequestAcknowledge(uint64_t enbUeS1Id, uint64_t mmeUeS1Id, uint16_t cgi, std::list< EpcS1apSapEnb::ErabSwitchedInUplinkItem > erabToBeSwitchedInUplinkList)
Path Switch Request Acknowledge.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetS1apSapMme(EpcS1apSapMme *s)
Set the MME side of the S1-AP SAP.
void SetS1SapUser(EpcEnbS1SapUser *s)
Set the S1 SAP User.
Template for the implementation of the EpcEnbS1SapProvider as a member of an owner class of type C to...
void SendToLteSocket(Ptr< Packet > packet, uint16_t rnti, uint8_t bid)
Send a packet to the UE via the LTE radio interface of the eNB.
Ipv4 addresses are stored in host order in this class.
Ptr< Socket > m_lteSocket6
raw packet socket to send and receive the packets to and from the LTE radio interface
Ipv4Address m_sgwS1uAddress
address of the SGW which terminates all S1-U tunnels
Ptr< Socket > m_s1uSocket
UDP socket to send and receive GTP-U the packets to and from the S1-U interface.
EpcEnbApplication(Ptr< Socket > lteSocket, Ptr< Socket > lteSocket6, uint16_t cellId)
Constructor.
eNB side of the S1-AP Service Access Point (SAP), provides the eNB methods to be called when an S1-AP...
TracedCallback< Ptr< Packet > > m_rxS1uSocketPktTrace
Callback to trace RX (reception) data packets from S1-U Socket.
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
MME side of the S1-AP Service Access Point (SAP), provides the MME methods to be called when an S1-AP...
EpcS1apSapEnb * GetS1apSapEnb()
EpcEnbS1SapUser * m_s1SapUser
User for the S1 SAP.
void SendToS1uSocket(Ptr< Packet > packet, uint32_t teid)
Send a packet to the SGW via the S1-U interface.
std::map< uint64_t, uint16_t > m_imsiRntiMap
UE context info.
void DoInitialContextSetupRequest(uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list< EpcS1apSapEnb::ErabToBeSetupItem > erabToBeSetupList)
Initial Context Setup Request.
TracedCallback< Ptr< Packet > > m_rxLteSocketPktTrace
Callback to trace RX (reception) data packets from LTE Socket.
EpcEnbS1SapProvider * m_s1SapProvider
Provider for the S1 SAP.
static TypeId GetTypeId(void)
Get the type ID.
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
std::map< uint16_t, std::map< uint8_t, uint32_t > > m_rbidTeidMap
map of maps telling for each RNTI and BID the corresponding S1-U TEID
std::map< uint32_t, EpsFlowId_t > m_teidRbidMap
map telling for each S1-U TEID the corresponding RNTI,BID
void SetupS1Bearer(uint32_t teid, uint16_t rnti, uint8_t bid)
internal method used for the actual setup of the S1 Bearer
void DoReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)
This function accepts bearer id corresponding to a particular UE and schedules indication of bearer r...
PathSwitchRequestParameters structure.
uint16_t m_gtpuUdpPort
UDP port to be used for GTP.
void RecvFromLteSocket(Ptr< Socket > socket)
Method to be assigned to the recv callback of the LTE socket.
void RecvFromS1uSocket(Ptr< Socket > socket)
Method to be assigned to the recv callback of the S1-U socket.
friend bool operator==(const EpsFlowId_t &a, const EpsFlowId_t &b)
Comparison operator.
Template for the implementation of the EpcS1apSapEnb as a member of an owner class of type C to which...
void DoInitialUeMessage(uint64_t imsi, uint16_t rnti)
Initial UE message function.
friend bool operator<(const EpsFlowId_t &a, const EpsFlowId_t &b)
Less than operator.
EpcEnbS1SapProvider * GetS1SapProvider()
Forward calls to a chain of Callback.
Ipv4Address m_enbS1uAddress
address of the eNB for S1-U communications
void AddS1Interface(Ptr< Socket > s1uSocket, Ipv4Address enbAddress, Ipv4Address sgwAddress)
Add a S1-U interface to the eNB.
Ptr< Socket > m_lteSocket
raw packet socket to send and receive the packets to and from the LTE radio interface
The base class for all ns3 applications.
EpcS1apSapMme * m_s1apSapMme
MME side of the S1-AP SAP.
void DoPathSwitchRequest(EpcEnbS1SapProvider::PathSwitchRequestParameters params)
Path switch request function.
void(* RxTracedCallback)(Ptr< Packet > packet)
TracedCallback signature for data Packet reception event.
EpcS1apSapEnb * m_s1apSapEnb
ENB side of the S1-AP SAP.