The NetworkServer is an application standing on top of a node equipped with links that connect it with the gateways. More...
#include "network-server.h"
Public Member Functions | |
NetworkServer () | |
Default constructor. | |
~NetworkServer () override | |
Destructor. | |
void | AddComponent (Ptr< NetworkControllerComponent > component) |
Add a NetworkControllerComponent to this NetworkServer application. | |
void | AddGateway (Ptr< Node > gateway, Ptr< NetDevice > netDevice) |
Add the gateway to the list of gateways connected to this network server. | |
void | AddNode (Ptr< Node > node) |
Inform the NetworkServer application that this node is connected to the network. | |
void | AddNodes (NodeContainer nodes) |
Inform the NetworkServer application that these nodes are connected to the network. | |
Ptr< NetworkStatus > | GetNetworkStatus () |
Get the NetworkStatus object of this NetworkServer application. | |
bool | Receive (Ptr< NetDevice > device, Ptr< const Packet > packet, uint16_t protocol, const Address &sender) |
Receive a packet from a gateway. | |
void | StartApplication () override |
Start the network server application. | |
void | StopApplication () override |
Stop the network server application. | |
Public Member Functions inherited from ns3::Application | |
Application () | |
~Application () override | |
virtual int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this Application object. | |
Ptr< Node > | GetNode () const |
void | SetNode (Ptr< Node > node) |
void | SetStartTime (Time start) |
Specify application start time. | |
void | SetStopTime (Time stop) |
Specify application stop time. | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::Application | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Attributes | |
Ptr< NetworkController > | m_controller |
Ptr to the NetworkController object. | |
TracedCallback< Ptr< const Packet > > | m_receivedPacket |
The ReceivedPacket trace source. | |
Ptr< NetworkScheduler > | m_scheduler |
Ptr to the NetworkScheduler object. | |
Ptr< NetworkStatus > | m_status |
Ptr to the NetworkStatus object. | |
Protected Attributes inherited from ns3::Application | |
Ptr< Node > | m_node |
The node that this application is installed on. | |
EventId | m_startEvent |
The event that will fire at m_startTime to start the application. | |
Time | m_startTime |
The simulation time that the application will start. | |
EventId | m_stopEvent |
The event that will fire at m_stopTime to end the application. | |
Time | m_stopTime |
The simulation time that the application will end. | |
Additional Inherited Members | |
Public Types inherited from ns3::Application | |
typedef void(* | DelayAddressCallback) (const Time &delay, const Address &from) |
Common callback signature for packet delay and address. | |
typedef void(* | StateTransitionCallback) (const std::string &oldState, const std::string &newState) |
Common signature used by callbacks to application's state transition trace source. | |
Protected Member Functions inherited from ns3::Application | |
void | DoDispose () override |
Destructor implementation. | |
void | DoInitialize () override |
Initialize() implementation. | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
The NetworkServer is an application standing on top of a node equipped with links that connect it with the gateways.
This version of the NetworkServer application attempts to closely mimic an actual network server, by providing as much functionality as possible.
Definition at line 42 of file network-server.h.
ns3::lorawan::NetworkServer::NetworkServer | ( | ) |
Default constructor.
Definition at line 49 of file network-server.cc.
References NS_LOG_FUNCTION_NOARGS.
|
override |
void ns3::lorawan::NetworkServer::AddComponent | ( | Ptr< NetworkControllerComponent > | component | ) |
Add a NetworkControllerComponent to this NetworkServer application.
component | A pointer to the NetworkControllerComponent object. |
Definition at line 170 of file network-server.cc.
References m_controller, and NS_LOG_FUNCTION.
Add the gateway to the list of gateways connected to this network server.
Each gateway is identified by its Address in the network connecting it to the network server.
gateway | A pointer to the gateway Node. |
netDevice | A pointer to the network server's NetDevice connected to the gateway. |
Definition at line 75 of file network-server.cc.
References ns3::Create(), ns3::DynamicCast(), m_status, NS_ASSERT, and NS_LOG_FUNCTION.
Inform the NetworkServer application that this node is connected to the network.
This method will create a DeviceStatus object for the new node (if it doesn't already exist).
node | The end device Node. |
Definition at line 119 of file network-server.cc.
References ns3::DynamicCast(), m_status, and NS_LOG_FUNCTION.
Referenced by AddNodes().
void ns3::lorawan::NetworkServer::AddNodes | ( | NodeContainer | nodes | ) |
Inform the NetworkServer application that these nodes are connected to the network.
This method will create a DeviceStatus object for each new node, and add it to the list.
nodes | The end device NodeContainer. |
Definition at line 106 of file network-server.cc.
References AddNode(), nodes, and NS_LOG_FUNCTION_NOARGS.
Ptr< NetworkStatus > ns3::lorawan::NetworkServer::GetNetworkStatus | ( | ) |
Get the NetworkStatus object of this NetworkServer application.
Definition at line 178 of file network-server.cc.
References m_status.
|
static |
Register this type.
Definition at line 34 of file network-server.cc.
References m_receivedPacket, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
bool ns3::lorawan::NetworkServer::Receive | ( | Ptr< NetDevice > | device, |
Ptr< const Packet > | packet, | ||
uint16_t | protocol, | ||
const Address & | sender ) |
Receive a packet from a gateway.
This function is meant to be provided to NetDevice objects as a ReceiveCallback.
device | a pointer to the net device which is calling this callback |
packet | the packet received |
protocol | the 16 bit protocol number associated with this packet. This protocol number is expected to be the same protocol number given to the Send method by the user on the sender side. |
sender | the address of the sender |
Definition at line 144 of file network-server.cc.
References m_controller, m_receivedPacket, m_scheduler, m_status, and NS_LOG_FUNCTION.
Referenced by ns3::lorawan::NetworkServerHelper::InstallPriv().
|
overridevirtual |
Start the network server application.
Reimplemented from ns3::Application.
Definition at line 63 of file network-server.cc.
References NS_LOG_FUNCTION_NOARGS.
|
overridevirtual |
Stop the network server application.
Reimplemented from ns3::Application.
Definition at line 69 of file network-server.cc.
References NS_LOG_FUNCTION_NOARGS.
|
protected |
Ptr to the NetworkController object.
Definition at line 123 of file network-server.h.
Referenced by AddComponent(), and Receive().
|
protected |
The ReceivedPacket
trace source.
Definition at line 126 of file network-server.h.
Referenced by GetTypeId(), and Receive().
|
protected |
Ptr to the NetworkScheduler object.
Definition at line 124 of file network-server.h.
Referenced by Receive().
|
protected |
Ptr to the NetworkStatus object.
Definition at line 122 of file network-server.h.
Referenced by AddGateway(), AddNode(), GetNetworkStatus(), and Receive().