A Discrete-Event Network Simulator
API
IEEE 802.11s draft

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

+ Collaboration diagram for IEEE 802.11s draft:

Classes

class  ns3::dot11s::AirtimeLinkMetricCalculator
 Airtime link metric calculator. More...
 
struct  ns3::dot11s::PeerManagementProtocol::BeaconInfo
 Keeps information about beacon of peer station: beacon interval, association ID, last time we have received a beacon. 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
 A set of values indicating whether a mesh STA is a possible candidate for mesh peering establishment (Section 8.4.2.100.8 of IEEE 802.11-2012) More...
 
class  ns3::Dot11sStack
 Helper class to allow easy installation of 802.11s stack. More...
 
struct  ns3::dot11s::HwmpProtocol::FailedDestination
 structure of unreachable destination - address and sequence number More...
 
class  ns3::dot11s::HwmpProtocol
 Hybrid wireless mesh protocol – a mesh routing protocol defined in IEEE 802.11-2012 standard. More...
 
class  ns3::dot11s::HwmpProtocolMac
 Interface MAC plugin for HWMP – 802.11s routing protocol. More...
 
class  ns3::dot11s::HwmpRtable
 Routing table for HWMP – 802.11s routing protocol. 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
 Information element describing 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::IePeeringProtocol
 Mesh Peering Protocol Identifier information element Note that it does not permit to set any value besides zero (corresponding to mesh peering management protocol) 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
 Root announcement (RANN) element. More...
 
struct  ns3::dot11s::HwmpRtable::LookupResult
 Route lookup result, return type of LookupXXX methods. More...
 
class  ns3::dot11s::MeshHeader
 Mesh Control field, see Section 8.2.4.7.3 IEEE 802.11-2012. More...
 
class  ns3::MeshHelper
 Helper to create IEEE 802.11s mesh networks. More...
 
struct  ns3::dot11s::HwmpProtocolMac::MyPerr
 MyPerr structure. More...
 
struct  ns3::dot11s::HwmpProtocol::PathError
 Structure of path error: IePerr and list of receivers: interfaces and MAC address. More...
 
class  ns3::dot11s::PeerLink
 Peer link model for 802.11s Peer Management protocol. More...
 
class  ns3::dot11s::PeerLinkCloseStart
 802.11s Peer link close management frame More...
 
class  ns3::dot11s::PeerLinkConfirmStart
 802.11s Peer link confirm management frame More...
 
class  ns3::dot11s::PeerLinkOpenStart
 802.11s Peer link open 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 the 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...
 
struct  ns3::dot11s::PeerLinkCloseStart::PlinkCloseStartFields
 fields: More...
 
struct  ns3::dot11s::PeerLinkConfirmStart::PlinkConfirmStartFields
 fields: More...
 
struct  ns3::dot11s::PeerManagementProtocolMac::PlinkFrameStart
 This structure keeps all fields in peer link management frame, which are not subclasses of WifiInformationElement. More...
 
struct  ns3::dot11s::PeerLinkOpenStart::PlinkOpenStartFields
 fields: More...
 
struct  ns3::dot11s::HwmpRtable::Precursor
 Route found in reactive mode. More...
 
struct  ns3::dot11s::HwmpProtocol::PreqEvent
 PreqEvent structure. More...
 
struct  ns3::dot11s::HwmpRtable::ProactiveRoute
 Route found in proactive mode. More...
 
struct  ns3::dot11s::HwmpProtocol::QueuedPacket
 Packet waiting its routing information. More...
 
struct  ns3::dot11s::HwmpRtable::ReactiveRoute
 Route found in reactive mode. More...
 
struct  ns3::dot11s::PeerManagementProtocol::Statistics
 Statistics structure. More...
 
struct  ns3::dot11s::PeerManagementProtocolMac::Statistics
 Statistics structure. More...
 
struct  ns3::dot11s::HwmpProtocol::Statistics
 Statistics structure. More...
 
struct  ns3::dot11s::HwmpProtocolMac::Statistics
 Statistics structure. More...
 

Typedefs

typedef std::vector< Ptr< IeBeaconTimingUnit > > ns3::dot11s::IeBeaconTiming::NeighboursTimingUnitsList
 This type is a list of timing elements obtained from neighbours with their beacons: More...
 

Enumerations

enum  ns3::MeshHelper::ChannelPolicy { ns3::MeshHelper::SPREAD_CHANNELS, ns3::MeshHelper::ZERO_CHANNEL }
 Spread/not spread frequency channels of MP interfaces. More...
 
enum  ns3::dot11s::PeerLink::PeerEvent {
  ns3::dot11s::PeerLink::CNCL, ns3::dot11s::PeerLink::ACTOPN, ns3::dot11s::PeerLink::CLS_ACPT, ns3::dot11s::PeerLink::OPN_ACPT,
  ns3::dot11s::PeerLink::OPN_RJCT, ns3::dot11s::PeerLink::REQ_RJCT, ns3::dot11s::PeerLink::CNF_ACPT, ns3::dot11s::PeerLink::CNF_RJCT,
  ns3::dot11s::PeerLink::TOR1, ns3::dot11s::PeerLink::TOR2, ns3::dot11s::PeerLink::TOC, ns3::dot11s::PeerLink::TOH
}
 Peer link events, see 802.11s draft 11B.3.3.2. More...
 
enum  ns3::dot11s::PeerLink::PeerState {
  ns3::dot11s::PeerLink::IDLE, ns3::dot11s::PeerLink::OPN_SNT, ns3::dot11s::PeerLink::CNF_RCVD, ns3::dot11s::PeerLink::OPN_RCVD,
  ns3::dot11s::PeerLink::ESTAB, ns3::dot11s::PeerLink::HOLDING
}
 Peer Link state: More...
 
enum  ns3::dot11s::PmpReasonCode {
  ns3::dot11s::REASON11S_PEERING_CANCELLED = 52, ns3::dot11s::REASON11S_MESH_MAX_PEERS = 53, ns3::dot11s::REASON11S_MESH_CAPABILITY_POLICY_VIOLATION = 54, ns3::dot11s::REASON11S_MESH_CLOSE_RCVD = 55,
  ns3::dot11s::REASON11S_MESH_MAX_RETRIES = 56, ns3::dot11s::REASON11S_MESH_CONFIRM_TIMEOUT = 57, ns3::dot11s::REASON11S_MESH_INVALID_GTK = 58, ns3::dot11s::REASON11S_MESH_INCONSISTENT_PARAMETERS = 59,
  ns3::dot11s::REASON11S_MESH_INVALID_SECURITY_CAPABILITY =60, ns3::dot11s::REASON11S_RESERVED = 67
}
 Codes used by 802.11s Peer Management Protocol. More...
 

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 98 of file ie-dot11s-beacon-timing.h.

Enumeration Type Documentation

Spread/not spread frequency channels of MP interfaces.

Todo:
SetMeshId

If set to true different non-overlapping 20MHz frequency channels will be assigned to different mesh point interfaces.

Enumerator
SPREAD_CHANNELS 
ZERO_CHANNEL 

Definition at line 132 of file mesh-helper.h.

Peer link events, see 802.11s draft 11B.3.3.2.

Enumerator
CNCL 

Cancel peer link.

ACTOPN 

Active peer link open.

CLS_ACPT 

PeerLinkClose_Accept.

OPN_ACPT 

PeerLinkOpen_Accept.

OPN_RJCT 

PeerLinkOpen_Reject.

REQ_RJCT 

PeerLinkOpenReject by internal reason.

CNF_ACPT 

PeerLinkConfirm_Accept.

CNF_RJCT 

PeerLinkConfirm_Reject.

TOR1 

Timeout of retry timer.

TOR2 

also timeout of retry timer

TOC 

Timeout of confirm timer.

TOH 

Timeout of holding (graceful closing) timer.

Definition at line 134 of file peer-link.h.

Peer Link state:

Enumerator
IDLE 
OPN_SNT 
CNF_RCVD 
OPN_RCVD 
ESTAB 
HOLDING 

Definition at line 58 of file peer-link.h.

Codes used by 802.11s Peer Management Protocol.

Enumerator
REASON11S_PEERING_CANCELLED 
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 

Definition at line 34 of file ie-dot11s-peer-management.h.