Moving to IEEE 802.11s Draft 3.0:
changed Reason Codes;
changed Element IDs.
Added Capability field initialization.
--- a/src/devices/mesh/dot11s/ie-dot11s-peer-management.cc Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/ie-dot11s-peer-management.cc Fri May 22 22:53:10 2009 +0400
@@ -183,7 +183,7 @@
}
{
IePeerManagement a;
- a.SetPeerClose (1, 2, REASON11S_MESH_CONFIGURATION_POLICY_VIOLATION);
+ a.SetPeerClose (1, 2, REASON11S_MESH_CAPABILITY_POLICY_VIOLATION);
result = result && TestRoundtripSerialization (a);
}
return result;
--- a/src/devices/mesh/dot11s/ie-dot11s-peer-management.h Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/ie-dot11s-peer-management.h Fri May 22 22:53:10 2009 +0400
@@ -33,19 +33,15 @@
* \brief Codes used by 802.11s Peer Management Protocol
*/
enum PmpReasonCode {
- REASON11S_PEER_LINK_CANCELLED,
+ REASON11S_PEERING_CANCELLED = 2, // according to open80211s
REASON11S_MESH_MAX_PEERS,
REASON11S_MESH_CAPABILITY_POLICY_VIOLATION,
REASON11S_MESH_CLOSE_RCVD,
REASON11S_MESH_MAX_RETRIES,
REASON11S_MESH_CONFIRM_TIMEOUT,
- REASON11S_MESH_SECURITY_ROLE_NEGOTIATION_DIFFERS,
- REASON11S_MESH_SECURITY_AUTHENTICATION_IMPOSSIBLE,
- REASON11S_MESH_SECURITY_FAILED_VERIFICATION,
REASON11S_MESH_INVALID_GTK,
- REASON11S_MESH_MISMATCH_GTK,
REASON11S_MESH_INCONSISTENT_PARAMETERS,
- REASON11S_MESH_CONFIGURATION_POLICY_VIOLATION,
+ REASON11S_MESH_INVALID_SECURITY_CAPABILITY,
REASON11S_RESERVED,
};
@@ -75,7 +71,7 @@
uint8_t GetSubtype() const { return m_subtype;};
private:
WifiElementId ElementId () const{
- return IE11S_PEER_LINK_MANAGEMENT;
+ return IE11S_PEERING_MANAGEMENT;
}
uint8_t GetInformationSize (void) const;
void SerializeInformation (Buffer::Iterator i) const;
--- a/src/devices/mesh/dot11s/ie-dot11s-peering-protocol.h Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/ie-dot11s-peering-protocol.h Fri May 22 22:53:10 2009 +0400
@@ -36,7 +36,7 @@
private:
WifiElementId ElementId () const
{
- return IE11S_PEERING_PROTOCOL;
+ return IE11S_MESH_PEERING_PROTOCOL_VERSION;
}
uint8_t GetInformationSize () const;
void SerializeInformation (Buffer::Iterator i) const;
--- a/src/devices/mesh/dot11s/peer-link-frame.cc Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/peer-link-frame.cc Fri May 22 22:53:10 2009 +0400
@@ -201,6 +201,7 @@
PeerLinkFrameStart a;
PeerLinkFrameStart::PlinkFrameStartFields fields;
fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_OPEN);
+ fields.capability = 0;
fields.aid = 101;
fields.reasonCode = 12;
fields.meshId = IeMeshId("qwertyuiop", 10);
@@ -216,6 +217,7 @@
PeerLinkFrameStart a;
PeerLinkFrameStart::PlinkFrameStartFields fields;
fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM);
+ fields.capability = 0;
fields.aid = 1234;
fields.reasonCode = 12;
fields.meshId = IeMeshId("qwerty", 6);
@@ -231,6 +233,7 @@
PeerLinkFrameStart a;
PeerLinkFrameStart::PlinkFrameStartFields fields;
fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE);
+ fields.capability = 0;
fields.aid = 10;
fields.meshId = IeMeshId("qqq", 3);
fields.reasonCode = 12;
--- a/src/devices/mesh/dot11s/peer-link.cc Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/peer-link.cc Fri May 22 22:53:10 2009 +0400
@@ -183,7 +183,7 @@
void
PeerLink::MLMEPeeringRequestReject ()
{
- StateMachine (REQ_RJCT, REASON11S_PEER_LINK_CANCELLED);
+ StateMachine (REQ_RJCT, REASON11S_PEERING_CANCELLED);
}
void
PeerLink::Close (uint16_t localLinkId, uint16_t peerLinkId, PmpReasonCode reason)
@@ -349,7 +349,7 @@
case CNCL:
m_state = HOLDING;
ClearRetryTimer ();
- SendPeerLinkClose (REASON11S_PEER_LINK_CANCELLED);
+ SendPeerLinkClose (REASON11S_PEERING_CANCELLED);
SetHoldingTimer ();
break;
default:
@@ -385,7 +385,7 @@
case CNCL:
m_state = HOLDING;
ClearConfirmTimer ();
- SendPeerLinkClose (REASON11S_PEER_LINK_CANCELLED);
+ SendPeerLinkClose (REASON11S_PEERING_CANCELLED);
SetHoldingTimer ();
break;
case TOC:
@@ -434,7 +434,7 @@
case CNCL:
m_state = HOLDING;
ClearRetryTimer ();
- SendPeerLinkClose (REASON11S_PEER_LINK_CANCELLED);
+ SendPeerLinkClose (REASON11S_PEERING_CANCELLED);
SetHoldingTimer ();
break;
default:
@@ -463,7 +463,7 @@
break;
case CNCL:
m_state = HOLDING;
- SendPeerLinkClose (REASON11S_PEER_LINK_CANCELLED);
+ SendPeerLinkClose (REASON11S_PEERING_CANCELLED);
SetHoldingTimer ();
m_linkStatusCallback (m_interface, m_peerAddress, m_peerMeshPointAddress, false);
break;
@@ -484,7 +484,7 @@
case CNF_ACPT:
m_state = HOLDING;
// reason not spec in D2.0
- SendPeerLinkClose (REASON11S_PEER_LINK_CANCELLED);
+ SendPeerLinkClose (REASON11S_PEERING_CANCELLED);
break;
case OPN_RJCT:
case CNF_RJCT:
--- a/src/devices/mesh/dot11s/peer-management-plugin.cc Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/peer-management-plugin.cc Fri May 22 22:53:10 2009 +0400
@@ -188,6 +188,7 @@
packet->AddHeader (peerElement);
PeerLinkFrameStart::PlinkFrameStartFields fields;
fields.rates = m_parent->GetSupportedRates ();
+ fields.capability = 0;
fields.meshId = *(m_protocol->GetMeshId ());
fields.config = meshConfig;
PeerLinkFrameStart plinkFrame;
--- a/src/devices/mesh/dot11s/peer-management-protocol.cc Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/dot11s/peer-management-protocol.cc Fri May 22 22:53:10 2009 +0400
@@ -259,7 +259,7 @@
{
Ptr<PeerLink> peerLink = FindPeerLink(interface, peerAddress);
if(peerLink != 0)
- peerLink->MLMECancelPeerLink (REASON11S_MESH_CONFIGURATION_POLICY_VIOLATION);
+ peerLink->MLMECancelPeerLink (REASON11S_MESH_CAPABILITY_POLICY_VIOLATION);
}
Ptr<PeerLink>
--- a/src/devices/mesh/wifi-information-element.h Fri May 22 17:47:50 2009 +0400
+++ b/src/devices/mesh/wifi-information-element.h Fri May 22 22:53:10 2009 +0400
@@ -40,33 +40,35 @@
* compatible with open80211s (http://o11s.org/) implementation.
*/
enum WifiElementId {
- IE11S_LINK_METRIC_REPORT = 20,
- IE11S_CONGESTION_NOTIFICATION = 21,
- IE11S_MESH_CHANNEL_SWITCH_ANNOUNCEMENT= 23,
- IE11S_MESH_TIM = 24,
- IE11S_AWAKE_WINDOW = 25,
- IE11S_SYNCHRONIZATION_PROTOCOL = 26,
- IE11S_BEACON_TIMING = 27,
- IE11S_MDAOP_SETUP_REQUEST = 28,
- IE11S_MDAOP_SETUP_REPLY = 29,
- IE11S_MDAOP_ADVERTISEMENT = 30,
- IE11S_MDAOP_SET_TEARDOWN = 31,
- IE11S_CONNECTIVITY_REPORT = 32,
- IE11S_PORTAL_ANNOUNCEMENT = 33,
- IE11S_RANN = 34,
- IE11S_PROXY_UPDATE = 38,
- IE11S_PROXY_UPDATE_CONFIRMATION = 39,
- IE11S_MSCIE = 40,
- IE11S_MSAIE = 41,
- IE11S_PEERING_PROTOCOL = 74,
- /* this ID are compatible with open80211s implementation */
+ /* begin of open80211s-compatible IDs */
IE11S_MESH_CONFIGURATION = 51,
IE11S_MESH_ID = 52,
- IE11S_PEER_LINK_MANAGEMENT = 55,
- /* 54 - 67 */
+ /* end of open80211s-compatible IDs */
+ IE11S_LINK_METRIC_REPORT = 20,
+ IE11S_CONGESTION_NOTIFICATION,
+ /* begin of open80211s-compatible IDs */
+ IE11S_PEERING_MANAGEMENT = 55,
+ /* end of open80211s-compatible IDs */
+ IE11S_SUPP_MBSS_REG_CLASSES_CHANNELS = 23,
+ IE11S_MESH_CHANNEL_SWITCH_ANNOUNCEMENT,
+ IE11S_MESH_TIM,
+ IE11S_AWAKE_WINDOW,
+ IE11S_BEACON_TIMING,
+ IE11S_MCCAOP_SETUP_REQUEST,
+ IE11S_MCCAOP_SETUP_REPLY,
+ IE11S_MCCAOP_ADVERTISEMENT,
+ IE11S_MCCAOP_RESERVATION_TEARDOWN,
+ IE11S_PORTAL_ANNOUNCEMENT,
+ IE11S_RANN = 67,
+ /* begin of open80211s-compatible IDs */
IE11S_PREQ = 68,
IE11S_PREP = 69,
IE11S_PERR = 70,
+ /* end of open80211s-compatible IDs */
+ IE11S_PROXY_UPDATE = 37,
+ IE11S_PROXY_UPDATE_CONFIRMATION,
+ IE11S_ABBREVIATED_HANDSHAKE,
+ IE11S_MESH_PEERING_PROTOCOL_VERSION = 74,
};
/**