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 } |
enum | TxOpportunityMode_t { MANUAL_MODE = 0, AUTOMATIC_MODE = 1, RANDOM_MODE = 2 } |
Public Member Functions | |
LteTestMac (void) | |
virtual | ~LteTestMac (void) |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
std::string | GetDataReceived (void) |
LteMacSapProvider * | GetLteMacSapProvider (void) |
Get the MAC SAP provider. More... | |
uint32_t | GetRxBytes (void) |
uint32_t | GetRxPdus (void) |
uint32_t | GetTxBytes (void) |
uint32_t | GetTxPdus (void) |
bool | Receive (Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr) |
void | SendTxOpportunity (Time, uint32_t) |
void | SetDevice (Ptr< NetDevice > device) |
void | SetLteMacLoopback (Ptr< LteTestMac > s) |
Set the other side of the MAC Loopback. More... | |
void | SetLteMacSapUser (LteMacSapUser *s) |
Set the MAC SAP user. More... | |
void | SetPdcpHeaderPresent (bool present) |
void | SetRlcHeaderType (uint8_t rlcHeaderType) |
void | SetTxOpportunityMode (uint8_t mode) |
void | SetTxOppSize (uint32_t txOppSize) |
void | SetTxOppTime (Time txOppTime) |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters) |
void | DoTransmitPdu (LteMacSapProvider::TransmitPduParameters) |
MAC SAP. More... | |
Private Attributes | |
Ptr< NetDevice > | m_device |
Ptr< LteTestMac > | m_macLoopback |
LteMacSapProvider * | m_macSapProvider |
LteMacSapUser * | m_macSapUser |
EventId | m_nextTxOpp |
bool | m_pdcpHeaderPresent |
std::string | m_receivedData |
uint8_t | m_rlcHeaderType |
uint32_t | m_rxBytes |
uint32_t | m_rxPdus |
uint32_t | m_txBytes |
uint8_t | m_txOpportunityMode |
uint32_t | m_txOppSize |
Time | m_txOppTime |
uint32_t | m_txPdus |
Friends | |
class | EnbMacMemberLteMacSapProvider< LteTestMac > |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
This class implements a testing loopback MAC layer.
Definition at line 154 of file lte-test-entities.h.
Enumerator | |
---|---|
UM_RLC_HEADER | |
AM_RLC_HEADER |
Definition at line 203 of file lte-test-entities.h.
Enumerator | |
---|---|
MANUAL_MODE | |
AUTOMATIC_MODE | |
RANDOM_MODE |
Definition at line 213 of file lte-test-entities.h.
ns3::LteTestMac::LteTestMac | ( | void | ) |
Definition at line 345 of file lte-test-entities.cc.
References 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.
|
virtual |
Definition at line 369 of file lte-test-entities.cc.
References NS_LOG_FUNCTION.
|
virtual |
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 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.
Definition at line 375 of file lte-test-entities.cc.
References m_device, m_macSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 565 of file lte-test-entities.cc.
References AUTOMATIC_MODE, m_macSapUser, m_txOpportunityMode, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueSize, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::LteMacSapProvider::ReportBufferStatusParameters::statusPduSize, and ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueSize.
|
private |
MAC SAP.
Definition at line 511 of file lte-test-entities.cc.
References AM_RLC_HEADER, ns3::Packet::CopyData(), ns3::Packet::GetSize(), m_device, m_macLoopback, m_macSapUser, m_pdcpHeaderPresent, m_receivedData, m_rlcHeaderType, m_txBytes, m_txPdus, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteMacSapProvider::TransmitPduParameters::pdu, ns3::LteMacSapUser::ReceivePdu(), ns3::Packet::RemoveHeader(), ns3::Simulator::Schedule(), and ns3::Seconds().
std::string ns3::LteTestMac::GetDataReceived | ( | void | ) |
Definition at line 412 of file lte-test-entities.cc.
References m_receivedData, and NS_LOG_FUNCTION.
Referenced by LteRlcUmTransmitterTestCase::DoCheckDataReceived(), and LteRlcAmTransmitterTestCase::DoCheckDataReceived().
LteMacSapProvider * ns3::LteTestMac::GetLteMacSapProvider | ( | void | ) |
Get the MAC SAP provider.
Definition at line 400 of file lte-test-entities.cc.
References m_macSapProvider.
Referenced by LteRlcUmTransmitterTestCase::DoRun(), LteRlcAmTransmitterTestCase::DoRun(), ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
uint32_t ns3::LteTestMac::GetRxBytes | ( | void | ) |
Definition at line 441 of file lte-test-entities.cc.
References m_rxBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetRxPdus | ( | void | ) |
Definition at line 434 of file lte-test-entities.cc.
References m_rxPdus, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxBytes | ( | void | ) |
Definition at line 427 of file lte-test-entities.cc.
References m_txBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxPdus | ( | void | ) |
Definition at line 420 of file lte-test-entities.cc.
References m_txPdus, and NS_LOG_FUNCTION.
|
static |
Definition at line 335 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 | ||
) |
Definition at line 591 of file lte-test-entities.cc.
References ns3::Packet::Copy(), ns3::Packet::GetSize(), m_macSapUser, m_rxBytes, m_rxPdus, NS_LOG_FUNCTION, and ns3::LteMacSapUser::ReceivePdu().
Referenced by ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
void ns3::LteTestMac::SendTxOpportunity | ( | Time | time, |
uint32_t | bytes | ||
) |
Definition at line 449 of file lte-test-entities.cc.
References m_macSapUser, m_txOpportunityMode, m_txOppSize, m_txOppTime, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, RANDOM_MODE, ns3::Simulator::Schedule(), and ns3::Seconds().
Referenced by LteRlcUmTransmitterOneSduTestCase::DoRun(), LteRlcAmTransmitterOneSduTestCase::DoRun(), LteRlcUmTransmitterSegmentationTestCase::DoRun(), LteRlcAmTransmitterSegmentationTestCase::DoRun(), LteRlcUmTransmitterConcatenationTestCase::DoRun(), LteRlcAmTransmitterConcatenationTestCase::DoRun(), LteRlcUmTransmitterReportBufferStatusTestCase::DoRun(), LteRlcAmTransmitterReportBufferStatusTestCase::DoRun(), and SetTxOpportunityMode().
Definition at line 388 of file lte-test-entities.cc.
References m_device.
Referenced by ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
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 406 of file lte-test-entities.cc.
References m_macLoopback, and s.
void ns3::LteTestMac::SetLteMacSapUser | ( | LteMacSapUser * | s | ) |
Set the MAC SAP user.
s | a pointer to the MAC SAP user |
Definition at line 394 of file lte-test-entities.cc.
References m_macSapUser, and s.
Referenced by LteRlcUmTransmitterTestCase::DoRun(), LteRlcAmTransmitterTestCase::DoRun(), ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
void ns3::LteTestMac::SetPdcpHeaderPresent | ( | bool | present | ) |
Definition at line 463 of file lte-test-entities.cc.
References m_pdcpHeaderPresent, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetRlcHeaderType | ( | uint8_t | rlcHeaderType | ) |
Definition at line 470 of file lte-test-entities.cc.
References m_rlcHeaderType, and NS_LOG_FUNCTION.
Referenced by LteRlcUmTransmitterTestCase::DoRun(), and LteRlcAmTransmitterTestCase::DoRun().
void ns3::LteTestMac::SetTxOpportunityMode | ( | uint8_t | mode | ) |
Definition at line 477 of file lte-test-entities.cc.
References m_txOpportunityMode, m_txOppSize, m_txOppTime, NS_LOG_FUNCTION, RANDOM_MODE, ns3::Seconds(), and SendTxOpportunity().
Referenced by LteRlcAmE2eTestCase::DoRun(), and LteRlcUmE2eTestCase::DoRun().
void ns3::LteTestMac::SetTxOppSize | ( | uint32_t | txOppSize | ) |
Definition at line 499 of file lte-test-entities.cc.
References m_txOppSize, and NS_LOG_FUNCTION.
Referenced by LteRlcAmE2eTestCase::DoRun(), and LteRlcUmE2eTestCase::DoRun().
void ns3::LteTestMac::SetTxOppTime | ( | Time | txOppTime | ) |
Definition at line 492 of file lte-test-entities.cc.
References m_txOppTime, and NS_LOG_FUNCTION.
Referenced by LteRlcAmE2eTestCase::DoRun(), and LteRlcUmE2eTestCase::DoRun().
|
friend |
Definition at line 157 of file lte-test-entities.h.
Definition at line 243 of file lte-test-entities.h.
Referenced by DoDispose(), DoTransmitPdu(), LteTestMac(), and SetDevice().
|
private |
Definition at line 235 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetLteMacLoopback().
|
private |
Definition at line 233 of file lte-test-entities.h.
Referenced by DoDispose(), GetLteMacSapProvider(), and LteTestMac().
|
private |
Definition at line 234 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), DoTransmitPdu(), LteTestMac(), Receive(), SendTxOpportunity(), and SetLteMacSapUser().
|
private |
Definition at line 246 of file lte-test-entities.h.
|
private |
Definition at line 240 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetPdcpHeaderPresent().
|
private |
Definition at line 237 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), and GetDataReceived().
|
private |
Definition at line 239 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetRlcHeaderType().
|
private |
Definition at line 254 of file lte-test-entities.h.
Referenced by GetRxBytes(), LteTestMac(), and Receive().
|
private |
Definition at line 253 of file lte-test-entities.h.
Referenced by GetRxPdus(), LteTestMac(), and Receive().
|
private |
Definition at line 252 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), GetTxBytes(), and LteTestMac().
|
private |
Definition at line 241 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), LteTestMac(), SendTxOpportunity(), and SetTxOpportunityMode().
|
private |
Definition at line 248 of file lte-test-entities.h.
Referenced by LteTestMac(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppSize().
|
private |
Definition at line 247 of file lte-test-entities.h.
Referenced by LteTestMac(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppTime().
|
private |
Definition at line 251 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), GetTxPdus(), and LteTestMac().