Basic MAC of mesh point Wi-Fi interface. Its function is extendable through plugins mechanism. More...
#include <mesh-wifi-interface-mac.h>


Classes | |
| struct | Statistics |
Public Member Functions | |
| MeshWifiInterfaceMac () | |
| C-tor. | |
| virtual | ~MeshWifiInterfaceMac () |
| D-tor. | |
| Ptr< WifiPhy > | GetWifiPhy () const |
| Needed to obtain phy to calculate TX-duration. | |
| void | SendManagementFrame (Ptr< Packet > frame, const WifiMacHeader &hdr) |
| To be used by plugins sending management frames. | |
| bool | CheckSupportedRates (SupportedRates rates) const |
| SupportedRates | GetSupportedRates () const |
| void | Report (std::ostream &) const |
| Statistics: | |
| void | ResetStats () |
| void | SetBeaconGeneration (bool enable) |
| Enable/disable beacons. | |
| void | SetQueue (AcIndex ac) |
| WifiPhyStandard | GetPhyStandard () const |
| virtual void | FinishConfigureStandard (enum WifiPhyStandard standard) |
Inherited from WifiMac | |
| virtual void | SetSlot (Time slotTime) |
| virtual void | SetSifs (Time sifs) |
| virtual void | SetPifs (Time pifs) |
| virtual void | SetCtsTimeout (Time ctsTimeout) |
| virtual void | SetAckTimeout (Time ackTimeout) |
| virtual void | SetEifsNoDifs (Time eifsNoDifs) |
| virtual Time | GetSlot () const |
| virtual Time | GetSifs () const |
| virtual Time | GetPifs () const |
| virtual Time | GetCtsTimeout () const |
| virtual Time | GetAckTimeout () const |
| virtual Time | GetEifsNoDifs () const |
| virtual void | SetWifiPhy (Ptr< WifiPhy > phy) |
| virtual void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager) |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to, Mac48Address from) |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to) |
| virtual bool | SupportsSendFrom () const |
| virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback) |
| virtual void | SetLinkUpCallback (Callback< void > linkUp) |
| virtual void | SetLinkDownCallback (Callback< void > linkDown) |
| virtual Mac48Address | GetAddress () const |
| virtual Mac48Address | GetBssid () const |
| virtual Ssid | GetSsid () const |
| virtual void | SetAddress (Mac48Address address) |
| virtual void | SetSsid (Ssid ssid) |
Each mesh point interfaces must know the mesh point address | |
| void | SetMeshPointAddress (Mac48Address) |
| Mac48Address | GetMeshPointAddress () const |
Beacons | |
| void | SetRandomStartDelay (Time interval) |
| Set maximum initial random delay before first beacon. | |
| void | SetBeaconInterval (Time interval) |
| Set interval between two successive beacons. | |
| Time | GetBeaconInterval () const |
| Time | GetTbtt () const |
| Next beacon frame time. | |
| void | ShiftTbtt (Time shift) |
| Shift TBTT. | |
Plugins | |
| void | InstallPlugin (Ptr< MeshWifiInterfaceMacPlugin > plugin) |
| Install plugin. TODO return unique ID to allow unregister plugins. | |
Channel switching | |
| uint16_t | GetFrequencyChannel () const |
| Current channel Id. | |
| void | SwitchFrequencyChannel (uint16_t new_id) |
| Switch channel. | |
| void | SetLinkMetricCallback (Callback< uint32_t, Mac48Address, Ptr< MeshWifiInterfaceMac > > cb) |
| uint32_t | GetLinkMetric (Mac48Address peerAddress) |
| Ptr< WifiRemoteStationManager > | GetStationManager () |
Static Public Member Functions | |
| static TypeId | GetTypeId () |
| Never forget to support typeid. | |
Basic MAC of mesh point Wi-Fi interface. Its function is extendable through plugins mechanism.
Now only three output queues are used:
| bool ns3::MeshWifiInterfaceMac::CheckSupportedRates | ( | SupportedRates | rates | ) | const |
| virtual void ns3::MeshWifiInterfaceMac::Enqueue | ( | Ptr< const Packet > | packet, | |
| Mac48Address | to, | |||
| Mac48Address | from | |||
| ) | [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.
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::Enqueue | ( | Ptr< const Packet > | packet, | |
| Mac48Address | to | |||
| ) | [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.
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::FinishConfigureStandard | ( | enum WifiPhyStandard | standard | ) | [virtual] |
| standard | the phy standard to be used |
This method is called by ns3::WifiMac::ConfigureStandard to complete the configuration process for a requested phy standard. Subclasses should implement this method to configure their dcf queues according to the requested standard.
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetAckTimeout | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Mac48Address ns3::MeshWifiInterfaceMac::GetAddress | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| Time ns3::MeshWifiInterfaceMac::GetBeaconInterval | ( | ) | const |
| virtual Mac48Address ns3::MeshWifiInterfaceMac::GetBssid | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetCtsTimeout | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetEifsNoDifs | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetPifs | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetSifs | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Time ns3::MeshWifiInterfaceMac::GetSlot | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| virtual Ssid ns3::MeshWifiInterfaceMac::GetSsid | ( | ) | const [virtual] |
Implements ns3::WifiMac.
| SupportedRates ns3::MeshWifiInterfaceMac::GetSupportedRates | ( | ) | const |
| Time ns3::MeshWifiInterfaceMac::GetTbtt | ( | ) | const |
Next beacon frame time.
This is supposed to be used by any entity managing beacon collision avoidance (e.g. Peer management protocol in 802.11s)
| static TypeId ns3::MeshWifiInterfaceMac::GetTypeId | ( | void | ) | [static] |
Never forget to support typeid.
This method returns the TypeId associated to ns3::MeshWifiInterfaceMac.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
Attributes defined in parent class ns3::WifiMac:
TraceSources defined for this type:
TraceSources defined in parent class ns3::WifiMac:
Reimplemented from ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetAckTimeout | ( | Time | ackTimeout | ) | [virtual] |
| ackTimeout | the duration of an ACK timeout. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetAddress | ( | Mac48Address | address | ) | [virtual] |
| address | the current address of this MAC layer. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetCtsTimeout | ( | Time | ctsTimeout | ) | [virtual] |
| ctsTimeout | the duration of a CTS timeout. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetEifsNoDifs | ( | Time | eifsNoDifs | ) | [virtual] |
| eifsNoDifs | the duration of an EIFS minus DIFS. |
This value is used to calculate the EIFS depending on AIFSN.
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetForwardUpCallback | ( | Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > | upCallback | ) | [virtual] |
| upCallback | the callback to invoke when a packet must be forwarded up the stack. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetLinkDownCallback | ( | Callback< void > | linkDown | ) | [virtual] |
| linkDown | the callback to invoke when the link becomes down. |
Implements ns3::WifiMac.
| void ns3::MeshWifiInterfaceMac::SetLinkMetricCallback | ( | Callback< uint32_t, Mac48Address, Ptr< MeshWifiInterfaceMac > > | cb | ) |
\ name Metric Calculation routines:
| virtual void ns3::MeshWifiInterfaceMac::SetLinkUpCallback | ( | Callback< void > | linkUp | ) | [virtual] |
| linkUp | the callback to invoke when the link becomes up. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetPifs | ( | Time | pifs | ) | [virtual] |
| pifs | the pifs duration. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetSifs | ( | Time | sifs | ) | [virtual] |
| sifs | the sifs duration |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetSlot | ( | Time | slotTime | ) | [virtual] |
| slotTime | the slot duration |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetSsid | ( | Ssid | ssid | ) | [virtual] |
| ssid | the current ssid of this MAC layer. |
Implements ns3::WifiMac.
| phy | the physical layer attached to this MAC. |
Implements ns3::WifiMac.
| virtual void ns3::MeshWifiInterfaceMac::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | stationManager | ) | [virtual] |
| stationManager | the station manager attached to this MAC. |
Implements ns3::WifiMac.
| void ns3::MeshWifiInterfaceMac::ShiftTbtt | ( | Time | shift | ) |
Shift TBTT.
This is supposed to be used by any entity managing beacon collision avoidance (e.g. Peer management protocol in 802.11s)
1.7.1