21 #include <ns3/fatal-error.h>
24 #include <ns3/epc-helper.h>
85 .AddConstructor<EpcUeNas> ()
86 .AddTraceSource (
"StateTransition",
87 "fired upon every UE NAS state transition",
188 NS_FATAL_ERROR (
"the necessary NAS signaling to activate a bearer after the initial context has already been setup is not implemented");
211 uint8_t bid = (uint8_t) (
id & 0x000000FF);
225 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)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
LteAsSapProvider * m_asSapProvider
virtual void StartCellSelection(uint16_t dlEarfcn)=0
Initiate Idle mode cell selection procedure.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register the class in the ns-3 factory.
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)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
void DoNotifyConnectionSuccessful()
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
#define NS_FATAL_ERROR(msg)
fatal error handling
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
static const std::string g_ueNasStateName[EpcUeNas::NUM_STATES]
void DoNotifyConnectionReleased()
virtual void SendData(Ptr< Packet > packet, uint8_t bid)=0
Send a data packet.
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
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)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
virtual ~EpcUeNas()
Destructor.
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
set the callback used to forward data packets up the stack
LteAsSapUser * m_asSapUser
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...
static const std::string & ToString(EpcUeNas::State s)
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
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...