This class implements a testing loopback MAC layer. More...
#include "lte-test-entities.h"
Public Types | |
enum | RlcHeaderType_t { UM_RLC_HEADER = 0 , AM_RLC_HEADER = 1 } |
RCL Header Type enumeration. More... | |
enum | TxOpportunityMode_t { MANUAL_MODE = 0 , AUTOMATIC_MODE = 1 , RANDOM_MODE = 2 } |
Transmit opportunity mode enumeration. More... | |
Public Member Functions | |
LteTestMac () | |
~LteTestMac () override | |
void | DoDispose () override |
Destructor implementation. | |
std::string | GetDataReceived () |
Get data received function. | |
LteMacSapProvider * | GetLteMacSapProvider () |
Get the MAC SAP provider. | |
uint32_t | GetRxBytes () |
Get the receive bytes. | |
uint32_t | GetRxPdus () |
Get the receive PDUs. | |
uint32_t | GetTxBytes () |
Get the transmit bytes. | |
uint32_t | GetTxPdus () |
Get the transmit PDUs. | |
bool | Receive (Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr) |
the Receive function | |
void | SendTxOpportunity (Time time, uint32_t bytes) |
Send transmit opportunity function. | |
void | SetDevice (Ptr< NetDevice > device) |
Set the device function. | |
void | SetLteMacLoopback (Ptr< LteTestMac > s) |
Set the other side of the MAC Loopback. | |
void | SetLteMacSapUser (LteMacSapUser *s) |
Set the MAC SAP user. | |
void | SetPdcpHeaderPresent (bool present) |
Set PDCP header present function. | |
void | SetRlcHeaderType (uint8_t rlcHeaderType) |
Set RLC header type. | |
void | SetTxOpportunityMode (uint8_t mode) |
Set transmit opportunity mode. | |
void | SetTxOppSize (uint32_t txOppSize) |
Set transmit opportunity time. | |
void | SetTxOppTime (Time txOppTime) |
Set transmit opportunity 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 () |
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. | |
Private Member Functions | |
void | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters params) |
Report buffer status function. | |
void | DoTransmitPdu (LteMacSapProvider::TransmitPduParameters params) |
Transmit PDU. | |
Private Attributes | |
Ptr< NetDevice > | m_device |
the device | |
Ptr< LteTestMac > | m_macLoopback |
MAC loopback. | |
LteMacSapProvider * | m_macSapProvider |
MAC SAP provider. | |
LteMacSapUser * | m_macSapUser |
MAC SAP user. | |
EventId | m_nextTxOpp |
next transmit opportunity event | |
std::list< EventId > | m_nextTxOppList |
next transmit opportunity list | |
bool | m_pdcpHeaderPresent |
PDCP header present? | |
std::string | m_receivedData |
the received data string | |
uint8_t | m_rlcHeaderType |
RLC header type. | |
uint32_t | m_rxBytes |
the number of receive bytes | |
uint32_t | m_rxPdus |
the number of receive PDUs | |
uint32_t | m_txBytes |
the number of transmit bytes | |
uint8_t | m_txOpportunityMode |
transmit opportunity mode | |
uint32_t | m_txOppSize |
transmit opportunity size | |
Time | m_txOppTime |
transmit opportunity time | |
uint32_t | m_txPdus |
the number of transmit PDUs | |
Friends | |
class | EnbMacMemberLteMacSapProvider< LteTestMac > |
allow EnbMacMemberLteMacSapProvider<LteTestMac> class friend access | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
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. | |
This class implements a testing loopback MAC layer.
Definition at line 222 of file lte-test-entities.h.
RCL Header Type enumeration.
Enumerator | |
---|---|
UM_RLC_HEADER | |
AM_RLC_HEADER |
Definition at line 300 of file lte-test-entities.h.
Transmit opportunity mode enumeration.
Enumerator | |
---|---|
MANUAL_MODE | |
AUTOMATIC_MODE | |
RANDOM_MODE |
Definition at line 313 of file lte-test-entities.h.
ns3::LteTestMac::LteTestMac | ( | ) |
Definition at line 349 of file lte-test-entities.cc.
References EnbMacMemberLteMacSapProvider< LteTestMac >, m_device, m_macLoopback, m_macSapProvider, m_macSapUser, m_pdcpHeaderPresent, m_rlcHeaderType, m_rxBytes, m_rxPdus, m_txBytes, m_txOpportunityMode, m_txOppSize, m_txOppTime, m_txPdus, MANUAL_MODE, NS_LOG_FUNCTION, ns3::Seconds(), and UM_RLC_HEADER.
|
override |
Definition at line 373 of file lte-test-entities.cc.
References NS_LOG_FUNCTION.
|
overridevirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden 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.
Definition at line 379 of file lte-test-entities.cc.
References m_device, m_macSapProvider, and NS_LOG_FUNCTION.
|
private |
Report buffer status function.
params | LteMacSapProvider::ReportBufferStatusParameters |
Definition at line 608 of file lte-test-entities.cc.
References AUTOMATIC_MODE, ns3::LteMacSapUser::TxOpportunityParameters::bytes, ns3::LteMacSapUser::TxOpportunityParameters::componentCarrierId, ns3::LteMacSapUser::TxOpportunityParameters::harqId, ns3::LteMacSapUser::TxOpportunityParameters::layer, ns3::LteMacSapUser::TxOpportunityParameters::lcid, m_macSapUser, m_nextTxOppList, m_txOpportunityMode, m_txOppSize, m_txOppTime, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, ns3::LteMacSapUser::TxOpportunityParameters::rnti, and ns3::Simulator::Schedule().
|
private |
Transmit PDU.
MAC SAP.
params | LteMacSapProvider::TransmitPduParameters |
Definition at line 547 of file lte-test-entities.cc.
References AM_RLC_HEADER, ns3::LteMacSapUser::ReceivePduParameters::lcid, m_device, m_macLoopback, m_pdcpHeaderPresent, m_receivedData, m_rlcHeaderType, m_txBytes, m_txPdus, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteMacSapUser::ReceivePduParameters::p, ns3::LteMacSapUser::ReceivePdu(), ns3::LteMacSapUser::ReceivePduParameters::rnti, ns3::Simulator::Schedule(), and ns3::Seconds().
std::string ns3::LteTestMac::GetDataReceived | ( | ) |
Get data received function.
Definition at line 416 of file lte-test-entities.cc.
References m_receivedData, and NS_LOG_FUNCTION.
LteMacSapProvider * ns3::LteTestMac::GetLteMacSapProvider | ( | ) |
Get the MAC SAP provider.
Definition at line 404 of file lte-test-entities.cc.
References m_macSapProvider.
uint32_t ns3::LteTestMac::GetRxBytes | ( | ) |
Get the receive bytes.
Definition at line 445 of file lte-test-entities.cc.
References m_rxBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetRxPdus | ( | ) |
Get the receive PDUs.
Definition at line 438 of file lte-test-entities.cc.
References m_rxPdus, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxBytes | ( | ) |
Get the transmit bytes.
Definition at line 431 of file lte-test-entities.cc.
References m_txBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxPdus | ( | ) |
Get the transmit PDUs.
Definition at line 424 of file lte-test-entities.cc.
References m_txPdus, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 342 of file lte-test-entities.cc.
References ns3::TypeId::SetParent().
bool ns3::LteTestMac::Receive | ( | Ptr< NetDevice > | nd, |
Ptr< const Packet > | p, | ||
uint16_t | protocol, | ||
const Address & | addr ) |
the Receive function
nd | the device |
p | the packet |
protocol | the protocol |
addr | the address |
Definition at line 644 of file lte-test-entities.cc.
References ns3::LteMacSapUser::ReceivePduParameters::lcid, m_macSapUser, m_rxBytes, m_rxPdus, NS_LOG_FUNCTION, ns3::LteMacSapUser::ReceivePduParameters::p, ns3::LteMacSapUser::ReceivePdu(), and ns3::LteMacSapUser::ReceivePduParameters::rnti.
Referenced by ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
Send transmit opportunity function.
time | the time |
bytes | the number of bytes |
Definition at line 452 of file lte-test-entities.cc.
References ns3::LteMacSapUser::TxOpportunityParameters::bytes, ns3::LteMacSapUser::TxOpportunityParameters::componentCarrierId, ns3::LteMacSapUser::TxOpportunityParameters::harqId, ns3::Time::IsZero(), ns3::LteMacSapUser::TxOpportunityParameters::layer, ns3::LteMacSapUser::TxOpportunityParameters::lcid, m_device, m_macSapUser, m_txOpportunityMode, m_txOppSize, m_txOppTime, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, RANDOM_MODE, ns3::LteMacSapUser::TxOpportunityParameters::rnti, ns3::Simulator::Schedule(), ns3::Simulator::ScheduleWithContext(), and SendTxOpportunity().
Referenced by SendTxOpportunity(), and SetTxOpportunityMode().
Set the device function.
device | the device |
Definition at line 392 of file lte-test-entities.cc.
References m_device.
void ns3::LteTestMac::SetLteMacLoopback | ( | Ptr< LteTestMac > | s | ) |
Set the other side of the MAC Loopback.
s | a pointer to the other side of the MAC loopback |
Definition at line 410 of file lte-test-entities.cc.
References m_macLoopback.
void ns3::LteTestMac::SetLteMacSapUser | ( | LteMacSapUser * | s | ) |
Set the MAC SAP user.
s | a pointer to the MAC SAP user |
Definition at line 398 of file lte-test-entities.cc.
References m_macSapUser.
void ns3::LteTestMac::SetPdcpHeaderPresent | ( | bool | present | ) |
Set PDCP header present function.
present | true iif PDCP header present |
Definition at line 500 of file lte-test-entities.cc.
References m_pdcpHeaderPresent, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetRlcHeaderType | ( | uint8_t | rlcHeaderType | ) |
Set RLC header type.
rlcHeaderType | the RLC header type |
Definition at line 507 of file lte-test-entities.cc.
References m_rlcHeaderType, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetTxOpportunityMode | ( | uint8_t | mode | ) |
Set transmit opportunity mode.
mode | the transmit opportunity mode |
Definition at line 514 of file lte-test-entities.cc.
References ns3::Time::IsZero(), m_txOpportunityMode, m_txOppSize, m_txOppTime, NS_LOG_FUNCTION, RANDOM_MODE, and SendTxOpportunity().
void ns3::LteTestMac::SetTxOppSize | ( | uint32_t | txOppSize | ) |
Set transmit opportunity time.
txOppSize | the transmit opportunity size |
Definition at line 536 of file lte-test-entities.cc.
References m_txOppSize, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetTxOppTime | ( | Time | txOppTime | ) |
Set transmit opportunity time.
txOppTime | the transmit opportunity time |
Definition at line 529 of file lte-test-entities.cc.
References m_txOppTime, and NS_LOG_FUNCTION.
|
friend |
allow EnbMacMemberLteMacSapProvider<LteTestMac> class friend access
Definition at line 212 of file lte-test-entities.h.
Referenced by LteTestMac().
the device
Definition at line 376 of file lte-test-entities.h.
Referenced by LteTestMac(), DoDispose(), DoTransmitPdu(), SendTxOpportunity(), and SetDevice().
|
private |
MAC loopback.
Definition at line 368 of file lte-test-entities.h.
Referenced by LteTestMac(), DoTransmitPdu(), and SetLteMacLoopback().
|
private |
MAC SAP provider.
Definition at line 366 of file lte-test-entities.h.
Referenced by LteTestMac(), DoDispose(), and GetLteMacSapProvider().
|
private |
MAC SAP user.
Definition at line 367 of file lte-test-entities.h.
Referenced by LteTestMac(), DoReportBufferStatus(), Receive(), SendTxOpportunity(), and SetLteMacSapUser().
|
private |
next transmit opportunity event
Definition at line 379 of file lte-test-entities.h.
|
private |
next transmit opportunity list
Definition at line 382 of file lte-test-entities.h.
Referenced by DoReportBufferStatus().
|
private |
PDCP header present?
Definition at line 373 of file lte-test-entities.h.
Referenced by LteTestMac(), DoTransmitPdu(), and SetPdcpHeaderPresent().
|
private |
the received data string
Definition at line 370 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), and GetDataReceived().
|
private |
RLC header type.
Definition at line 372 of file lte-test-entities.h.
Referenced by LteTestMac(), DoTransmitPdu(), and SetRlcHeaderType().
|
private |
the number of receive bytes
Definition at line 388 of file lte-test-entities.h.
Referenced by LteTestMac(), GetRxBytes(), and Receive().
|
private |
the number of receive PDUs
Definition at line 387 of file lte-test-entities.h.
Referenced by LteTestMac(), GetRxPdus(), and Receive().
|
private |
the number of transmit bytes
Definition at line 386 of file lte-test-entities.h.
Referenced by LteTestMac(), DoTransmitPdu(), and GetTxBytes().
|
private |
transmit opportunity mode
Definition at line 374 of file lte-test-entities.h.
Referenced by LteTestMac(), DoReportBufferStatus(), SendTxOpportunity(), and SetTxOpportunityMode().
|
private |
transmit opportunity size
Definition at line 381 of file lte-test-entities.h.
Referenced by LteTestMac(), DoReportBufferStatus(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppSize().
|
private |
transmit opportunity time
Definition at line 380 of file lte-test-entities.h.
Referenced by LteTestMac(), DoReportBufferStatus(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppTime().
|
private |
the number of transmit PDUs
Definition at line 385 of file lte-test-entities.h.
Referenced by LteTestMac(), DoTransmitPdu(), and GetTxPdus().