From 32d4a70eea7885d04c28e83fc01960b15f7ec97c Mon Sep 17 00:00:00 2001 From: Kirill Andreev Date: Tue, 21 Apr 2009 18:35:53 +0400 Subject: [PATCH] Removed mesh header from acion management frames --- src/devices/mesh/dot11s/hwmp-mac-plugin.cc | 31 ------------------- .../mesh/dot11s/peer-management-plugin.cc | 19 ++---------- 2 files changed, 3 insertions(+), 47 deletions(-) diff --git a/src/devices/mesh/dot11s/hwmp-mac-plugin.cc b/src/devices/mesh/dot11s/hwmp-mac-plugin.cc index 659b65209..5492fd826 100644 --- a/src/devices/mesh/dot11s/hwmp-mac-plugin.cc +++ b/src/devices/mesh/dot11s/hwmp-mac-plugin.cc @@ -86,16 +86,12 @@ HwmpMacPlugin::Receive (Ptr packet, const WifiMacHeader & header) if(header.IsAction()) { // TODO don't use multihop header - Dot11sMacHeader meshHdr; - packet->RemoveHeader (meshHdr); //parse multihop action header: WifiMeshMultihopActionHeader multihopHdr; packet->RemoveHeader (multihopHdr); WifiMeshMultihopActionHeader::ActionValue actionValue = multihopHdr.GetAction (); if(multihopHdr.GetCategory () != WifiMeshMultihopActionHeader::MESH_PATH_SELECTION) return true; - if(meshHdr.GetMeshTtl () == 0) - return false; switch (actionValue.pathSelection) { case WifiMeshMultihopActionHeader::PATH_REQUEST: @@ -197,16 +193,7 @@ HwmpMacPlugin::SendOnePreq () action.pathSelection = WifiMeshMultihopActionHeader::PATH_REQUEST; multihopHdr.SetAction (WifiMeshMultihopActionHeader::MESH_PATH_SELECTION, action); packet->AddHeader (multihopHdr); - //Mesh header - Dot11sMacHeader meshHdr; - meshHdr.SetMeshTtl (m_protocol->GetMaxTtl ()); - //TODO: should seqno be here? - meshHdr.SetMeshSeqno (0); - meshHdr.SetAddressExt(1); - meshHdr.SetAddr4(m_preqQueue[0].GetOriginatorAddress ()); - packet->AddHeader (meshHdr); //create 802.11 header: - // TODO don't use me WifiMacHeader hdr; hdr.SetAction (); hdr.SetDsNotFrom (); @@ -243,16 +230,7 @@ HwmpMacPlugin::SendOnePerr() action.pathSelection = WifiMeshMultihopActionHeader::PATH_ERROR; multihopHdr.SetAction (WifiMeshMultihopActionHeader::MESH_PATH_SELECTION, action); packet->AddHeader (multihopHdr); - //Mesh header - Dot11sMacHeader meshHdr; - meshHdr.SetMeshTtl (m_protocol->GetMaxTtl ()); - //TODO: should seqno be here? - meshHdr.SetMeshSeqno (0); - meshHdr.SetAddressExt(1); - meshHdr.SetAddr4(m_protocol->GetAddress ()); - packet->AddHeader (meshHdr); //create 802.11 header: - // TODO don't use me WifiMacHeader hdr; hdr.SetAction (); hdr.SetDsNotFrom (); @@ -280,16 +258,7 @@ HwmpMacPlugin::SendPrep (IePrep prep, Mac48Address receiver) action.pathSelection = WifiMeshMultihopActionHeader::PATH_REPLY; multihopHdr.SetAction (WifiMeshMultihopActionHeader::MESH_PATH_SELECTION, action); packet->AddHeader (multihopHdr); - //Mesh header - Dot11sMacHeader meshHdr; - meshHdr.SetMeshTtl (m_protocol->GetMaxTtl ()); - //TODO: should seqno be here? - meshHdr.SetMeshSeqno (0); - meshHdr.SetAddressExt(1); - meshHdr.SetAddr4(prep.GetOriginatorAddress ()); - packet->AddHeader (meshHdr); //create 802.11 header: - // TODO don't use me WifiMacHeader hdr; hdr.SetAction (); hdr.SetDsNotFrom (); diff --git a/src/devices/mesh/dot11s/peer-management-plugin.cc b/src/devices/mesh/dot11s/peer-management-plugin.cc index cedb03e81..6bc262793 100644 --- a/src/devices/mesh/dot11s/peer-management-plugin.cc +++ b/src/devices/mesh/dot11s/peer-management-plugin.cc @@ -27,7 +27,6 @@ #include "ns3/mesh-wifi-interface-mac.h" #include "ns3/simulator.h" #include "ns3/wifi-mac-header.h" - namespace ns3 { namespace dot11s { PeerManagerMacPlugin::PeerManagerMacPlugin (uint32_t interface, Ptr protocol) @@ -74,9 +73,6 @@ PeerManagerMacPlugin::Receive (Ptr const_packet, const WifiMacHeader & h } if(header.IsAction()) { - // TODO don't use this - Dot11sMacHeader meshHdr; - packet->RemoveHeader (meshHdr); WifiMeshMultihopActionHeader multihopHdr; //parse multihop action header: packet->RemoveHeader (multihopHdr); @@ -84,10 +80,8 @@ PeerManagerMacPlugin::Receive (Ptr const_packet, const WifiMacHeader & h // If can not handle - just return; if(multihopHdr.GetCategory () != WifiMeshMultihopActionHeader::MESH_PEER_LINK_MGT) return true; - NS_ASSERT(meshHdr.GetMeshTtl () == 1); - NS_ASSERT(meshHdr.GetAddressExt () == 1); Mac48Address peerAddress = header.GetAddr2 (); - Mac48Address peerMpAddress = meshHdr.GetAddr4 (); + Mac48Address peerMpAddress = header.GetAddr3 (); PeerLinkFrameStart::PlinkFrameStartFields fields; { PeerLinkFrameStart peerFrame; @@ -201,20 +195,13 @@ PeerManagerMacPlugin::SendPeerLinkManagementFrame( plinkFrame.SetPlinkFrameStart(fields); packet->AddHeader (plinkFrame); packet->AddHeader (multihopHdr); - //mesh header: - // TODO don't use me - Dot11sMacHeader meshHdr; - meshHdr.SetMeshTtl (1); - meshHdr.SetMeshSeqno (0); - meshHdr.SetAddressExt(1); - meshHdr.SetAddr4(m_protocol->GetAddress ()); - packet->AddHeader (meshHdr); // Wifi Mac header: WifiMacHeader hdr; hdr.SetAction (); hdr.SetAddr1 (peerAddress); hdr.SetAddr2 (m_parent->GetAddress ()); - hdr.SetAddr3 (peerMpAddress); + //Addr is not used here, we use it as our MP address + hdr.SetAddr3 (m_protocol->GetAddress ()); hdr.SetDsNotFrom (); hdr.SetDsNotTo (); m_parent->SendManagementFrame(packet, hdr);