ns-3
|
Helper class to handle the creation of the EPC entities and protocols. More...
#include <epc-helper.h>
Public Member Functions | |
EpcHelper () | |
virtual | ~EpcHelper () |
virtual void | DoDispose () |
void | AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice) |
void | ActivateEpsBearer (Ptr< NetDevice > ueLteDevice, Ptr< NetDevice > enbLteDevice, Ptr< EpcTft > tft, uint16_t rnti, uint8_t lcid) |
Ptr< Node > | GetPgwNode () |
Ipv4InterfaceContainer | AssignUeIpv4Address (NetDeviceContainer ueDevices) |
Ipv4Address | GetUeDefaultGatewayAddress () |
![]() | |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Dispose (void) |
void | AggregateObject (Ptr< Object > other) |
AggregateIterator | GetAggregateIterator (void) const |
void | Start (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
uint32_t | GetReferenceCount (void) const |
![]() | |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::EpcHelper. |
Additional Inherited Members | |
![]() | |
virtual void | NotifyNewAggregate (void) |
virtual void | DoStart (void) |
Object (const Object &o) |
Helper class to handle the creation of the EPC entities and protocols.
This Helper will create an EPC network topology comprising of a single node that implements both the SGW and PGW functionality, and is connected to all the eNBs in the simulation by means of the S1-U interface.
ns3::EpcHelper::EpcHelper | ( | ) |
Constructor
References ns3::NetDeviceContainer::Add(), ns3::Node::AddApplication(), ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), ns3::Ipv4AddressHelper::Assign(), ns3::Socket::Bind(), ns3::Socket::CreateSocket(), ns3::Ipv4Address::GetAny(), ns3::InternetStackHelper::Install(), ns3::TypeId::LookupByName(), ns3::MakeCallback(), NS_ASSERT, NS_LOG_FUNCTION, ns3::EpcSgwPgwApplication::RecvFromTunDevice(), ns3::VirtualNetDevice::SetAddress(), ns3::ObjectBase::SetAttribute(), and ns3::Ipv4AddressHelper::SetBase().
|
virtual |
Destructor
References NS_LOG_FUNCTION.
void ns3::EpcHelper::ActivateEpsBearer | ( | Ptr< NetDevice > | ueLteDevice, |
Ptr< NetDevice > | enbLteDevice, | ||
Ptr< EpcTft > | tft, | ||
uint16_t | rnti, | ||
uint8_t | lcid | ||
) |
Activate an EPS bearer, setting up the corresponding S1-U tunnel.
ueLteDevice | the Ipv4-enabled device of the UE, normally connected via the LTE radio interface |
enbLteDevice | the non-Ipv4-enabled device of the eNB |
tft | the Traffic Flow Template of the new bearer |
rnti | the Radio Network Temporary Identifier that identifies the UE |
lcid | the Logical Channel IDentifier of the corresponding RadioBearer |
References ns3::EpcSgwPgwApplication::ActivateS1Bearer(), ns3::Ipv4::GetAddress(), ns3::Node::GetApplication(), ns3::Ipv4::GetNAddresses(), ns3::Node::GetNApplications(), ns3::Ipv4::GetNInterfaces(), ns3::NetDevice::GetNode(), ns3::Object::GetObject(), NS_ASSERT, and NS_LOG_LOGIC.
Referenced by ns3::LteHelper::ActivateEpsBearer().
Add an eNB to the EPC
enbNode | the previosuly created eNB node which is to be added to the EPC |
lteEnbNetDevice | the LteEnbNetDevice of the eNB node |
References ns3::NodeContainer::Add(), ns3::Node::AddApplication(), ns3::Ipv4AddressHelper::Assign(), ns3::Socket::Bind(), ns3::Socket::Connect(), ns3::Socket::CreateSocket(), ns3::NetDeviceContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::Node::GetApplication(), ns3::Mac48Address::GetBroadcast(), ns3::NetDevice::GetIfIndex(), ns3::Node::GetNApplications(), ns3::Ipv4::GetNInterfaces(), ns3::NetDevice::GetNode(), ns3::Object::GetObject(), ns3::PointToPointHelper::Install(), ns3::InternetStackHelper::Install(), ns3::TypeId::LookupByName(), ns3::Ipv4AddressHelper::NewNetwork(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::PointToPointHelper::SetChannelAttribute(), and ns3::PointToPointHelper::SetDeviceAttribute().
Ipv4InterfaceContainer ns3::EpcHelper::AssignUeIpv4Address | ( | NetDeviceContainer | ueDevices | ) |
Assign IPv4 addresses to UE devices
ueDevices | the set of UE devices |
References ns3::Ipv4AddressHelper::Assign().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
References ns3::Object::Dispose(), ns3::MakeNullCallback(), and ns3::VirtualNetDevice::SetSendCallback().
|
static |
This method returns the TypeId associated to ns3::EpcHelper.
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::Object.
References ns3::Seconds(), and ns3::TypeId::SetParent().
Ipv4Address ns3::EpcHelper::GetUeDefaultGatewayAddress | ( | ) |
References ns3::Object::GetObject().