21 #include <ns3/fatal-error.h>
24 #include <ns3/epc-helper.h>
86 .AddConstructor<EpcUeNas> ()
87 .AddTraceSource (
"StateTransition",
88 "fired upon every UE NAS state transition",
189 NS_FATAL_ERROR (
"the necessary NAS signaling to activate a bearer after the initial context has already been setup is not implemented");
212 uint8_t bid = (uint8_t) (
id & 0x000000FF);
226 NS_LOG_WARN (
this <<
" NAS OFF, discarding packet");
void SwitchToState(State s)
void ActivateEpsBearer(EpsBearer bearer, Ptr< EpcTft > tft)
Activate an EPS bearer.
Callback< void, Ptr< Packet > > m_forwardUpCallback
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
LteAsSapProvider * m_asSapProvider
virtual void StartCellSelection(uint16_t dlEarfcn)=0
Initiate Idle mode cell selection procedure.
NS_LOG_COMPONENT_DEFINE("EpcUeNas")
void Add(Ptr< EpcTft > tft, uint32_t id)
add a TFT to the Classifier
virtual void ForceCampedOnEnb(uint16_t cellId, uint16_t dlEarfcn)=0
Force the RRC entity to stay camped on a certain eNodeB.
#define NS_ASSERT(condition)
void DoNotifyConnectionSuccessful()
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
void StartCellSelection(uint16_t dlEarfcn)
Causes NAS to tell AS to find a suitable cell and camp to it.
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Ptr< NetDevice > m_device
uint32_t Classify(Ptr< Packet > p, EpcTft::Direction direction)
classify an IP packet
void DoNotifyConnectionReleased()
virtual void SendData(Ptr< Packet > packet, uint8_t bid)=0
Send a data packet.
#define NS_FATAL_ERROR(msg)
fatal error handling
This class contains the specification of EPS Bearers.
LteAsSapUser * GetAsSapUser()
void SetCsgId(uint32_t csgId)
void SetDevice(Ptr< NetDevice > dev)
Template for the implementation of the LteAsSapUser as a member of an owner class of type C to which ...
EpcTftClassifier m_tftClassifier
const char * g_ueNasStateName[EpcUeNas::NUM_STATES]
TracedCallback< State, State > m_stateTransitionCallback
uint32_t GetCsgId() const
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
void DoNotifyConnectionFailed()
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
bool Send(Ptr< Packet > p)
Enqueue an IP packet on the proper bearer for uplink transmission.
void Disconnect()
instruct the NAS to disconnect
#define NS_ASSERT_MSG(condition, message)
virtual ~EpcUeNas()
Destructor.
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
set the callback used to forward data packets up the stack
LteAsSapUser * m_asSapUser
std::string ToString(EpcUeNas::State s)
void DoActivateEpsBearer(EpsBearer bearer, Ptr< EpcTft > tft)
State
Definition of NAS states as per "LTE - From theory to practice", Section 3.2.3.2 "Connection Establis...
virtual void Disconnect()=0
Tell the RRC entity to release the connection.
void SetAsSapProvider(LteAsSapProvider *s)
Set the AS SAP provider to interact with the NAS entity.
static TypeId GetTypeId(void)
virtual void Connect(void)=0
Tell the RRC entity to enter Connected mode.
void Connect()
Causes NAS to tell AS to go to ACTIVE state.
a base class which provides memory management and object aggregation
void SetImsi(uint64_t imsi)
virtual void SetCsgWhiteList(uint32_t csgId)=0
Set the selected Closed Subscriber Group subscription list to be used for cell selection.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
void DoRecvData(Ptr< Packet > packet)
std::list< BearerToBeActivated > m_bearersToBeActivatedList
virtual void DoDispose(void)
This method is called by Object::Dispose or by the object's destructor, whichever comes first...