23 #include "ns3/callback.h"
24 #include "ns3/config.h"
25 #include "ns3/simple-channel.h"
26 #include "ns3/error-model.h"
65 TypeId (
"ns3::LteSimpleHelper")
67 .AddConstructor<LteSimpleHelper> ()
68 .AddAttribute (
"RlcEntity",
69 "Specify which type of RLC will be used. ",
128 m_enbRrc = CreateObject<LteTestRrc> ();
133 m_enbRlc = CreateObject<LteRlcUm> ();
137 m_enbRlc = CreateObject<LteRlcAm> ();
149 m_enbMac = CreateObject<LteTestMac> ();
175 m_ueRrc = CreateObject<LteTestRrc> ();
176 m_uePdcp = CreateObject<LtePdcp> ();
180 m_ueRlc = CreateObject<LteRlcUm> ();
184 m_ueRlc = CreateObject<LteRlcAm> ();
196 m_ueMac = CreateObject<LteTestMac> ();
260 uint16_t rnti, uint8_t lcid, uint32_t
packetSize)
264 uint16_t cellId = 222;
265 rlcStats->DlTxPdu (cellId, imsi, rnti, lcid,
packetSize);
280 uint16_t rnti, uint8_t lcid, uint32_t
packetSize, uint64_t delay)
284 uint16_t cellId = 555;
285 rlcStats->DlRxPdu (cellId, imsi, rnti, lcid,
packetSize, delay);
310 uint16_t rnti, uint8_t lcid, uint32_t
packetSize)
313 uint64_t imsi = 1111;
314 uint16_t cellId = 555;
315 rlcStats->UlTxPdu (cellId, imsi, rnti, lcid,
packetSize);
330 uint16_t rnti, uint8_t lcid, uint32_t
packetSize, uint64_t delay)
334 uint16_t cellId = 555;
335 rlcStats->UlRxPdu (cellId, imsi, rnti, lcid,
packetSize, delay);
Hold variables of type enum.
void SetLteRlcSapUser(LteRlcSapUser *s)
void SetRnti(uint16_t rnti)
void SetLteMacSapProvider(LteMacSapProvider *s)
LteMacSapUser * GetLteMacSapUser()
void SetLcId(uint8_t lcId)
LteRlcSapProvider * GetLteRlcSapProvider()
ObjectFactory m_ueDeviceFactory
UE device factory.
Ptr< NetDevice > InstallSingleEnbDevice(Ptr< Node > n)
Install single ENB device.
Ptr< LteTestRrc > m_ueRrc
UE RRC.
void EnableDlPdcpTraces(void)
Enable trace sinks for DL PDCP layer.
virtual ~LteSimpleHelper(void)
Ptr< LtePdcp > m_enbPdcp
ENB PDCP.
NetDeviceContainer InstallEnbDevice(NodeContainer c)
create a set of eNB devices
Ptr< NetDevice > InstallSingleUeDevice(Ptr< Node > n)
Install single UE device.
ObjectFactory m_enbDeviceFactory
ENB device factory.
Ptr< SimpleChannel > m_phyChannel
the physical channel
void EnableDlRlcTraces(void)
Enable trace sinks for DL RLC layer.
Ptr< LteTestRrc > m_enbRrc
ENB RRC.
void EnableLogComponents(void)
Enables logging for all components of the LENA architecture.
Ptr< LteTestMac > m_enbMac
ENB MAC.
Ptr< LteTestMac > m_ueMac
UE MAC.
Ptr< LteRlc > m_ueRlc
UE RLC.
NetDeviceContainer InstallUeDevice(NodeContainer c)
create a set of UE devices
static TypeId GetTypeId(void)
Get the type ID.
virtual void DoDispose(void)
Destructor implementation.
Ptr< LtePdcp > m_uePdcp
UE PDCP.
Ptr< LteRlc > m_enbRlc
ENB RLC.
void EnableUlRlcTraces(void)
Enable trace sinks for UL RLC layer.
void EnableRlcTraces(void)
Enable trace sinks for RLC layer.
enum ns3::LteSimpleHelper::LteRlcEntityType_t m_lteRlcEntityType
RLC entity type.
void EnableTraces(void)
Enables trace sinks for MAC, RLC and PDCP.
void EnablePdcpTraces(void)
Enable trace sinks for PDCP layer.
virtual void DoInitialize(void)
Initialize() implementation.
void EnableUlPdcpTraces(void)
Enable trace sinks for UL PDCP layer.
The LteSimpleNetDevice class implements the LTE simple net device.
static TypeId GetTypeId(void)
Get the type ID.
void SetLteMacSapUser(LteMacSapUser *s)
Set the MAC SAP user.
bool Receive(Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr)
the Receive function
void SetDevice(Ptr< NetDevice > device)
Set the device function.
LteMacSapProvider * GetLteMacSapProvider(void)
Get the MAC SAP provider.
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
A base class which provides memory management and object aggregation.
virtual void DoDispose(void)
Destructor implementation.
virtual void DoInitialize(void)
Initialize() implementation.
void Initialize(void)
Invoke DoInitialize on all Objects aggregated to this one.
void Dispose(void)
Dispose of this Object.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Ptr< const AttributeAccessor > MakeEnumAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void LteSimpleHelperDlTxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
DL transmit PDU callback.
Ptr< const AttributeChecker > MakeEnumChecker(int v, std::string n, Ts... args)
Make an EnumChecker pre-configured with a set of allowed values by name.
void LteSimpleHelperUlRxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
UL receive PDU callback.
LogLevel
Logging severity classes and levels.
@ LOG_LEVEL_ALL
Print everything.
@ LOG_PREFIX_FUNC
Prefix all trace prints with function.
@ LOG_PREFIX_TIME
Prefix all trace prints with simulation time.
@ LOG_PREFIX_NODE
Prefix all trace prints with simulation node.
void LteSimpleHelperDlRxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
DL receive PDU callback.
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.
void LteSimpleHelperUlTxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
UL transmit PDU callback.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
static const uint32_t packetSize