ns-3
ns3::BaseStationNetDevice Class Reference
Inheritance diagram for ns3::BaseStationNetDevice:
Collaboration diagram for ns3::BaseStationNetDevice:

List of all members.

Public Types

enum  State { BS_STATE_DL_SUB_FRAME, BS_STATE_UL_SUB_FRAME, BS_STATE_TTG, BS_STATE_RTG }
enum  MacPreamble { SHORT_PREAMBLE = 1, LONG_PREAMBLE }
- 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 & > 
ReceiveCallback
typedef Callback< bool, Ptr
< NetDevice >, Ptr< const
Packet >, uint16_t, const
Address &, const Address
&, enum PacketType
PromiscReceiveCallback

Public Member Functions

 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy)
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy, Ptr< UplinkScheduler > uplinkScheduler, Ptr< BSScheduler > bsScheduler)
void SetInitialRangingInterval (Time initialRangInterval)
void InitBaseStationNetDevice (void)
 initializes the BS net device and sets its parameters to the default values
Time GetInitialRangingInterval (void) const
void SetDcdInterval (Time dcdInterval)
Time GetDcdInterval (void) const
void SetUcdInterval (Time ucdInterval)
Time GetUcdInterval (void) const
void SetIntervalT8 (Time interval)
Time GetIntervalT8 (void) const
void SetMaxRangingCorrectionRetries (uint8_t maxRangCorrectionRetries)
uint8_t GetMaxRangingCorrectionRetries (void) const
void SetMaxInvitedRangRetries (uint8_t maxInvitedRangRetries)
uint8_t GetMaxInvitedRangRetries (void) const
void SetRangReqOppSize (uint8_t rangReqOppSize)
uint8_t GetRangReqOppSize (void) const
void SetBwReqOppSize (uint8_t bwReqOppSize)
uint8_t GetBwReqOppSize (void) const
void SetNrDlSymbols (uint32_t dlSymbols)
uint32_t GetNrDlSymbols (void) const
void SetNrUlSymbols (uint32_t ulSymbols)
uint32_t GetNrUlSymbols (void) const
uint32_t GetNrDcdSent (void) const
uint32_t GetNrUcdSent (void) const
Time GetDlSubframeStartTime (void) const
Time GetUlSubframeStartTime (void) const
uint8_t GetRangingOppNumber (void) const
Ptr< SSManagerGetSSManager (void) const
void SetSSManager (Ptr< SSManager > ssManager)
Ptr< UplinkSchedulerGetUplinkScheduler (void) const
void SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler)
Ptr< BSLinkManagerGetLinkManager (void) const
void SetBSScheduler (Ptr< BSScheduler > bsSchedule)
Ptr< BSSchedulerGetBSScheduler (void) const
void SetLinkManager (Ptr< BSLinkManager > linkManager)
Ptr< IpcsClassifierGetBsClassifier (void) const
void SetBsClassifier (Ptr< IpcsClassifier > classifier)
Time GetPsDuration (void) const
Time GetSymbolDuration (void) const
void Start (void)
void Stop (void)
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
 Enqueue a packet into a connection queue.
Ptr< WimaxConnectionGetConnection (Cid cid)
void MarkUplinkAllocations (void)
void MarkRangingOppStart (Time rangingOppStartTime)
Ptr< BsServiceFlowManagerGetServiceFlowManager (void) const
void SetServiceFlowManager (Ptr< BsServiceFlowManager >)
- Public Member Functions inherited from ns3::WimaxNetDevice
void SetTtg (uint16_t ttg)
uint16_t GetTtg (void) const
void SetRtg (uint16_t rtg)
uint16_t GetRtg (void) const
void Attach (Ptr< WimaxChannel > channel)
void SetPhy (Ptr< WimaxPhy > phy)
Ptr< WimaxPhyGetPhy (void) const
void SetChannel (Ptr< WimaxChannel > wimaxChannel)
uint64_t GetChannel (uint8_t index) const
void SetNrFrames (uint32_t nrFrames)
uint32_t GetNrFrames (void) const
void SetMacAddress (Mac48Address address)
Mac48Address GetMacAddress (void) const
void SetState (uint8_t state)
uint8_t GetState (void) const
Ptr< WimaxConnectionGetInitialRangingConnection (void) const
Ptr< WimaxConnectionGetBroadcastConnection (void) const
void SetCurrentDcd (Dcd dcd)
Dcd GetCurrentDcd (void) const
void SetCurrentUcd (Ucd ucd)
Ucd GetCurrentUcd (void) const
Ptr< ConnectionManagerGetConnectionManager (void) const
virtual void SetConnectionManager (Ptr< ConnectionManager > connectionManager)
Ptr< BurstProfileManagerGetBurstProfileManager (void) const
void SetBurstProfileManager (Ptr< BurstProfileManager > burstProfileManager)
Ptr< BandwidthManagerGetBandwidthManager (void) const
void SetBandwidthManager (Ptr< BandwidthManager > bandwidthManager)
void CreateDefaultConnections (void)
void SetReceiveCallback (void)
void ForwardUp (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
void ForwardDown (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
virtual void SetName (const std::string name)
virtual std::string GetName (void) const
virtual void SetIfIndex (const uint32_t index)
virtual uint32_t GetIfIndex (void) const
virtual Ptr< ChannelGetPhyChannel (void) const
virtual Ptr< ChannelGetChannel (void) const
virtual void SetAddress (Address address)
virtual Address GetAddress (void) const
virtual bool SetMtu (const uint16_t mtu)
virtual uint16_t GetMtu (void) const
virtual bool IsLinkUp (void) const
virtual void SetLinkChangeCallback (Callback< void > callback)
virtual bool IsBroadcast (void) const
virtual Address GetBroadcast (void) const
virtual bool IsMulticast (void) const
virtual Address GetMulticast (void) const
virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const
virtual bool IsPointToPoint (void) const
 Return true if the net device is on a point-to-point link.
virtual bool Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
virtual void SetNode (Ptr< Node > node)
virtual Ptr< NodeGetNode (void) const
virtual bool NeedsArp (void) const
virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb)
virtual void AddLinkChangeCallback (Callback< void > callback)
virtual bool SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb)
NetDevice::PromiscReceiveCallback GetPromiscReceiveCallback (void)
virtual bool SupportsSendFrom (void) const
virtual Address GetMulticast (Ipv6Address addr) const
 Get the MAC multicast address corresponding to the IPv6 address provided.
virtual Address GetMulticast (Ipv4Address multicastGroup) const
 Make and return a MAC multicast address using the provided multicast group.
virtual bool IsBridge (void) const
 Return true if the net device is acting as a bridge.
bool IsPromisc (void)
void NotifyPromiscTrace (Ptr< Packet > p)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::BaseStationNetDevice.

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)

Member Function Documentation

bool ns3::BaseStationNetDevice::Enqueue ( Ptr< Packet packet,
const MacHeaderType hdrType,
Ptr< WimaxConnection connection 
)
virtual

Enqueue a packet into a connection queue.

Parameters:
packetthe packet to be enqueued
hdrTypethe mac header type to be appended to the packet
connectionthe connection to be used

Implements ns3::WimaxNetDevice.

References ns3::WimaxConnection::Enqueue(), ns3::GenericMacHeader::GetSerializedSize(), ns3::Packet::GetSize(), and NS_ASSERT_MSG.

Ptr< IpcsClassifier > ns3::BaseStationNetDevice::GetBsClassifier ( void  ) const
Returns:
a pointer to the classifier installed on the BS

Referenced by GetTypeId().

Ptr< BSScheduler > ns3::BaseStationNetDevice::GetBSScheduler ( void  ) const
Returns:
The BS scheduler installed on the BS

Referenced by GetTypeId().

uint8_t ns3::BaseStationNetDevice::GetBwReqOppSize ( void  ) const
Returns:
The bandwidth request opportunity size in symbols

Referenced by ns3::UplinkSchedulerMBQoS::CountSymbolsJobs(), and GetTypeId().

Time ns3::BaseStationNetDevice::GetDcdInterval ( void  ) const
Returns:
the Time between transmission of DCD messages

Referenced by GetTypeId().

Time ns3::BaseStationNetDevice::GetInitialRangingInterval ( void  ) const
Returns:
Time between Initial Ranging regions assigned by the BS

Referenced by GetTypeId().

Time ns3::BaseStationNetDevice::GetIntervalT8 ( void  ) const
Returns:
the Wait for DSA/DSC Acknowledge timeout

Referenced by GetTypeId().

Ptr< BSLinkManager > ns3::BaseStationNetDevice::GetLinkManager ( void  ) const
Returns:
a pointer to the link manager installed on the BS

Referenced by GetTypeId().

uint8_t ns3::BaseStationNetDevice::GetMaxInvitedRangRetries ( void  ) const
Returns:
the number of retries on contention Ranging

Referenced by ns3::BSLinkManager::VerifyInvitedRanging().

uint8_t ns3::BaseStationNetDevice::GetMaxRangingCorrectionRetries ( void  ) const
Returns:
the number of retries on contention Ranging Requests

Referenced by GetTypeId().

uint32_t ns3::BaseStationNetDevice::GetNrDcdSent ( void  ) const
Returns:
the number dcd messages already sent
uint32_t ns3::BaseStationNetDevice::GetNrDlSymbols ( void  ) const
Returns:
the number of symbols in the downlink sub-frame

Referenced by ns3::BSSchedulerRtps::Schedule().

uint32_t ns3::BaseStationNetDevice::GetNrUcdSent ( void  ) const
Returns:
the number ucd messages already sent
uint32_t ns3::BaseStationNetDevice::GetNrUlSymbols ( void  ) const
Returns:
the number of symbols in the uplink sub-frame

Referenced by ns3::UplinkSchedulerRtps::Schedule().

uint8_t ns3::BaseStationNetDevice::GetRangReqOppSize ( void  ) const
Returns:
The ranging opportunity size in symbols

Referenced by GetTypeId(), ns3::BSLinkManager::ProcessRangingRequest(), and ns3::UplinkSchedulerRtps::Schedule().

TypeId ns3::BaseStationNetDevice::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::BaseStationNetDevice.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice

Attributes defined for this type:

  • BSScheduler: Downlink Scheduler for BS
  • InitialRangInterval: Time between Initial Ranging regions assigned by the BS. Maximum is 2s
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +50000000.0ns
    • Flags: construct write read
  • DcdInterval: Time between transmission of DCD messages. Maximum value is 10s.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • UcdInterval: Time between transmission of UCD messages. Maximum value is 10s.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • IntervalT8: Wait for DSA/DSC Acknowledge timeout. Maximum 300ms.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +50000000.0ns
    • Flags: construct write read
  • RangReqOppSize: The ranging opportunity size in symbols
  • BwReqOppSize: The bandwidth request opportunity size in symbols
  • MaxRangCorrectionRetries: Number of retries on contention Ranging Requests
  • SSManager: The ss manager attached to this device.
  • Scheduler: The BS scheduler attached to this device.
  • LinkManager: The link manager attached to this device.
  • UplinkScheduler: The uplink scheduler attached to this device.
  • BsIpcsPacketClassifier: The uplink IP packet classifier attached to this device.
  • ServiceFlowManager: The service flow manager attached to this device.

Attributes defined in parent class ns3::WimaxNetDevice:

TraceSources defined for this type:

  • BSTx: A packet has been received from higher layers and is being processed in preparation for queueing for transmission.
  • BSTxDrop: A packet has been dropped in the MAC layer before being queued for transmission.
  • BSPromiscRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a promiscuous trace,
  • BSRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a non-promiscuous trace,
  • BSRxDrop: A packet has been dropped in the MAC layer after it has been passed up from the physical layer.

TraceSources defined in parent class ns3::WimaxNetDevice:

  • Rx: Receive trace
  • Tx: Transmit trace

Reimplemented from ns3::WimaxNetDevice.

References GetBsClassifier(), GetBSScheduler(), GetBwReqOppSize(), GetDcdInterval(), GetInitialRangingInterval(), GetIntervalT8(), GetLinkManager(), GetMaxRangingCorrectionRetries(), GetRangReqOppSize(), GetSSManager(), GetUcdInterval(), GetUplinkScheduler(), ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetBsClassifier(), SetBSScheduler(), SetBwReqOppSize(), SetDcdInterval(), SetInitialRangingInterval(), SetIntervalT8(), SetLinkManager(), SetMaxRangingCorrectionRetries(), ns3::TypeId::SetParent(), SetRangReqOppSize(), SetSSManager(), SetUcdInterval(), and SetUplinkScheduler().

Time ns3::BaseStationNetDevice::GetUcdInterval ( void  ) const
Returns:
Time between transmission of UCD messages

Referenced by GetTypeId().

Ptr< UplinkScheduler > ns3::BaseStationNetDevice::GetUplinkScheduler ( void  ) const
Returns:
a pointer to the uplink scheduler installed on the device

Referenced by ns3::BsServiceFlowManager::AddMulticastServiceFlow(), GetTypeId(), and ns3::BSLinkManager::ProcessRangingRequest().

void ns3::BaseStationNetDevice::SetBsClassifier ( Ptr< IpcsClassifier classifier)
Parameters:
classifiera classifier to be installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetBSScheduler ( Ptr< BSScheduler bsSchedule)
Parameters:
bsSchedulethe downlink scheduler to be installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetBwReqOppSize ( uint8_t  bwReqOppSize)
Parameters:
bwReqOppSizeThe bandwidth request opportunity size in symbols

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetDcdInterval ( Time  dcdInterval)
Parameters:
dcdIntervalTime between transmission of DCD messages

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetInitialRangingInterval ( Time  initialRangInterval)
Parameters:
initialRangIntervalTime between Initial Ranging regions assigned by the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetIntervalT8 ( Time  interval)
Parameters:
intervalthe Wait for DSA/DSC Acknowledge timeout

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetLinkManager ( Ptr< BSLinkManager linkManager)
Parameters:
linkManagerThe link manager installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetMaxInvitedRangRetries ( uint8_t  maxInvitedRangRetries)
Parameters:
maxInvitedRangRetriesthe number of retries on contention Ranging
void ns3::BaseStationNetDevice::SetMaxRangingCorrectionRetries ( uint8_t  maxRangCorrectionRetries)
Parameters:
maxRangCorrectionRetriesthe number of retries on contention Ranging Requests

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetNrDlSymbols ( uint32_t  dlSymbols)
Parameters:
dlSymbolsthe number of symbols in the downlink sub-frame
void ns3::BaseStationNetDevice::SetNrUlSymbols ( uint32_t  ulSymbols)
Parameters:
ulSymbolsthe number of symbols in the uplink sub-frame
void ns3::BaseStationNetDevice::SetRangReqOppSize ( uint8_t  rangReqOppSize)
Parameters:
rangReqOppSizeThe ranging opportunity size in symbols

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetSSManager ( Ptr< SSManager ssManager)
Parameters:
ssManagerthe SS manager to be installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetUcdInterval ( Time  ucdInterval)
Parameters:
ucdIntervalthe Time between transmission of UCD messages

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetUplinkScheduler ( Ptr< UplinkScheduler ulScheduler)
Parameters:
ulSchedulerthe ulScheduler to be isnstalled on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::Start ( void  )
virtual

This method calls the virtual DoStart method on all the objects aggregated to this object. DoStart will be called only once over the lifetime of an object, just like DoDispose is called only once.

See also:
DoStart

Note: the code here is a bit tricky because we need to protect ourselves from modifications in the aggregate array while DoStart is called. The user's implementation of the DoStart method could call GetObject (which could reorder the array) and it could call AggregateObject which would add an object at the end of the array. To be safe, we restart iteration over the array whenever we call some user code, just in case.

Implements ns3::WimaxNetDevice.

References ns3::WimaxNetDevice::GetBandwidthManager(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxPhy::GetPsDuration(), ns3::WimaxNetDevice::GetRtg(), ns3::WimaxPhy::GetSymbolDuration(), ns3::WimaxNetDevice::GetTtg(), ns3::Simulator::ScheduleNow(), ns3::BSLinkManager::SelectDlChannel(), ns3::WimaxPhy::SetDataRates(), ns3::WimaxPhy::SetPhyParameters(), ns3::WimaxNetDevice::SetRtg(), ns3::WimaxPhy::SetSimplex(), and ns3::WimaxNetDevice::SetTtg().


The documentation for this class was generated from the following files: