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. | |
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. | |
WifiPhyStandard | GetPhyStandard () const |
virtual void | FinishConfigureStandard (enum WifiPhyStandard standard) |
Inherited from WifiMac | |
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 | SetLinkUpCallback (Callback< void > linkUp) |
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) |
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 | |||
) | [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 channel access function determines that access is granted to this MAC.
Implements ns3::RegularWifiMac.
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 channel access function determines that access is 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.
Reimplemented from ns3::RegularWifiMac.
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.
This method may be overriden by a derived class (e.g., in order to apply DCF or EDCA parameters specific to the usage model it is dealing with), in which case the reimplementation may choose to deal with certain values in the WifiPhyStandard enumeration, and chain up to this implementation to deal with the remainder.
Reimplemented from ns3::RegularWifiMac.
Time ns3::MeshWifiInterfaceMac::GetBeaconInterval | ( | ) | const |
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::RegularWifiMac:
Attributes defined in parent class ns3::WifiMac:
No TraceSources defined for this type.
TraceSources defined in parent class ns3::RegularWifiMac:
TraceSources defined in parent class ns3::WifiMac:
Reimplemented from ns3::RegularWifiMac.
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. |
Reimplemented from ns3::RegularWifiMac.
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)