A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IEEE 802.11s draft

IEEE 802.11s (mesh) draft standard implementation. More...

Classes

class  ns3::dot11s::AirtimeLinkMetricCalculator
 Airtime link metric calculator. More...
 
class  ns3::dot11s::DestinationAddressUnit
 Describes an address unit in PREQ information element See 7.3.2.96 for more details. More...
 
class  ns3::dot11s::Dot11sMeshCapability
 See 7.3.2.86.7 in 802.11s draft 3.0. More...
 
class  HwmpDoRfRegressionTest
 This is a test for intermediate reply and saving routing information about neighbour. 4 stations and 3 UDP ping streams are initiated. More...
 
class  HwmpProactiveRegressionTest
 There are 5 stations set into a column, the center station is root. Regression test indicates, that traffic goes from the first to the last stations without reactive route discovery procedure. More...
 
class  ns3::dot11s::HwmpProtocol
 Hybrid wireless mesh protocol – a routing protocol of IEEE 802.11s draft. More...
 
class  ns3::dot11s::HwmpProtocolMac
 Interface MAC plugin for HWMP – 802.11s routing protocol. More...
 
class  HwmpReactiveRegressionTest
 test for multihop path establishing and path error procedures Initiate scenario with 6 stations. Procedure of opening peer link is the following: (PMP routines are not shown) More...
 
class  ns3::dot11s::HwmpRtable
 Routing table for HWMP – 802.11s routing protocol. More...
 
class  HwmpSimplestRegressionTest
 Peering Management & HWM Protocol regression test Initiate scenario with 2 stations. Procedure of opening peer link is the following: More...
 
class  ns3::dot11s::HwmpTag
 Hwmp tag implements interaction between HWMP protocol and MeshWifiMac. More...
 
class  ns3::dot11s::IeBeaconTiming
 See 7.3.2.89 of 802.11s draft 2.07. More...
 
class  ns3::dot11s::IeBeaconTimingUnit
 Describes one unit of beacon timing element. More...
 
class  ns3::dot11s::IeConfiguration
 Describes Mesh Configuration Element see 7.3.2.86 of 802.11s draft 3.0. More...
 
class  ns3::dot11s::IePeerManagement
 See 7.3.2.85 of draft 2.07. More...
 
class  ns3::dot11s::IePerr
 See 7.3.2.98 of 802.11s draft 2.07. More...
 
class  ns3::dot11s::IePrep
 See 7.3.2.97 of 802.11s draft 2.07. More...
 
class  ns3::dot11s::IePreq
 See 7.3.2.96 of 802.11s draft 2.07. More...
 
class  ns3::dot11s::IeRann
 See 7.3.2.95 of 802.11s draft 2.07. More...
 
class  ns3::dot11s::MeshHeader
 Mesh Control field, see IEEE 802.11s draft 3.0 section 7.1.3.5b. More...
 
class  ns3::MeshHelper
 Helper to create IEEE 802.11s mesh networks. More...
 
class  ns3::dot11s::PeerLink
 Peer link model for 802.11s Peer Management protocol. More...
 
class  ns3::dot11s::PeerLinkFrameStart
 802.11s Peer link management frame More...
 
class  ns3::dot11s::PeerManagementProtocol
 802.11s Peer Management Protocol model More...
 
class  ns3::dot11s::PeerManagementProtocolMac
 This is plugin to Mesh WiFi MAC, which implements interface to dot11s peer management protocol: it takes proper frames from MAC-layer, extracts peer link management information element and mesh configuration element and passes it to main part of protocol. More...
 
class  PeerManagementProtocolRegressionTest
 Peering Management Protocol regression test. More...
 

Typedefs

typedef std::vector< Ptr
< IeBeaconTimingUnit > > 
ns3::dot11s::IeBeaconTiming::NeighboursTimingUnitsList
 

Enumerations

enum  ns3::dot11s::dot11sAuthenticationProtocol { AUTH_NULL = 0x000fac00, AUTH_SAE = 0x000fac01 }
 See 7.3.2.86.5 in 802.11s draft 3.0.
 
enum  ns3::dot11s::dot11sCongestionControlMode { CONGESTION_SIGNALING = 0x000fac00, CONGESTION_NULL = 0x000facff }
 See 7.3.2.86.3 in 802.11s draft 3.0.
 
enum  ns3::dot11s::dot11sPathSelectionMetric { METRIC_AIRTIME = 0x000fac00 }
 See 7.3.2.86.2 in 802.11s draft 3.0.
 
enum  ns3::dot11s::dot11sPathSelectionProtocol { PROTOCOL_HWMP = 0x000fac00 }
 See 7.3.2.86.1 in 802.11s draft 3.0.
 
enum  ns3::dot11s::dot11sSynchronizationProtocolIdentifier { SYNC_NEIGHBOUR_OFFSET = 0x000fac00, SYNC_NULL = 0x000facff }
 See 7.3.2.86.4 in 802.11s draft 3.0.
 
enum  ns3::dot11s::PmpReasonCode {
  REASON11S_PEERING_CANCELLED = 2, REASON11S_MESH_MAX_PEERS, REASON11S_MESH_CAPABILITY_POLICY_VIOLATION, REASON11S_MESH_CLOSE_RCVD,
  REASON11S_MESH_MAX_RETRIES, REASON11S_MESH_CONFIRM_TIMEOUT, REASON11S_MESH_INVALID_GTK, REASON11S_MESH_INCONSISTENT_PARAMETERS,
  REASON11S_MESH_INVALID_SECURITY_CAPABILITY, REASON11S_RESERVED
}
 Codes used by 802.11s Peer Management Protocol.
 

Detailed Description

IEEE 802.11s (mesh) draft standard implementation.

Current model conforms IEEE 802.11s D3.0 draft version and includes Peer Management Protocol and HWMP (routing) Protocol implementations.

The multi-interface mesh points are supported as an extension of IEEE draft version 3.0. Note that corresponding helper creates single interface station by default.

Overview of IEEE 802.11s

Implementation of 802.11s draft standard consists of two main parts: Peer management protocol and HWMP - Hybrid Wireless Mesh Protocol.

The task of peer management protocol is the following: -open links detecting beacons and starting peer link finite state machine. -close peer links due to transmission failures or beacon loss.

If peer link between sender and receiver does not exist, the packet will be dropped. So, the plug-in to peer management protocol is the first in the list of ns3::MeshWifiInterfaceMacPlugin

Peer management protocol

Peer management protocol consists of three main parts:

Procedure of closing peer link is not described detailed in 802.11s draft standard, so in our model the link may be closed by:

Also Peer management protocol is responsible for beacon collision avoidance, because it keeps beacon timing elements from all neighbours. Note, that PeerManagementProtocol is not attached to MeshPointDevice as a routing protocol, but the structure is similar: the upper tier of protocol ns3::dot11s::PeerManagementProtocol and its plug-in is ns3::dot11s::PeerManagementProtocolMac.

Hybrid Wireless Mesh Protocol

HWMP is implemented in both modes – reactive and proactive. Also we have implemented an ability to transmit broadcast data and management frames as unicasts (see appropriate attributes). This feature turns off at a station when the number of neighbours of the station is more than a threshold.

Typedef Documentation

typedef std::vector< Ptr<IeBeaconTimingUnit> > ns3::dot11s::IeBeaconTiming::NeighboursTimingUnitsList

This type is a list of timing elements obtained from neighbours with their beacons:

Definition at line 67 of file ie-dot11s-beacon-timing.h.