From 7176275cec6ffdbbd33a59aeb37c19f1f9d7e595 Mon Sep 17 00:00:00 2001 From: Kirill Andreev Date: Thu, 27 Aug 2009 17:23:38 +0400 Subject: [PATCH] Dot11s overview moved to dot11s module --- src/devices/mesh/dot11s/dot11s.h | 41 +++++++++++++++++++++++++++++++- src/devices/mesh/mesh.h | 30 ----------------------- 2 files changed, 40 insertions(+), 31 deletions(-) diff --git a/src/devices/mesh/dot11s/dot11s.h b/src/devices/mesh/dot11s/dot11s.h index b56af83c7..c939fad57 100644 --- a/src/devices/mesh/dot11s/dot11s.h +++ b/src/devices/mesh/dot11s/dot11s.h @@ -30,5 +30,44 @@ * * The multi-interface (aka multi radio) mesh points are supported as an * extension of IEEE draft version 3.0. Note that corresponding helper - * creates single interface station by default. + * creates single interface station by default. + * \section Dot11s 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 to open links, detect beacons, + * and 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. + * \subsubsection IE Implementation of Information elements + * To make a model of 802.11 stack, we need to implement large quantity of information + * elements and have an ability to add them in a beacon. + * Also we have to parse beacon and extract proper information elements from it. So, two + * classes ns3::WifiInformationElement and ns3::WifiInformationElementVector + * implement this functionality. The former keeps all information of information element and + * its elementId and has methods ns3::WifiInformationElement::SerializeInformation and + * ns3::WifiInformationElement::DeserializeInformation. + * ns3::WifiInformationElementVector adds all stored information elements to a packet. + * \subsubsection PMP Peer management protocol + * Peer management protocol consists of three main parts: + * - protocol itself ns3::dot11s::PeerManagementProtocol, which keeps all active peer links + * and handles all changes of their states and notifies a routing protocol about link failures. + * - its MAC plugin ns3::dot11s::PeerManagementProtocolMac which drops packet, if there is no peer link, + * and peek all needed information from management frames and information elements from beacons. + * - peer link instance ns3::dot11s::PeerLink which keeps finite state machine for each peer link, keeps + * beacon loss counter and counter of failed packets to be transmitted. + * + * Procedure of closing peer link is not described detailed in 802.11s draft standard, so the link may be closed by: + * - beacon loss (see an appropriate attribute of ns3::dot11s::PeerLink class) + * - transmission failure -- when a predefined number of successive packets have failed to transmit, + * the link will be closed. + * + * 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 layer of protocol ns3::dot11s::PeerManagementProtocol + * and its plugins ns3::dot11s::PeerManagementProtocolMac. + * + * \subsubsection HWMP 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. */ diff --git a/src/devices/mesh/mesh.h b/src/devices/mesh/mesh.h index 0ca22dc48..b1df00bbe 100644 --- a/src/devices/mesh/mesh.h +++ b/src/devices/mesh/mesh.h @@ -72,36 +72,6 @@ * When you implement a protocol, you must remember, that when you are at MeshPointDevice level, you work with a packet * without LLC header, and when you are at plugin-level using ns3::MeshWifiInterfaceMacPlugin, the LLC header is already attached (by WifiNetDevice) * \attention Note, when you work with ns3::MeshWifiInterfaceMac, you have an ability to install multiple plugins. - * \subsection Dot11s Overview of 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 to open links, detect beacons, and 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. - * \subsubsection IE Implementation of Information elements - * To make a model of 802.11 stack, we need to implement large quantity of information elements and have an ability to add them in a beacon. - * Also we have to parse beacon and extract proper information elements from it. So, two classes ns3::WifiInformationElement and ns3::WifiInformationElementVector - * implement this functionality. The former keeps all information of information element and its elementId and has methods ns3::WifiInformationElement::SerializeInformation and ns3::WifiInformationElement::DeserializeInformation. - * ns3::WifiInformationElementVector adds all stored information elements to a packet. - * \subsubsection PMP Peer management protocol - * Peer management protocol consists of three main parts: - * - protocol itself ns3::dot11s::PeerManagementProtocol, which keeps all active peer links and handles all changes of their states - * and notifies a routing protocol about link failures. - * - its MAC plugin ns3::dot11s::PeerManagementProtocolMac which drops packet, if there is no peer link, - * and peek all needed information from management frames and information elements from beacons. - * - peer link instance ns3::dot11s::PeerLink which keeps finite state machine for each peer link, keeps beacon loss counter and counter of failed packets - * to be transmitted. - * - * Procedure of closing peer link is not described detailed in 802.11s draft standard, so the link may be closed by: - * - beacon loss (see an appropriate attribute of ns3::dot11s::PeerLink class) - * - transmission failure -- when a predefined number of successive packets have failed to transmit, the link will be closed. - * - * 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 layer of protocol ns3::dot11s::PeerManagementProtocol and its plugins ns3::dot11s::PeerManagementProtocolMac. - * - * \subsubsection HWMP 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. - * \subsection FLAME Overview of FLAME - * * \subsection Statistics * Each routing protocol has a statistic structure, Report and ResetStats methods. This gives an opportunity to write statistic to an *.xml file periodically. Because you can reset statistics, you can adjust a period of report. */