|
ns-3
|
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...
#include <wifi-mac.h>


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) |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| This method returns the TypeId associated to ns3::WifiMac. | |
Protected Member Functions | |
| void | ConfigureDcf (Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac) |
| void | ConfigureCCHDcf (Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac) |
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).
| void ns3::WifiMac::ConfigureStandard | ( | enum WifiPhyStandard | standard | ) |
| standard | the wifi standard to be configured |
References NS_ASSERT, ns3::WIFI_PHY_STANDARD_80211_10MHZ, ns3::WIFI_PHY_STANDARD_80211_5MHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211p_CCH, ns3::WIFI_PHY_STANDARD_80211p_SCH, and ns3::WIFI_PHY_STANDARD_holland.
| virtual void ns3::WifiMac::Enqueue | ( | Ptr< const Packet > | packet, |
| Mac48Address | to, | ||
| Mac48Address | from | ||
| ) | [pure virtual] |
| 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().
| virtual void ns3::WifiMac::Enqueue | ( | Ptr< const Packet > | packet, |
| Mac48Address | to | ||
| ) | [pure virtual] |
| packet | the packet to send. |
| to | the address to 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.
Implemented in ns3::RegularWifiMac, ns3::MeshWifiInterfaceMac, ns3::ApWifiMac, ns3::AdhocWifiMac, and ns3::StaWifiMac.
| virtual Time ns3::WifiMac::GetAckTimeout | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual Mac48Address ns3::WifiMac::GetAddress | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
Referenced by ns3::WifiNetDevice::GetAddress().
| virtual Mac48Address ns3::WifiMac::GetBssid | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
| virtual Time ns3::WifiMac::GetCtsTimeout | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual Time ns3::WifiMac::GetEifsNoDifs | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| Time ns3::WifiMac::GetMaxPropagationDelay | ( | void | ) | const |
Unused for now.
| Time ns3::WifiMac::GetMsduLifetime | ( | void | ) | const |
Unused for now.
References ns3::Seconds().
| virtual Time ns3::WifiMac::GetPifs | ( | void | ) | const [pure virtual] |
| virtual Time ns3::WifiMac::GetSifs | ( | void | ) | const [pure virtual] |
| virtual Time ns3::WifiMac::GetSlot | ( | void | ) | const [pure virtual] |
| virtual Ssid ns3::WifiMac::GetSsid | ( | void | ) | const [pure virtual] |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| 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:
Attributes defined for this type:
TraceSources defined for this type:
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().
| void ns3::WifiMac::NotifyPromiscRx | ( | Ptr< const Packet > | packet | ) |
Public method used to fire a MacPromiscRx trace. Implemented for encapsulation purposes.
| void ns3::WifiMac::NotifyRx | ( | Ptr< const Packet > | packet | ) |
Public method used to fire a MacRx trace. Implemented for encapsulation purposes.
| void ns3::WifiMac::NotifyRxDrop | ( | Ptr< const Packet > | packet | ) |
Public method used to fire a MacRxDrop trace. Implemented for encapsulation purposes.
| void ns3::WifiMac::NotifyTx | ( | Ptr< const Packet > | packet | ) |
Public method used to fire a MacTx trace. Implemented for encapsulation purposes.
Referenced by ns3::WifiNetDevice::Send(), and ns3::WifiNetDevice::SendFrom().
| void ns3::WifiMac::NotifyTxDrop | ( | Ptr< const Packet > | packet | ) |
Public method used to fire a MacTxDrop trace. Implemented for encapsulation purposes.
Referenced by ns3::StaWifiMac::Enqueue().
| virtual void ns3::WifiMac::SetAckTimeout | ( | Time | ackTimeout | ) | [pure virtual] |
| ackTimeout | the duration of an ACK timeout. |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual void ns3::WifiMac::SetAddress | ( | Mac48Address | address | ) | [pure virtual] |
| address | the current address of this MAC layer. |
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
Referenced by ns3::WifiNetDevice::SetAddress().
| virtual void ns3::WifiMac::SetCtsTimeout | ( | Time | ctsTimeout | ) | [pure virtual] |
| ctsTimeout | the duration of a CTS timeout. |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual void ns3::WifiMac::SetEifsNoDifs | ( | Time | eifsNoDifs | ) | [pure virtual] |
| eifsNoDifs | the duration of an EIFS minus DIFS. |
This value is used to calculate the EIFS depending on AIFSN.
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual void ns3::WifiMac::SetForwardUpCallback | ( | Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > | upCallback | ) | [pure virtual] |
| upCallback | the callback to invoke when a packet must be forwarded up the stack. |
| virtual void ns3::WifiMac::SetLinkDownCallback | ( | Callback< void > | linkDown | ) | [pure virtual] |
| linkDown | the callback to invoke when the link becomes down. |
Implemented in ns3::RegularWifiMac.
| virtual void ns3::WifiMac::SetLinkUpCallback | ( | Callback< void > | linkUp | ) | [pure virtual] |
| linkUp | the callback to invoke when the link becomes up. |
Implemented in ns3::RegularWifiMac, ns3::MeshWifiInterfaceMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
| void ns3::WifiMac::SetMaxPropagationDelay | ( | Time | delay | ) |
| delay | the max propagation delay. |
Unused for now.
| virtual void ns3::WifiMac::SetPifs | ( | Time | pifs | ) | [pure virtual] |
| virtual void ns3::WifiMac::SetPromisc | ( | void | ) | [pure virtual] |
Sets the interface in promiscuous mode.
Enables promiscuous mode on the interface. Note that any further filtering on the incoming frame path may affect the overall behavior.
Implemented in ns3::RegularWifiMac.
Referenced by ns3::WifiNetDevice::SetPromiscReceiveCallback().
| virtual void ns3::WifiMac::SetSifs | ( | Time | sifs | ) | [pure virtual] |
| virtual void ns3::WifiMac::SetSlot | ( | Time | slotTime | ) | [pure virtual] |
| slotTime | the slot duration |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual void ns3::WifiMac::SetSsid | ( | Ssid | ssid | ) | [pure virtual] |
| ssid | the current ssid of this MAC layer. |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
| virtual void ns3::WifiMac::SetWifiPhy | ( | Ptr< WifiPhy > | phy | ) | [pure virtual] |
| phy | the physical layer attached to this MAC. |
Implemented in ns3::RegularWifiMac.
| virtual void ns3::WifiMac::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | stationManager | ) | [pure virtual] |
| stationManager | the station manager attached to this MAC. |
Implemented in ns3::RegularWifiMac, and ns3::ApWifiMac.