Hold together all WiMAX-related objects in a NetDevice. More...
#include "wimax-net-device.h"
Public Member Functions | |
WimaxNetDevice () | |
~WimaxNetDevice () override | |
void | AddLinkChangeCallback (Callback< void > callback) override |
Add link change callback function. | |
void | Attach (Ptr< WimaxChannel > channel) |
Attach device to channel. | |
void | CreateDefaultConnections () |
Creates the initial ranging and broadcast connections. | |
void | DoDispose () override |
Destructor implementation. | |
virtual bool | Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)=0 |
Enqueue a packet. | |
void | ForwardDown (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType) |
Forward a packet down the stack. | |
void | ForwardUp (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest) |
Forward a packet to the next layer above the device. | |
Address | GetAddress () const override |
Get address of the device. | |
Ptr< BandwidthManager > | GetBandwidthManager () const |
Get the bandwidth manager on the device. | |
Address | GetBroadcast () const override |
Get broadcast address. | |
Ptr< WimaxConnection > | GetBroadcastConnection () const |
Get the broadcast connection. | |
Ptr< BurstProfileManager > | GetBurstProfileManager () const |
Get the burst profile manager. | |
Ptr< Channel > | GetChannel () const override |
Get the channel. | |
uint64_t | GetChannel (uint8_t index) const |
Get the channel object by index. | |
Ptr< ConnectionManager > | GetConnectionManager () const |
Get the connection manager of the device. | |
Dcd | GetCurrentDcd () const |
Get the current DCD. | |
Ucd | GetCurrentUcd () const |
Get the current UCD. | |
uint32_t | GetIfIndex () const override |
Get interface index. | |
Ptr< WimaxConnection > | GetInitialRangingConnection () const |
Get the initial ranging connection. | |
Mac48Address | GetMacAddress () const |
Get the MAC address. | |
uint16_t | GetMtu () const override |
Get MTU of the device. | |
virtual Address | GetMulticast () const |
Get multicast address. | |
Address | GetMulticast (Ipv4Address multicastGroup) const override |
Make and return a MAC multicast address using the provided multicast group. | |
Address | GetMulticast (Ipv6Address addr) const override |
Get the MAC multicast address corresponding to the IPv6 address provided. | |
virtual std::string | GetName () const |
Get device name. | |
Ptr< Node > | GetNode () const override |
Get node pointer. | |
uint32_t | GetNrFrames () const |
Get the number of frames. | |
Ptr< WimaxPhy > | GetPhy () const |
Get the physical layer object. | |
virtual Ptr< Channel > | GetPhyChannel () const |
Get the channel (this method is redundant with GetChannel()) | |
NetDevice::PromiscReceiveCallback | GetPromiscReceiveCallback () |
Get promiscuous receive callback function. | |
uint16_t | GetRtg () const |
Get receive/transmit transition gap. | |
uint8_t | GetState () const |
Get the device state. | |
uint16_t | GetTtg () const |
Get transmission/receive transition gap. | |
bool | IsBridge () const override |
Return true if the net device is acting as a bridge. | |
bool | IsBroadcast () const override |
Check if broadcast enabled. | |
bool | IsLinkUp () const override |
Check if link is up. | |
bool | IsMulticast () const override |
Check if multicast enabled. | |
bool | IsPointToPoint () const override |
Check if device is a point-to-point device. | |
bool | IsPromisc () |
Check if device is promiscuous. | |
virtual Address | MakeMulticastAddress (Ipv4Address multicastGroup) const |
Make multicast address. | |
bool | NeedsArp () const override |
Check if device needs ARP. | |
void | NotifyPromiscTrace (Ptr< Packet > p) |
Notify promiscuous trace of a packet arrival. | |
bool | Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber) override |
Send function. | |
bool | SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber) override |
Send a packet. | |
void | SetAddress (Address address) override |
Set address of the device. | |
void | SetBandwidthManager (Ptr< BandwidthManager > bandwidthManager) |
Set the bandwidth manager on the device. | |
void | SetBurstProfileManager (Ptr< BurstProfileManager > burstProfileManager) |
Set the burst profile manager. | |
void | SetChannel (Ptr< WimaxChannel > wimaxChannel) |
Set the channel object. | |
virtual void | SetConnectionManager (Ptr< ConnectionManager > connectionManager) |
Set the connection manager of the device. | |
void | SetCurrentDcd (Dcd dcd) |
Set the current DCD. | |
void | SetCurrentUcd (Ucd ucd) |
Set the current UCD. | |
void | SetIfIndex (const uint32_t index) override |
Set interface index. | |
virtual void | SetLinkChangeCallback (Callback< void > callback) |
Set link change callback function. | |
void | SetMacAddress (Mac48Address address) |
Set the MAC address. | |
bool | SetMtu (const uint16_t mtu) override |
Set MTU value for the device. | |
virtual void | SetName (const std::string name) |
Set device name. | |
void | SetNode (Ptr< Node > node) override |
Set node pointer. | |
void | SetNrFrames (uint32_t nrFrames) |
Set the number of frames. | |
void | SetPhy (Ptr< WimaxPhy > phy) |
Set the physical layer object. | |
void | SetPromiscReceiveCallback (PromiscReceiveCallback cb) override |
Set promiscuous receive callback function. | |
void | SetReceiveCallback () |
Set receive callback function. | |
void | SetReceiveCallback (NetDevice::ReceiveCallback cb) override |
Set receive callback function. | |
void | SetRtg (uint16_t rtg) |
Set receive/transmit transition gap. | |
void | SetState (uint8_t state) |
Set the device state. | |
void | SetTtg (uint16_t ttg) |
Set transmission/receive transition gap. | |
virtual void | Start ()=0 |
Start function. | |
virtual void | Stop ()=0 |
Stop function. | |
bool | SupportsSendFrom () const override |
Check if device supports the SendFrom method. | |
Public Member Functions inherited from ns3::NetDevice | |
~NetDevice () override | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::NetDevice | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Public Attributes | |
TracedCallback< Ptr< const Packet >, const Mac48Address & > | m_traceRx |
TracedCallback< Ptr< const Packet >, const Mac48Address & > | m_traceTx |
Static Public Attributes | |
static uint8_t | m_direction = ~0 |
downlink or uplink | |
static Time | m_frameStartTime = Seconds(0) |
temp, to determine the frame start time at SS side, shall actually be determined by frame start preamble | |
Private Member Functions | |
WimaxNetDevice (const WimaxNetDevice &) | |
copy constructor (disabled) | |
virtual Ptr< WimaxChannel > | DoGetChannel () const |
Get the channel. | |
virtual void | DoReceive (Ptr< Packet > packet)=0 |
Receive a packet. | |
virtual bool | DoSend (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber)=0 |
Send a packet. | |
void | InitializeChannels () |
Initialize channels function. | |
WimaxNetDevice & | operator= (const WimaxNetDevice &) |
assignment operator (disabled) | |
void | Receive (Ptr< const PacketBurst > burst) |
Receive a packet burst. | |
Private Attributes | |
Mac48Address | m_address |
MAC address. | |
Ptr< BandwidthManager > | m_bandwidthManager |
badnwidth manager | |
Ptr< WimaxConnection > | m_broadcastConnection |
broadcast connection | |
Ptr< BurstProfileManager > | m_burstProfileManager |
burst profile manager | |
Ptr< ConnectionManager > | m_connectionManager |
connection manager | |
Dcd | m_currentDcd |
DCD. | |
Ucd | m_currentUcd |
UCD. | |
std::vector< uint64_t > | m_dlChannels |
not sure if it shall be included here | |
NetDevice::ReceiveCallback | m_forwardUp |
forward up callback function | |
uint32_t | m_ifIndex |
IF index. | |
Ptr< WimaxConnection > | m_initialRangingConnection |
initial rnaging connection | |
Callback< void > | m_linkChange |
link change callback | |
bool | m_linkUp |
link up? | |
uint16_t | m_mtu |
MTU. | |
std::string | m_name |
service name | |
Ptr< Node > | m_node |
the node | |
Ptr< WimaxPhy > | m_phy |
the phy | |
NetDevice::PromiscReceiveCallback | m_promiscRx |
promiscuous receive callback function | |
uint16_t | m_rtg |
length of RTG in units of PSs | |
uint8_t | m_state |
state | |
uint32_t | m_symbolIndex |
symbol index | |
uint16_t | m_ttg |
length of TTG in units of PSs | |
Static Private Attributes | |
static const uint16_t | DEFAULT_MSDU_SIZE = 1400 |
recommended by wimax forum. | |
static uint32_t | m_nrFrames = 0 |
temp, shall be in BS. | |
static const uint16_t | MAX_MSDU_SIZE = 1500 |
Maximum MSDU size. | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Hold together all WiMAX-related objects in a NetDevice.
This class holds together ns3::WimaxPhy, ns3::WimaxConnection, ns3::ConnectionManager, ns3::BurstProfileManager, and ns3::BandwidthManager.
ns3::WimaxNetDevice is accessible through the following paths with Config::Set and Config::Connect:
Group: Wimax
Size of this type is 432 bytes (on a 64-bit architecture).
Definition at line 59 of file wimax-net-device.h.
typedef void(* ns3::WimaxNetDevice::TxRxTracedCallback) (Ptr< const Packet > packet, const Mac48Address &mac) |
TracedCallback signature for packet and Mac48Address.
[in] | packet | The packet. |
[in] | mac | The Mac48Address. |
const Mac48Address &
argument is deprecated and will be changed to Mac48Address
in a future release. The TracedCallback signature will then match Packet::Mac48Address
and this typedef can be removed. Definition at line 438 of file wimax-net-device.h.
Direction enumeration.
Enumerator | |
---|---|
DIRECTION_DOWNLINK | |
DIRECTION_UPLINK |
Definition at line 63 of file wimax-net-device.h.
RangingStatus enumeration.
Enumerator | |
---|---|
RANGING_STATUS_EXPIRED | |
RANGING_STATUS_CONTINUE | |
RANGING_STATUS_ABORT | |
RANGING_STATUS_SUCCESS |
Definition at line 70 of file wimax-net-device.h.
ns3::WimaxNetDevice::WimaxNetDevice | ( | ) |
Definition at line 131 of file wimax-net-device.cc.
References ns3::CreateObject(), InitializeChannels(), m_bandwidthManager, m_burstProfileManager, m_connectionManager, m_direction, m_frameStartTime, m_nrFrames, and ns3::Seconds().
|
override |
Definition at line 146 of file wimax-net-device.cc.
|
private |
copy constructor (disabled)
|
overridevirtual |
Add link change callback function.
callback | the link change callback function |
Implements ns3::NetDevice.
Definition at line 629 of file wimax-net-device.cc.
References NS_FATAL_ERROR.
void ns3::WimaxNetDevice::Attach | ( | Ptr< WimaxChannel > | channel | ) |
Attach device to channel.
channel | channel to attach |
Definition at line 343 of file wimax-net-device.cc.
References m_phy.
void ns3::WimaxNetDevice::CreateDefaultConnections | ( | ) |
Creates the initial ranging and broadcast connections.
Definition at line 496 of file wimax-net-device.cc.
References ns3::Cid::BROADCAST, ns3::Cid::Broadcast(), ns3::CreateObject(), ns3::Cid::INITIAL_RANGING, ns3::Cid::InitialRanging(), m_broadcastConnection, and m_initialRangingConnection.
Referenced by ns3::BaseStationNetDevice::Start(), and ns3::SubscriberStationNetDevice::Start().
|
overridevirtual |
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 overridden 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 151 of file wimax-net-device.cc.
References ns3::Object::DoDispose(), m_bandwidthManager, m_broadcastConnection, m_burstProfileManager, m_connectionManager, m_initialRangingConnection, m_node, and m_phy.
Referenced by ns3::BaseStationNetDevice::DoDispose(), and ns3::SubscriberStationNetDevice::DoDispose().
|
privatevirtual |
Get the channel.
Definition at line 517 of file wimax-net-device.cc.
References m_phy.
Referenced by GetChannel(), and GetPhyChannel().
Receive a packet.
packet | the packet received |
Implemented in ns3::BaseStationNetDevice, and ns3::SubscriberStationNetDevice.
Referenced by Receive().
|
privatepure virtual |
Send a packet.
packet | the packet |
source | the source MAC address |
dest | the destination MAC address |
protocolNumber | the protocol number |
Implemented in ns3::BaseStationNetDevice, and ns3::SubscriberStationNetDevice.
Referenced by Send(), and SendFrom().
|
pure virtual |
Enqueue a packet.
packet | the packet |
hdrType | the header type |
connection | the wimax connection |
Implemented in ns3::BaseStationNetDevice, and ns3::SubscriberStationNetDevice.
void ns3::WimaxNetDevice::ForwardDown | ( | Ptr< PacketBurst > | burst, |
WimaxPhy::ModulationType | modulationType ) |
Forward a packet down the stack.
burst | the packet burst |
modulationType | the modulation type |
Definition at line 570 of file wimax-net-device.cc.
References m_direction, and m_phy.
Referenced by ns3::SubscriberStationNetDevice::SendBurst(), and ns3::BaseStationNetDevice::SendBursts().
void ns3::WimaxNetDevice::ForwardUp | ( | Ptr< Packet > | packet, |
const Mac48Address & | source, | ||
const Mac48Address & | dest ) |
Forward a packet to the next layer above the device.
packet | the packet |
source | the source MAC address |
dest | the destination MAC address |
Definition at line 334 of file wimax-net-device.cc.
References ns3::LlcSnapHeader::GetType(), m_forwardUp, and m_traceRx.
Referenced by ns3::BaseStationNetDevice::DoReceive(), and ns3::SubscriberStationNetDevice::DoReceive().
|
overridevirtual |
Get address of the device.
Implements ns3::NetDevice.
Definition at line 400 of file wimax-net-device.cc.
References m_address.
Referenced by Send().
Ptr< BandwidthManager > ns3::WimaxNetDevice::GetBandwidthManager | ( | ) | const |
Get the bandwidth manager on the device.
Definition at line 484 of file wimax-net-device.cc.
References m_bandwidthManager.
Referenced by ns3::BaseStationNetDevice::DoReceive(), GetTypeId(), ns3::SubscriberStationNetDevice::ProcessUlMap(), and ns3::BaseStationNetDevice::Start().
|
overridevirtual |
Get broadcast address.
Implements ns3::NetDevice.
Definition at line 261 of file wimax-net-device.cc.
References ns3::Mac48Address::GetBroadcast().
Ptr< WimaxConnection > ns3::WimaxNetDevice::GetBroadcastConnection | ( | ) | const |
Get the broadcast connection.
Definition at line 430 of file wimax-net-device.cc.
References m_broadcastConnection.
Referenced by ns3::BaseStationNetDevice::CreateDescriptorMessages(), ns3::BaseStationNetDevice::CreateMapMessages(), ns3::SubscriberStationNetDevice::DoReceive(), ns3::BaseStationNetDevice::GetConnection(), ns3::SubscriberStationNetDevice::ProcessUlMap(), and ns3::BaseStationNetDevice::SendBursts().
Ptr< BurstProfileManager > ns3::WimaxNetDevice::GetBurstProfileManager | ( | ) | const |
Get the burst profile manager.
Definition at line 472 of file wimax-net-device.cc.
References m_burstProfileManager.
Referenced by GetTypeId(), ns3::SubscriberStationNetDevice::SendBurst(), ns3::BaseStationNetDevice::SendBursts(), ns3::BaseStationNetDevice::SetDlBurstProfiles(), and ns3::BaseStationNetDevice::SetUlBurstProfiles().
Get the channel.
Implements ns3::NetDevice.
Definition at line 214 of file wimax-net-device.cc.
References DoGetChannel().
uint64_t ns3::WimaxNetDevice::GetChannel | ( | uint8_t | index | ) | const |
Get the channel object by index.
index | the channel index |
Definition at line 370 of file wimax-net-device.cc.
References m_dlChannels.
Ptr< ConnectionManager > ns3::WimaxNetDevice::GetConnectionManager | ( | ) | const |
Get the connection manager of the device.
Definition at line 460 of file wimax-net-device.cc.
References m_connectionManager.
Referenced by ns3::BaseStationNetDevice::DoReceive(), ns3::SubscriberStationNetDevice::DoReceive(), ns3::BaseStationNetDevice::GetConnection(), GetTypeId(), and ns3::BaseStationNetDevice::Start().
Dcd ns3::WimaxNetDevice::GetCurrentDcd | ( | ) | const |
Get the current DCD.
Definition at line 442 of file wimax-net-device.cc.
References m_currentDcd.
Referenced by ns3::SubscriberStationNetDevice::ProcessDcd().
Ucd ns3::WimaxNetDevice::GetCurrentUcd | ( | ) | const |
Get the current UCD.
Definition at line 454 of file wimax-net-device.cc.
References m_currentUcd.
Referenced by ns3::SubscriberStationNetDevice::ProcessUcd(), and ns3::SubscriberStationNetDevice::ProcessUlMap().
|
overridevirtual |
Get interface index.
Implements ns3::NetDevice.
Definition at line 208 of file wimax-net-device.cc.
References m_ifIndex.
Referenced by ns3::SubscriberStationNetDevice::SetBasicConnection(), and ns3::SubscriberStationNetDevice::SetPrimaryConnection().
Ptr< WimaxConnection > ns3::WimaxNetDevice::GetInitialRangingConnection | ( | ) | const |
Get the initial ranging connection.
Definition at line 424 of file wimax-net-device.cc.
References m_initialRangingConnection.
Referenced by ns3::SubscriberStationNetDevice::DoReceive(), ns3::BaseStationNetDevice::GetConnection(), and ns3::BaseStationNetDevice::SendBursts().
Mac48Address ns3::WimaxNetDevice::GetMacAddress | ( | ) | const |
Get the MAC address.
Definition at line 406 of file wimax-net-device.cc.
References m_address.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), ns3::BaseStationNetDevice::CreateDlMap(), ns3::SubscriberStationNetDevice::DoReceive(), ns3::SubscriberStationNetDevice::DoSend(), Receive(), and ns3::SubscriberStationNetDevice::SendBurst().
|
overridevirtual |
Get MTU of the device.
Implements ns3::NetDevice.
Definition at line 237 of file wimax-net-device.cc.
References m_mtu.
Referenced by GetTypeId().
|
virtual |
Get multicast address.
Definition at line 273 of file wimax-net-device.cc.
Referenced by MakeMulticastAddress().
|
overridevirtual |
Make and return a MAC multicast address using the provided multicast group.
RFC 1112 says that an Ipv4 host group address is mapped to an Ethernet multicast address by placing the low-order 23-bits of the IP address into the low-order 23 bits of the Ethernet multicast address 01-00-5E-00-00-00 (hex). Similar RFCs exist for Ipv6 and Eui64 mappings. This method performs the multicast address creation function appropriate to the underlying MAC address of the device. This MAC address is encapsulated in an abstract Address to avoid dependencies on the exact MAC address format.
In the case of net devices that do not support multicast, clients are expected to test NetDevice::IsMulticast and avoid attempting to map multicast packets. Subclasses of NetDevice that do support multicasting are expected to override this method and provide an implementation appropriate to the particular device.
multicastGroup | The IP address for the multicast group destination of the packet. |
Implements ns3::NetDevice.
Definition at line 603 of file wimax-net-device.cc.
References ns3::Mac48Address::GetMulticast(), NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
overridevirtual |
Get the MAC multicast address corresponding to the IPv6 address provided.
addr | IPv6 address |
Implements ns3::NetDevice.
Definition at line 620 of file wimax-net-device.cc.
References ns3::Mac48Address::GetMulticast(), and NS_LOG_LOGIC.
|
virtual |
Get device name.
Definition at line 196 of file wimax-net-device.cc.
References m_name.
Get node pointer.
Implements ns3::NetDevice.
Definition at line 310 of file wimax-net-device.cc.
References m_node.
Referenced by ns3::SubscriberStationNetDevice::SetBasicConnection(), and ns3::SubscriberStationNetDevice::SetPrimaryConnection().
uint32_t ns3::WimaxNetDevice::GetNrFrames | ( | ) | const |
Get the number of frames.
Definition at line 382 of file wimax-net-device.cc.
References m_nrFrames.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), ns3::BaseStationNetDevice::StartDlSubFrame(), and ns3::BaseStationNetDevice::StartFrame().
Get the physical layer object.
Definition at line 355 of file wimax-net-device.cc.
References m_phy.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), ns3::BaseStationNetDevice::CreateUcd(), ns3::SubscriberStationNetDevice::GetTimeToAllocation(), GetTypeId(), ns3::SubscriberStationNetDevice::ProcessDcd(), ns3::SubscriberStationNetDevice::ProcessUlMap(), ns3::BaseStationNetDevice::SendBursts(), ns3::BaseStationNetDevice::Start(), ns3::SubscriberStationNetDevice::Start(), and ns3::BaseStationNetDevice::StartFrame().
Get the channel (this method is redundant with GetChannel())
Definition at line 220 of file wimax-net-device.cc.
References DoGetChannel().
Referenced by GetTypeId().
NetDevice::PromiscReceiveCallback ns3::WimaxNetDevice::GetPromiscReceiveCallback | ( | ) |
Get promiscuous receive callback function.
uint16_t ns3::WimaxNetDevice::GetRtg | ( | ) | const |
Get receive/transmit transition gap.
Definition at line 184 of file wimax-net-device.cc.
References m_rtg.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), ns3::BaseStationNetDevice::EndUlSubFrame(), GetTypeId(), ns3::BaseStationNetDevice::Start(), and ns3::BaseStationNetDevice::StartFrame().
uint8_t ns3::WimaxNetDevice::GetState | ( | ) | const |
Get the device state.
Definition at line 418 of file wimax-net-device.cc.
References m_state.
Referenced by ns3::SubscriberStationNetDevice::DoReceive(), ns3::SubscriberStationNetDevice::IsRegistered(), ns3::SubscriberStationNetDevice::ProcessUlMap(), and ns3::SubscriberStationNetDevice::SetTimer().
uint16_t ns3::WimaxNetDevice::GetTtg | ( | ) | const |
Get transmission/receive transition gap.
Definition at line 172 of file wimax-net-device.cc.
References m_ttg.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), ns3::BaseStationNetDevice::EndDlSubFrame(), GetTypeId(), ns3::BaseStationNetDevice::Start(), and ns3::BaseStationNetDevice::StartFrame().
|
static |
Get the type ID.
Definition at line 45 of file wimax-net-device.cc.
References DEFAULT_MSDU_SIZE, GetBandwidthManager(), GetBurstProfileManager(), GetConnectionManager(), GetMtu(), GetPhy(), GetPhyChannel(), GetRtg(), GetTtg(), m_broadcastConnection, m_initialRangingConnection, m_traceRx, m_traceTx, ns3::MakePointerAccessor(), ns3::MakePointerChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MakeUintegerChecker(), MAX_MSDU_SIZE, SetBandwidthManager(), SetBurstProfileManager(), SetChannel(), SetConnectionManager(), SetMtu(), ns3::TypeId::SetParent(), SetPhy(), SetRtg(), and SetTtg().
|
private |
Initialize channels function.
Definition at line 578 of file wimax-net-device.cc.
References m_dlChannels.
Referenced by WimaxNetDevice().
|
overridevirtual |
Return true if the net device is acting as a bridge.
Implements ns3::NetDevice.
Definition at line 596 of file wimax-net-device.cc.
References NS_LOG_FUNCTION_NOARGS.
|
overridevirtual |
Check if broadcast enabled.
Implements ns3::NetDevice.
Definition at line 255 of file wimax-net-device.cc.
|
overridevirtual |
Check if link is up.
Implements ns3::NetDevice.
Definition at line 243 of file wimax-net-device.cc.
|
overridevirtual |
Check if multicast enabled.
Implements ns3::NetDevice.
Definition at line 267 of file wimax-net-device.cc.
|
overridevirtual |
Check if device is a point-to-point device.
Implements ns3::NetDevice.
Definition at line 285 of file wimax-net-device.cc.
bool ns3::WimaxNetDevice::IsPromisc | ( | ) |
Check if device is promiscuous.
Definition at line 552 of file wimax-net-device.cc.
References ns3::Callback< R, UArgs >::IsNull(), and m_promiscRx.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
virtual |
Make multicast address.
multicastGroup | the IPv4 address |
Definition at line 279 of file wimax-net-device.cc.
References GetMulticast().
|
overridevirtual |
Check if device needs ARP.
Implements ns3::NetDevice.
Definition at line 316 of file wimax-net-device.cc.
Notify promiscuous trace of a packet arrival.
p | the packet |
Definition at line 558 of file wimax-net-device.cc.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
private |
assignment operator (disabled)
|
private |
Receive a packet burst.
burst | the packet burst |
Definition at line 504 of file wimax-net-device.cc.
References DoReceive(), GetMacAddress(), and NS_LOG_DEBUG.
Referenced by SetReceiveCallback().
|
overridevirtual |
Send function.
packet | the packet |
dest | the destination address |
protocolNumber | the protocol number |
Implements ns3::NetDevice.
Definition at line 291 of file wimax-net-device.cc.
References ns3::Mac48Address::ConvertFrom(), DoSend(), GetAddress(), m_traceTx, and ns3::LlcSnapHeader::SetType().
|
overridevirtual |
Send a packet.
packet | the packet |
source | the source address |
dest | the destination address |
protocolNumber | the protocol number |
Implements ns3::NetDevice.
Definition at line 529 of file wimax-net-device.cc.
References ns3::Mac48Address::ConvertFrom(), DoSend(), m_traceTx, and ns3::LlcSnapHeader::SetType().
|
overridevirtual |
Set address of the device.
address | the address |
Implements ns3::NetDevice.
Definition at line 388 of file wimax-net-device.cc.
References ns3::Mac48Address::ConvertFrom(), and m_address.
void ns3::WimaxNetDevice::SetBandwidthManager | ( | Ptr< BandwidthManager > | bandwidthManager | ) |
Set the bandwidth manager on the device.
bandwidthManager | the bandwidth manager to be installed on the device |
Definition at line 490 of file wimax-net-device.cc.
References m_bandwidthManager.
Referenced by GetTypeId().
void ns3::WimaxNetDevice::SetBurstProfileManager | ( | Ptr< BurstProfileManager > | burstProfileManager | ) |
Set the burst profile manager.
burstProfileManager | the burst profile manager to be installed on the device |
Definition at line 478 of file wimax-net-device.cc.
References m_burstProfileManager.
Referenced by GetTypeId().
void ns3::WimaxNetDevice::SetChannel | ( | Ptr< WimaxChannel > | wimaxChannel | ) |
Set the channel object.
wimaxChannel | the channel to be used |
Definition at line 361 of file wimax-net-device.cc.
References m_phy.
Referenced by GetTypeId().
|
virtual |
Set the connection manager of the device.
connectionManager | the connection manager to be installed in the device |
Definition at line 466 of file wimax-net-device.cc.
References m_connectionManager.
Referenced by GetTypeId().
void ns3::WimaxNetDevice::SetCurrentDcd | ( | Dcd | dcd | ) |
Set the current DCD.
dcd | the DCD |
Definition at line 436 of file wimax-net-device.cc.
References m_currentDcd.
Referenced by ns3::BaseStationNetDevice::CreateDcd(), and ns3::SubscriberStationNetDevice::ProcessDcd().
void ns3::WimaxNetDevice::SetCurrentUcd | ( | Ucd | ucd | ) |
Set the current UCD.
ucd | the UCD |
Definition at line 448 of file wimax-net-device.cc.
References m_currentUcd.
Referenced by ns3::BaseStationNetDevice::CreateUcd(), and ns3::SubscriberStationNetDevice::ProcessUcd().
|
overridevirtual |
Set interface index.
index | the index |
Implements ns3::NetDevice.
Definition at line 202 of file wimax-net-device.cc.
References m_ifIndex.
|
virtual |
Set link change callback function.
callback | the callback function |
Definition at line 249 of file wimax-net-device.cc.
References m_linkChange.
void ns3::WimaxNetDevice::SetMacAddress | ( | Mac48Address | address | ) |
Set the MAC address.
address | the mac address of the net device |
Definition at line 394 of file wimax-net-device.cc.
References m_address.
|
overridevirtual |
Set MTU value for the device.
mtu | the MTU |
Implements ns3::NetDevice.
Definition at line 226 of file wimax-net-device.cc.
References m_mtu, and MAX_MSDU_SIZE.
Referenced by GetTypeId().
|
virtual |
Set device name.
name | the device name |
Definition at line 190 of file wimax-net-device.cc.
References m_name.
Set node pointer.
node | the node pointer |
Implements ns3::NetDevice.
Definition at line 304 of file wimax-net-device.cc.
References m_node.
Referenced by ns3::BaseStationNetDevice::BaseStationNetDevice(), ns3::BaseStationNetDevice::BaseStationNetDevice(), and ns3::SubscriberStationNetDevice::SubscriberStationNetDevice().
void ns3::WimaxNetDevice::SetNrFrames | ( | uint32_t | nrFrames | ) |
Set the number of frames.
nrFrames | the number of frames |
Definition at line 376 of file wimax-net-device.cc.
References m_nrFrames.
Referenced by ns3::BaseStationNetDevice::StartDlSubFrame().
Set the physical layer object.
phy | the phy layer object to use |
Definition at line 349 of file wimax-net-device.cc.
References m_phy.
Referenced by ns3::BaseStationNetDevice::BaseStationNetDevice(), ns3::BaseStationNetDevice::BaseStationNetDevice(), ns3::SubscriberStationNetDevice::SubscriberStationNetDevice(), and GetTypeId().
|
overridevirtual |
Set promiscuous receive callback function.
cb | the promiscuous mode callback |
Implements ns3::NetDevice.
Definition at line 546 of file wimax-net-device.cc.
References m_promiscRx.
void ns3::WimaxNetDevice::SetReceiveCallback | ( | ) |
Set receive callback function.
Definition at line 523 of file wimax-net-device.cc.
References m_phy, ns3::MakeCallback(), and Receive().
Referenced by ns3::BaseStationNetDevice::Start(), and ns3::SubscriberStationNetDevice::Start().
|
overridevirtual |
Set receive callback function.
cb | the receive callback function |
Implements ns3::NetDevice.
Definition at line 328 of file wimax-net-device.cc.
References m_forwardUp.
void ns3::WimaxNetDevice::SetRtg | ( | uint16_t | rtg | ) |
Set receive/transmit transition gap.
rtg | receive/transmit transition gap |
Definition at line 178 of file wimax-net-device.cc.
References m_rtg.
Referenced by GetTypeId(), and ns3::BaseStationNetDevice::Start().
void ns3::WimaxNetDevice::SetState | ( | uint8_t | state | ) |
Set the device state.
state | the state |
Definition at line 412 of file wimax-net-device.cc.
References m_state.
Referenced by ns3::SubscriberStationNetDevice::DoReceive(), ns3::BaseStationNetDevice::EndDlSubFrame(), ns3::BaseStationNetDevice::EndUlSubFrame(), ns3::BaseStationNetDevice::StartDlSubFrame(), ns3::BaseStationNetDevice::StartUlSubFrame(), and ns3::SubscriberStationNetDevice::Stop().
void ns3::WimaxNetDevice::SetTtg | ( | uint16_t | ttg | ) |
Set transmission/receive transition gap.
ttg | transmit/receive transition gap |
Definition at line 166 of file wimax-net-device.cc.
References m_ttg.
Referenced by GetTypeId(), and ns3::BaseStationNetDevice::Start().
|
pure virtual |
Start function.
Implemented in ns3::BaseStationNetDevice, and ns3::SubscriberStationNetDevice.
|
pure virtual |
Stop function.
Implemented in ns3::BaseStationNetDevice, and ns3::SubscriberStationNetDevice.
|
overridevirtual |
Check if device supports the SendFrom method.
Implements ns3::NetDevice.
Definition at line 564 of file wimax-net-device.cc.
|
staticprivate |
recommended by wimax forum.
Definition at line 484 of file wimax-net-device.h.
Referenced by GetTypeId().
|
private |
MAC address.
Definition at line 534 of file wimax-net-device.h.
Referenced by GetAddress(), GetMacAddress(), SetAddress(), and SetMacAddress().
|
private |
badnwidth manager
Definition at line 551 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), DoDispose(), GetBandwidthManager(), and SetBandwidthManager().
|
private |
broadcast connection
Definition at line 547 of file wimax-net-device.h.
Referenced by CreateDefaultConnections(), DoDispose(), GetBroadcastConnection(), and GetTypeId().
|
private |
burst profile manager
Definition at line 550 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), DoDispose(), GetBurstProfileManager(), and SetBurstProfileManager().
|
private |
connection manager
Definition at line 549 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), DoDispose(), GetConnectionManager(), and SetConnectionManager().
|
private |
DCD.
Definition at line 543 of file wimax-net-device.h.
Referenced by GetCurrentDcd(), and SetCurrentDcd().
|
private |
UCD.
Definition at line 544 of file wimax-net-device.h.
Referenced by GetCurrentUcd(), and SetCurrentUcd().
|
static |
downlink or uplink
Definition at line 270 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), ForwardDown(), ns3::BaseStationNetDevice::StartDlSubFrame(), and ns3::BaseStationNetDevice::StartUlSubFrame().
|
private |
not sure if it shall be included here
Definition at line 532 of file wimax-net-device.h.
Referenced by GetChannel(), and InitializeChannels().
|
private |
forward up callback function
Definition at line 518 of file wimax-net-device.h.
Referenced by ForwardUp(), and SetReceiveCallback().
temp, to determine the frame start time at SS side, shall actually be determined by frame start preamble
Definition at line 272 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), ns3::SubscriberStationNetDevice::GetTimeToAllocation(), ns3::BaseStationNetDevice::StartDlSubFrame(), and ns3::BaseStationNetDevice::StartFrame().
|
private |
IF index.
Definition at line 521 of file wimax-net-device.h.
Referenced by GetIfIndex(), and SetIfIndex().
|
private |
initial rnaging connection
Definition at line 546 of file wimax-net-device.h.
Referenced by CreateDefaultConnections(), DoDispose(), GetInitialRangingConnection(), and GetTypeId().
|
private |
link change callback
Definition at line 524 of file wimax-net-device.h.
Referenced by SetLinkChangeCallback().
|
private |
|
mutableprivate |
|
private |
service name
Definition at line 522 of file wimax-net-device.h.
the node
Definition at line 516 of file wimax-net-device.h.
Referenced by DoDispose(), GetNode(), and SetNode().
|
staticprivate |
temp, shall be in BS.
defined here to allow SS to access. SS shall actually determine it from DLFP, shall be moved to BS after DLFP is implemented
Definition at line 529 of file wimax-net-device.h.
Referenced by WimaxNetDevice(), GetNrFrames(), and SetNrFrames().
the phy
Definition at line 517 of file wimax-net-device.h.
Referenced by Attach(), DoDispose(), DoGetChannel(), ForwardDown(), GetPhy(), IsLinkUp(), SetChannel(), SetPhy(), and SetReceiveCallback().
|
private |
promiscuous receive callback function
Definition at line 519 of file wimax-net-device.h.
Referenced by IsPromisc(), and SetPromiscReceiveCallback().
|
private |
length of RTG in units of PSs
Definition at line 541 of file wimax-net-device.h.
|
private |
|
private |
symbol index
Definition at line 536 of file wimax-net-device.h.
TracedCallback<Ptr<const Packet>, const Mac48Address&> ns3::WimaxNetDevice::m_traceRx |
const Mac48Address &
argument is deprecated and will be changed to Mac48Address
in a future release. The TracedCallback signature will then match Packet::Mac48Address
and this typedef can be removed. Definition at line 446 of file wimax-net-device.h.
Referenced by ForwardUp(), and GetTypeId().
TracedCallback<Ptr<const Packet>, const Mac48Address&> ns3::WimaxNetDevice::m_traceTx |
const Mac48Address &
argument is deprecated and will be changed to Mac48Address
in a future release. The TracedCallback signature will then match Packet::Mac48Address
and this typedef can be removed. Definition at line 454 of file wimax-net-device.h.
Referenced by GetTypeId(), Send(), and SendFrom().
|
private |
length of TTG in units of PSs
Definition at line 539 of file wimax-net-device.h.
|
staticprivate |
Maximum MSDU size.
Definition at line 482 of file wimax-net-device.h.
Referenced by GetTypeId(), and SetMtu().