base class for all MAC-level wifi objects.This class encapsulates all the low-level MAC functionality DCA, EDCA, etc) and all the high-level MAC functionality (association/disassociation state machines).
More...
Public Member Functions |
| virtual void | SetSlot (Time slotTime)=0 |
| virtual void | SetSifs (Time sifs)=0 |
| virtual void | SetEifsNoDifs (Time eifsNoDifs)=0 |
| virtual void | SetPifs (Time pifs)=0 |
| virtual void | SetCtsTimeout (Time ctsTimeout)=0 |
| virtual void | SetAckTimeout (Time ackTimeout)=0 |
| void | SetMaxPropagationDelay (Time delay) |
| virtual Time | GetPifs (void) const =0 |
| virtual Time | GetSifs (void) const =0 |
| virtual Time | GetSlot (void) const =0 |
| virtual Time | GetEifsNoDifs (void) const =0 |
| virtual Time | GetCtsTimeout (void) const =0 |
| virtual Time | GetAckTimeout (void) const =0 |
| Time | GetMsduLifetime (void) const |
| Time | GetMaxPropagationDelay (void) const |
| virtual Mac48Address | GetAddress (void) const =0 |
| virtual Ssid | GetSsid (void) const =0 |
| virtual void | SetAddress (Mac48Address address)=0 |
| virtual void | SetSsid (Ssid ssid)=0 |
| virtual Mac48Address | GetBssid (void) const =0 |
| virtual void | SetPromisc (void)=0 |
| | Sets the interface in promiscuous mode.
|
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to, Mac48Address from)=0 |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to)=0 |
|
virtual bool | SupportsSendFrom (void) const =0 |
| virtual void | SetWifiPhy (Ptr< WifiPhy > phy)=0 |
| virtual void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager)=0 |
| virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback)=0 |
| virtual void | SetLinkUpCallback (Callback< void > linkUp)=0 |
| virtual void | SetLinkDownCallback (Callback< void > linkDown)=0 |
|
virtual void | SetBasicBlockAckTimeout (Time blockAckTimeout) |
|
virtual Time | GetBasicBlockAckTimeout (void) const |
|
virtual void | SetCompressedBlockAckTimeout (Time blockAckTimeout) |
|
virtual Time | GetCompressedBlockAckTimeout (void) const |
| void | NotifyTx (Ptr< const Packet > packet) |
| void | NotifyTxDrop (Ptr< const Packet > packet) |
| void | NotifyRx (Ptr< const Packet > packet) |
| void | NotifyPromiscRx (Ptr< const Packet > packet) |
| void | NotifyRxDrop (Ptr< const Packet > packet) |
| void | ConfigureStandard (enum WifiPhyStandard standard) |
| virtual TypeId | GetInstanceTypeId (void) const |
| template<typename T > |
| Ptr< T > | GetObject (void) const |
| template<typename T > |
| Ptr< T > | GetObject (TypeId tid) const |
| void | Dispose (void) |
| void | AggregateObject (Ptr< Object > other) |
| AggregateIterator | GetAggregateIterator (void) const |
| void | Start (void) |
|
| SimpleRefCount (const SimpleRefCount &o) |
|
SimpleRefCount & | operator= (const SimpleRefCount &o) |
| void | Ref (void) const |
| void | Unref (void) const |
| uint32_t | GetReferenceCount (void) const |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| void | GetAttribute (std::string name, AttributeValue &value) const |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
| 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) |
base class for all MAC-level wifi objects.
This class encapsulates all the low-level MAC functionality DCA, EDCA, etc) and all the high-level MAC functionality (association/disassociation state machines).
- Parameters:
-
| packet | the packet to send. |
| to | the address to which the packet should be sent. |
| from | the address from which the packet should be sent. |
The packet should be enqueued in a tx queue, and should be dequeued as soon as the DCF function determines that access it granted to this MAC. The extra parameter "from" allows this device to operate in a bridged mode, forwarding received frames without altering the source address.
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::MeshWifiInterfaceMac.
Referenced by ns3::WifiNetDevice::Send(), and ns3::WifiNetDevice::SendFrom().
| TypeId ns3::WifiMac::GetTypeId |
( |
void |
| ) |
|
|
static |
This method returns the TypeId associated to ns3::WifiMac.
This object is accessible through the following paths with Config::Set and Config::Connect:
-
/NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Mac
Attributes defined for this type:
-
CtsTimeout: When this timeout expires, the RTS/CTS handshake has failed.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +75000.0ns
-
Flags: construct write read
-
AckTimeout: When this timeout expires, the DATA/ACK handshake has failed.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +75000.0ns
-
Flags: construct write read
-
BasicBlockAckTimeout: When this timeout expires, the BASIC_BLOCK_ACK_REQ/BASIC_BLOCK_ACK handshake has failed.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +281000.0ns
-
Flags: construct write read
-
CompressedBlockAckTimeout: When this timeout expires, the COMPRESSED_BLOCK_ACK_REQ/COMPRESSED_BLOCK_ACK handshake has failed.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +99000.0ns
-
Flags: construct write read
-
Sifs: The value of the SIFS constant.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +16000.0ns
-
Flags: construct write read
-
EifsNoDifs: The value of EIFS-DIFS
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +60000.0ns
-
Flags: construct write read
-
Slot: The duration of a Slot.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +9000.0ns
-
Flags: construct write read
-
Pifs: The value of the PIFS constant.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +25000.0ns
-
Flags: construct write read
-
MaxPropagationDelay: The maximum propagation delay. Unused for now.
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +3333.0ns
-
Flags: construct write read
-
Ssid: The ssid we want to belong to.
-
Set with class: SsidValue
-
Underlying type: Ssid
-
Initial value: default
-
Flags: construct write read
TraceSources defined for this type:
-
MacTx: A packet has been received from higher layers and is being processed in preparation for queueing for transmission.
-
MacTxDrop: A packet has been dropped in the MAC layer before being queued for transmission.
-
MacPromiscRx: 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,
-
MacRx: 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,
-
MacRxDrop: A packet has been dropped in the MAC layer after it has been passed up from the physical layer.
Reimplemented from ns3::Object.
Reimplemented in ns3::MeshWifiInterfaceMac, ns3::RegularWifiMac, ns3::StaWifiMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
References GetAckTimeout(), GetCtsTimeout(), GetEifsNoDifs(), GetPifs(), GetSifs(), GetSlot(), GetSsid(), ns3::MakeTraceSourceAccessor(), SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), ns3::TypeId::SetParent(), SetPifs(), SetSifs(), SetSlot(), and SetSsid().