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) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. 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 () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. 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 |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
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) |
![]() | |
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) | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. 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 346 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 370 of file lte-test-entities.cc.
References NS_LOG_FUNCTION.
|
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.
Definition at line 376 of file lte-test-entities.cc.
References m_device, m_macSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 566 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 512 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 413 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 401 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 442 of file lte-test-entities.cc.
References m_rxBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetRxPdus | ( | void | ) |
Definition at line 435 of file lte-test-entities.cc.
References m_rxPdus, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxBytes | ( | void | ) |
Definition at line 428 of file lte-test-entities.cc.
References m_txBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxPdus | ( | void | ) |
Definition at line 421 of file lte-test-entities.cc.
References m_txPdus, and NS_LOG_FUNCTION.
|
static |
Definition at line 336 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 592 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 450 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 389 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 407 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 395 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 464 of file lte-test-entities.cc.
References m_pdcpHeaderPresent, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetRlcHeaderType | ( | uint8_t | rlcHeaderType | ) |
Definition at line 471 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 478 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 500 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 493 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().