#include <introspected-doxygen.h>
Public Types | |
enum | MacPreamble { SHORT_PREAMBLE = 1, LONG_PREAMBLE } |
enum | State { BS_STATE_DL_SUB_FRAME, BS_STATE_UL_SUB_FRAME, BS_STATE_TTG, BS_STATE_RTG } |
Public Types inherited from ns3::WimaxNetDevice | |
enum | Direction { DIRECTION_DOWNLINK, DIRECTION_UPLINK } |
enum | RangingStatus { RANGING_STATUS_EXPIRED, RANGING_STATUS_CONTINUE, RANGING_STATUS_ABORT, RANGING_STATUS_SUCCESS } |
Public Types inherited from ns3::NetDevice | |
enum | PacketType { PACKET_HOST = 1, NS3_PACKET_HOST = PACKET_HOST, PACKET_BROADCAST, NS3_PACKET_BROADCAST = PACKET_BROADCAST, PACKET_MULTICAST, NS3_PACKET_MULTICAST = PACKET_MULTICAST, PACKET_OTHERHOST, NS3_PACKET_OTHERHOST = PACKET_OTHERHOST } |
typedef Callback< bool, Ptr < NetDevice >, Ptr< const Packet >, uint16_t, const Address &, const Address &, enum PacketType > | PromiscReceiveCallback |
typedef Callback< bool, Ptr < NetDevice >, Ptr< const Packet >, uint16_t, const Address & > | ReceiveCallback |
Public Member Functions | |
BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy) | |
BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy, Ptr< UplinkScheduler > uplinkScheduler, Ptr< BSScheduler > bsScheduler) | |
bool | Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection) |
Enqueue a packet into a connection queue. More... | |
Ptr< IpcsClassifier > | GetBsClassifier (void) const |
Ptr< BSScheduler > | GetBSScheduler (void) const |
uint8_t | GetBwReqOppSize (void) const |
Ptr< WimaxConnection > | GetConnection (Cid cid) |
Time | GetDcdInterval (void) const |
Time | GetDlSubframeStartTime (void) const |
Time | GetInitialRangingInterval (void) const |
Time | GetIntervalT8 (void) const |
Ptr< BSLinkManager > | GetLinkManager (void) const |
uint8_t | GetMaxInvitedRangRetries (void) const |
uint8_t | GetMaxRangingCorrectionRetries (void) const |
uint32_t | GetNrDcdSent (void) const |
uint32_t | GetNrDlSymbols (void) const |
uint32_t | GetNrUcdSent (void) const |
uint32_t | GetNrUlSymbols (void) const |
Time | GetPsDuration (void) const |
uint8_t | GetRangingOppNumber (void) const |
uint8_t | GetRangReqOppSize (void) const |
Ptr< BsServiceFlowManager > | GetServiceFlowManager (void) const |
Ptr< SSManager > | GetSSManager (void) const |
Time | GetSymbolDuration (void) const |
Time | GetUcdInterval (void) const |
Time | GetUlSubframeStartTime (void) const |
Ptr< UplinkScheduler > | GetUplinkScheduler (void) const |
void | InitBaseStationNetDevice (void) |
initializes the BS net device and sets its parameters to the default values | |
void | MarkRangingOppStart (Time rangingOppStartTime) |
void | MarkUplinkAllocations (void) |
void | SetBsClassifier (Ptr< IpcsClassifier > classifier) |
void | SetBSScheduler (Ptr< BSScheduler > bsSchedule) |
void | SetBwReqOppSize (uint8_t bwReqOppSize) |
void | SetDcdInterval (Time dcdInterval) |
void | SetInitialRangingInterval (Time initialRangInterval) |
void | SetIntervalT8 (Time interval) |
void | SetLinkManager (Ptr< BSLinkManager > linkManager) |
void | SetMaxInvitedRangRetries (uint8_t maxInvitedRangRetries) |
void | SetMaxRangingCorrectionRetries (uint8_t maxRangCorrectionRetries) |
void | SetNrDlSymbols (uint32_t dlSymbols) |
void | SetNrUlSymbols (uint32_t ulSymbols) |
void | SetRangReqOppSize (uint8_t rangReqOppSize) |
void | SetServiceFlowManager (Ptr< BsServiceFlowManager >) |
void | SetSSManager (Ptr< SSManager > ssManager) |
void | SetUcdInterval (Time ucdInterval) |
void | SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler) |
void | Start (void) |
void | Stop (void) |
Public Member Functions inherited from ns3::WimaxNetDevice | |
virtual void | AddLinkChangeCallback (Callback< void > callback) |
void | Attach (Ptr< WimaxChannel > channel) |
void | CreateDefaultConnections (void) |
void | ForwardDown (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType) |
void | ForwardUp (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest) |
virtual Address | GetAddress (void) const |
Ptr< BandwidthManager > | GetBandwidthManager (void) const |
virtual Address | GetBroadcast (void) const |
Ptr< WimaxConnection > | GetBroadcastConnection (void) const |
Ptr< BurstProfileManager > | GetBurstProfileManager (void) const |
uint64_t | GetChannel (uint8_t index) const |
virtual Ptr< Channel > | GetChannel (void) const |
Ptr< ConnectionManager > | GetConnectionManager (void) const |
Dcd | GetCurrentDcd (void) const |
Ucd | GetCurrentUcd (void) const |
virtual uint32_t | GetIfIndex (void) const |
Ptr< WimaxConnection > | GetInitialRangingConnection (void) const |
Mac48Address | GetMacAddress (void) const |
virtual uint16_t | GetMtu (void) const |
virtual Address | GetMulticast (void) const |
virtual Address | GetMulticast (Ipv6Address addr) const |
Get the MAC multicast address corresponding to the IPv6 address provided. More... | |
virtual Address | GetMulticast (Ipv4Address multicastGroup) const |
Make and return a MAC multicast address using the provided multicast group. More... | |
virtual std::string | GetName (void) const |
virtual Ptr< Node > | GetNode (void) const |
uint32_t | GetNrFrames (void) const |
Ptr< WimaxPhy > | GetPhy (void) const |
virtual Ptr< Channel > | GetPhyChannel (void) const |
NetDevice::PromiscReceiveCallback | GetPromiscReceiveCallback (void) |
uint16_t | GetRtg (void) const |
uint8_t | GetState (void) const |
uint16_t | GetTtg (void) const |
virtual bool | IsBridge (void) const |
Return true if the net device is acting as a bridge. More... | |
virtual bool | IsBroadcast (void) const |
virtual bool | IsLinkUp (void) const |
virtual bool | IsMulticast (void) const |
virtual bool | IsPointToPoint (void) const |
Return true if the net device is on a point-to-point link. More... | |
bool | IsPromisc (void) |
virtual Address | MakeMulticastAddress (Ipv4Address multicastGroup) const |
virtual bool | NeedsArp (void) const |
void | NotifyPromiscTrace (Ptr< Packet > p) |
virtual bool | Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber) |
virtual bool | SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber) |
virtual void | SetAddress (Address address) |
void | SetBandwidthManager (Ptr< BandwidthManager > bandwidthManager) |
void | SetBurstProfileManager (Ptr< BurstProfileManager > burstProfileManager) |
void | SetChannel (Ptr< WimaxChannel > wimaxChannel) |
virtual void | SetConnectionManager (Ptr< ConnectionManager > connectionManager) |
void | SetCurrentDcd (Dcd dcd) |
void | SetCurrentUcd (Ucd ucd) |
virtual void | SetIfIndex (const uint32_t index) |
virtual void | SetLinkChangeCallback (Callback< void > callback) |
void | SetMacAddress (Mac48Address address) |
virtual bool | SetMtu (const uint16_t mtu) |
virtual void | SetName (const std::string name) |
virtual void | SetNode (Ptr< Node > node) |
void | SetNrFrames (uint32_t nrFrames) |
void | SetPhy (Ptr< WimaxPhy > phy) |
virtual void | SetPromiscReceiveCallback (PromiscReceiveCallback cb) |
void | SetReceiveCallback (void) |
virtual void | SetReceiveCallback (NetDevice::ReceiveCallback cb) |
void | SetRtg (uint16_t rtg) |
void | SetState (uint8_t state) |
void | SetTtg (uint16_t ttg) |
virtual bool | SupportsSendFrom (void) const |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
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) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
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 Public Member Functions inherited from ns3::WimaxNetDevice | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::NetDevice | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
Ptr< Packet > | CreateDcd (void) |
void | CreateDescriptorMessages (bool sendDcd, bool senUcd) |
creates the channel descriptor MAC management messages DCD and UCD | |
Ptr< Packet > | CreateDlMap (void) |
void | CreateMapMessages (void) |
creates the MAC management messages DL-MAP and UL-MAP | |
Ptr< Packet > | CreateUcd (void) |
Ptr< Packet > | CreateUlMap (void) |
void | DoDispose (void) |
void | DoReceive (Ptr< Packet > packet) |
bool | DoSend (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber) |
void | EndDlSubFrame (void) |
void | EndFrame (void) |
void | EndUlSubFrame (void) |
void | MarkUplinkAllocationEnd (Time allocationEndTime, Cid cid, uint8_t uiuc) |
void | MarkUplinkAllocationStart (Time allocationStartTime) |
void | RangingOppStart (void) |
void | SendBursts (void) |
void | SetDlBurstProfiles (Dcd *dcd) |
void | SetUlBurstProfiles (Ucd *ucd) |
void | StartDlSubFrame (void) |
void | StartFrame (void) |
void | StartUlSubFrame (void) |
void | UplinkAllocationEnd (Cid cid, uint8_t uiuc) |
void | UplinkAllocationStart (void) |
Private Attributes | |
uint32_t | m_allocationStartTime |
Ptr< IpcsClassifier > | m_bsClassifier |
TracedCallback< Ptr< const Packet > > | m_bsPromiscRxTrace |
TracedCallback< Ptr< const Packet > > | m_bsRxDropTrace |
TracedCallback< Ptr< const Packet > > | m_bsRxTrace |
TracedCallback< Ptr< const Packet > > | m_bsTxDropTrace |
TracedCallback< Ptr< const Packet > > | m_bsTxTrace |
uint8_t | m_bwReqOppSize |
CidFactory * | m_cidFactory |
uint32_t | m_dcdConfigChangeCount |
Time | m_dcdInterval |
Time | m_dlSubframeStartTime |
uint32_t | m_framesSinceLastDcd |
uint32_t | m_framesSinceLastUcd |
Time | m_initialRangInterval |
Time | m_intervalT8 |
Ptr< BSLinkManager > | m_linkManager |
uint8_t | m_maxInvitedRangRetries |
uint8_t | m_maxRangCorrectionRetries |
uint32_t | m_nrDcdSent |
uint16_t | m_nrDlAllocations |
uint32_t | m_nrDlFrames |
uint32_t | m_nrDlMapSent |
uint32_t | m_nrDlSymbols |
uint16_t | m_nrSsRegistered |
uint32_t | m_nrUcdSent |
uint16_t | m_nrUlAllocations |
uint32_t | m_nrUlFrames |
uint32_t | m_nrUlMapSent |
uint32_t | m_nrUlSymbols |
Time | m_psDuration |
uint8_t | m_rangingOppNumber |
uint8_t | m_rangReqOppSize |
Ptr< BSScheduler > | m_scheduler |
Ptr< BsServiceFlowManager > | m_serviceFlowManager |
Ptr< SSManager > | m_ssManager |
Time | m_symbolDuration |
TracedCallback< Ptr< const Packet >, Mac48Address, Cid > | m_traceBSRx |
uint32_t | m_ucdConfigChangeCount |
Time | m_ucdInterval |
uint8_t | m_ulAllocationNumber |
Time | m_ulSubframeStartTime |
Ptr< UplinkScheduler > | m_uplinkScheduler |
Additional Inherited Members | |
Public Attributes inherited from ns3::WimaxNetDevice | |
TracedCallback< Ptr< const Packet >, const Mac48Address & > | m_traceRx |
TracedCallback< Ptr< const Packet >, const Mac48Address & > | m_traceTx |
Static Public Attributes inherited from ns3::WimaxNetDevice | |
static uint8_t | m_direction = ~0 |
static Time | m_frameStartTime = Seconds (0) |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
ns3::BaseStationNetDevice is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 50 of file bs-net-device.h.
|
privatevirtual |
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::WimaxNetDevice.
Definition at line 247 of file bs-net-device.cc.
References ns3::WimaxNetDevice::DoDispose().
|
virtual |
Enqueue a packet into a connection queue.
packet | the packet to be enqueued |
hdrType | the mac header type to be appended to the packet |
connection | the connection to be used |
Implements ns3::WimaxNetDevice.
Definition at line 648 of file bs-net-device.cc.
References ns3::GenericMacHeader::GetSerializedSize(), ns3::Packet::GetSize(), and NS_ASSERT_MSG.
Referenced by CreateDescriptorMessages(), and CreateMapMessages().
Ptr< IpcsClassifier > ns3::BaseStationNetDevice::GetBsClassifier | ( | void | ) | const |
Definition at line 271 of file bs-net-device.cc.
Ptr< BSScheduler > ns3::BaseStationNetDevice::GetBSScheduler | ( | void | ) | const |
Definition at line 480 of file bs-net-device.cc.
uint8_t ns3::BaseStationNetDevice::GetBwReqOppSize | ( | void | ) | const |
Definition at line 367 of file bs-net-device.cc.
Time ns3::BaseStationNetDevice::GetDcdInterval | ( | void | ) | const |
Definition at line 295 of file bs-net-device.cc.
Time ns3::BaseStationNetDevice::GetInitialRangingInterval | ( | void | ) | const |
Definition at line 283 of file bs-net-device.cc.
Time ns3::BaseStationNetDevice::GetIntervalT8 | ( | void | ) | const |
Definition at line 319 of file bs-net-device.cc.
Ptr< BSLinkManager > ns3::BaseStationNetDevice::GetLinkManager | ( | void | ) | const |
Definition at line 463 of file bs-net-device.cc.
uint8_t ns3::BaseStationNetDevice::GetMaxInvitedRangRetries | ( | void | ) | const |
Definition at line 343 of file bs-net-device.cc.
uint8_t ns3::BaseStationNetDevice::GetMaxRangingCorrectionRetries | ( | void | ) | const |
Definition at line 331 of file bs-net-device.cc.
uint32_t ns3::BaseStationNetDevice::GetNrDcdSent | ( | void | ) | const |
Definition at line 397 of file bs-net-device.cc.
uint32_t ns3::BaseStationNetDevice::GetNrDlSymbols | ( | void | ) | const |
Definition at line 379 of file bs-net-device.cc.
uint32_t ns3::BaseStationNetDevice::GetNrUcdSent | ( | void | ) | const |
Definition at line 403 of file bs-net-device.cc.
uint32_t ns3::BaseStationNetDevice::GetNrUlSymbols | ( | void | ) | const |
Definition at line 391 of file bs-net-device.cc.
uint8_t ns3::BaseStationNetDevice::GetRangReqOppSize | ( | void | ) | const |
Definition at line 355 of file bs-net-device.cc.
Definition at line 427 of file bs-net-device.cc.
Time ns3::BaseStationNetDevice::GetUcdInterval | ( | void | ) | const |
Definition at line 307 of file bs-net-device.cc.
Ptr< UplinkScheduler > ns3::BaseStationNetDevice::GetUplinkScheduler | ( | void | ) | const |
Definition at line 451 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetBsClassifier | ( | Ptr< IpcsClassifier > | classifier | ) |
classifier | a classifier to be installed on the BS |
Definition at line 265 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetBSScheduler | ( | Ptr< BSScheduler > | bsSchedule | ) |
bsSchedule | the downlink scheduler to be installed on the BS |
Definition at line 475 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetBwReqOppSize | ( | uint8_t | bwReqOppSize | ) |
bwReqOppSize | The bandwidth request opportunity size in symbols |
Definition at line 361 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetDcdInterval | ( | Time | dcdInterval | ) |
dcdInterval | Time between transmission of DCD messages |
Definition at line 289 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetInitialRangingInterval | ( | Time | initialRangInterval | ) |
initialRangInterval | Time between Initial Ranging regions assigned by the BS |
Definition at line 277 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetIntervalT8 | ( | Time | interval | ) |
interval | the Wait for DSA/DSC Acknowledge timeout |
Definition at line 313 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetLinkManager | ( | Ptr< BSLinkManager > | linkManager | ) |
linkManager | The link manager installed on the BS |
Definition at line 469 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetMaxInvitedRangRetries | ( | uint8_t | maxInvitedRangRetries | ) |
maxInvitedRangRetries | the number of retries on contention Ranging |
Definition at line 337 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetMaxRangingCorrectionRetries | ( | uint8_t | maxRangCorrectionRetries | ) |
maxRangCorrectionRetries | the number of retries on contention Ranging Requests |
Definition at line 325 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetNrDlSymbols | ( | uint32_t | dlSymbols | ) |
dlSymbols | the number of symbols in the downlink sub-frame |
Definition at line 373 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetNrUlSymbols | ( | uint32_t | ulSymbols | ) |
ulSymbols | the number of symbols in the uplink sub-frame |
Definition at line 385 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetRangReqOppSize | ( | uint8_t | rangReqOppSize | ) |
rangReqOppSize | The ranging opportunity size in symbols |
Definition at line 349 of file bs-net-device.cc.
ssManager | the SS manager to be installed on the BS |
Definition at line 433 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetUcdInterval | ( | Time | ucdInterval | ) |
ucdInterval | the Time between transmission of UCD messages |
Definition at line 301 of file bs-net-device.cc.
void ns3::BaseStationNetDevice::SetUplinkScheduler | ( | Ptr< UplinkScheduler > | ulScheduler | ) |
ulScheduler | the ulScheduler to be isnstalled on the BS |
Definition at line 457 of file bs-net-device.cc.
|
private |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). This is a promiscuous trace.
Definition at line 344 of file bs-net-device.h.
|
private |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during reception.
Definition at line 361 of file bs-net-device.h.
|
private |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). This is a non- promiscuous trace.
Definition at line 353 of file bs-net-device.h.
|
private |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during transmission.
Definition at line 335 of file bs-net-device.h.
|
private |
The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission.
Definition at line 327 of file bs-net-device.h.