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 |
std::list< EventId > | m_nextTxOppList |
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 158 of file lte-test-entities.h.
Enumerator | |
---|---|
UM_RLC_HEADER | |
AM_RLC_HEADER |
Definition at line 207 of file lte-test-entities.h.
Enumerator | |
---|---|
MANUAL_MODE | |
AUTOMATIC_MODE | |
RANDOM_MODE |
Definition at line 217 of file lte-test-entities.h.
ns3::LteTestMac::LteTestMac | ( | void | ) |
Definition at line 370 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 394 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 400 of file lte-test-entities.cc.
References m_device, m_macSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 608 of file lte-test-entities.cc.
References AUTOMATIC_MODE, m_macSapUser, m_nextTxOppList, m_txOpportunityMode, m_txOppSize, m_txOppTime, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueSize, ns3::Simulator::Schedule(), ns3::LteMacSapProvider::ReportBufferStatusParameters::statusPduSize, and ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueSize.
|
private |
MAC SAP.
Definition at line 554 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 437 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 425 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 466 of file lte-test-entities.cc.
References m_rxBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetRxPdus | ( | void | ) |
Definition at line 459 of file lte-test-entities.cc.
References m_rxPdus, and NS_LOG_FUNCTION.
Referenced by LteRlcAmE2eTestCase::DoRun().
uint32_t ns3::LteTestMac::GetTxBytes | ( | void | ) |
Definition at line 452 of file lte-test-entities.cc.
References m_txBytes, and NS_LOG_FUNCTION.
uint32_t ns3::LteTestMac::GetTxPdus | ( | void | ) |
Definition at line 445 of file lte-test-entities.cc.
References m_txPdus, and NS_LOG_FUNCTION.
Referenced by LteRlcAmE2eTestCase::DoRun().
|
static |
Definition at line 360 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 639 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 474 of file lte-test-entities.cc.
References ns3::Node::GetId(), m_device, m_macSapUser, m_txOpportunityMode, m_txOppSize, m_txOppTime, ns3::LteMacSapUser::NotifyTxOpportunity(), NS_LOG_FUNCTION, RANDOM_MODE, ns3::Simulator::Schedule(), ns3::Simulator::ScheduleWithContext(), 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 413 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 431 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 419 of file lte-test-entities.cc.
References m_macSapUser.
Referenced by LteRlcUmTransmitterTestCase::DoRun(), LteRlcAmTransmitterTestCase::DoRun(), ns3::LteSimpleHelper::InstallSingleEnbDevice(), and ns3::LteSimpleHelper::InstallSingleUeDevice().
void ns3::LteTestMac::SetPdcpHeaderPresent | ( | bool | present | ) |
Definition at line 506 of file lte-test-entities.cc.
References m_pdcpHeaderPresent, and NS_LOG_FUNCTION.
void ns3::LteTestMac::SetRlcHeaderType | ( | uint8_t | rlcHeaderType | ) |
Definition at line 513 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 520 of file lte-test-entities.cc.
References m_txOpportunityMode, m_txOppSize, m_txOppTime, NS_LOG_FUNCTION, RANDOM_MODE, ns3::Seconds(), and SendTxOpportunity().
Referenced by LteRlcUmE2eTestCase::DoRun(), and LteRlcAmE2eTestCase::DoRun().
void ns3::LteTestMac::SetTxOppSize | ( | uint32_t | txOppSize | ) |
Definition at line 542 of file lte-test-entities.cc.
References m_txOppSize, and NS_LOG_FUNCTION.
Referenced by LteRlcUmE2eTestCase::DoRun(), and LteRlcAmE2eTestCase::DoRun().
void ns3::LteTestMac::SetTxOppTime | ( | Time | txOppTime | ) |
Definition at line 535 of file lte-test-entities.cc.
References m_txOppTime, and NS_LOG_FUNCTION.
Referenced by LteRlcUmE2eTestCase::DoRun(), and LteRlcAmE2eTestCase::DoRun().
|
friend |
Definition at line 161 of file lte-test-entities.h.
Definition at line 247 of file lte-test-entities.h.
Referenced by DoDispose(), DoTransmitPdu(), LteTestMac(), SendTxOpportunity(), and SetDevice().
|
private |
Definition at line 239 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetLteMacLoopback().
|
private |
Definition at line 237 of file lte-test-entities.h.
Referenced by DoDispose(), GetLteMacSapProvider(), and LteTestMac().
|
private |
Definition at line 238 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), DoTransmitPdu(), LteTestMac(), Receive(), SendTxOpportunity(), and SetLteMacSapUser().
|
private |
Definition at line 250 of file lte-test-entities.h.
Definition at line 253 of file lte-test-entities.h.
Referenced by DoReportBufferStatus().
|
private |
Definition at line 244 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetPdcpHeaderPresent().
|
private |
Definition at line 241 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), and GetDataReceived().
|
private |
Definition at line 243 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), LteTestMac(), and SetRlcHeaderType().
|
private |
Definition at line 259 of file lte-test-entities.h.
Referenced by GetRxBytes(), LteTestMac(), and Receive().
|
private |
Definition at line 258 of file lte-test-entities.h.
Referenced by GetRxPdus(), LteTestMac(), and Receive().
|
private |
Definition at line 257 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), GetTxBytes(), and LteTestMac().
|
private |
Definition at line 245 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), LteTestMac(), SendTxOpportunity(), and SetTxOpportunityMode().
|
private |
Definition at line 252 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), LteTestMac(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppSize().
|
private |
Definition at line 251 of file lte-test-entities.h.
Referenced by DoReportBufferStatus(), LteTestMac(), SendTxOpportunity(), SetTxOpportunityMode(), and SetTxOppTime().
|
private |
Definition at line 256 of file lte-test-entities.h.
Referenced by DoTransmitPdu(), GetTxPdus(), and LteTestMac().