src/devices/mesh/mesh-wifi-peer-manager.cc
changeset 4857 ddfb13420455
parent 4852 123dc54d734e
--- a/src/devices/mesh/mesh-wifi-peer-manager.cc	Thu Mar 19 14:31:47 2009 +0300
+++ b/src/devices/mesh/mesh-wifi-peer-manager.cc	Thu Mar 19 17:28:37 2009 +0300
@@ -29,9 +29,9 @@
 NS_LOG_COMPONENT_DEFINE ("WifiPeerManager");
 namespace ns3 {
 /***************************************************
- * PeerLinkDescriptor
+ * PeerLinkDescriptorDUP
  ***************************************************/
-WifiPeerLinkDescriptor::WifiPeerLinkDescriptor ():
+WifiPeerLinkDescriptorDUP::WifiPeerLinkDescriptorDUP ():
     m_localLinkId (0),
     m_peerLinkId (0),
     m_state (IDLE),
@@ -40,134 +40,134 @@
 {}
 
 void
-WifiPeerLinkDescriptor::SetPeerAddress (Mac48Address macaddr)
+WifiPeerLinkDescriptorDUP::SetPeerAddress (Mac48Address macaddr)
 {
   m_peerAddress = macaddr;
 }
 
 void
-WifiPeerLinkDescriptor::SetLocalAddress (Mac48Address macaddr)
+WifiPeerLinkDescriptorDUP::SetLocalAddress (Mac48Address macaddr)
 {
   m_localAddress = macaddr;
 }
 
 void
-WifiPeerLinkDescriptor::SetLocalLinkId (uint16_t id)
+WifiPeerLinkDescriptorDUP::SetLocalLinkId (uint16_t id)
 {
   m_localLinkId = id;
 }
 void
-WifiPeerLinkDescriptor::SetLocalAid (uint16_t aid)
+WifiPeerLinkDescriptorDUP::SetLocalAid (uint16_t aid)
 {
   m_assocId = aid;
 }
 void
-WifiPeerLinkDescriptor::SetBeaconInformation (Time lastBeacon, Time beaconInterval)
+WifiPeerLinkDescriptorDUP::SetBeaconInformation (Time lastBeacon, Time beaconInterval)
 {
   m_lastBeacon = lastBeacon;
   m_beaconInterval = beaconInterval;
   m_beaconLossTimer.Cancel ();
   Time delay = Seconds (beaconInterval.GetSeconds()*m_maxBeaconLoss);
   NS_ASSERT (delay.GetMicroSeconds() != 0);
-  m_beaconLossTimer = Simulator::Schedule (delay, &WifiPeerLinkDescriptor::BeaconLoss, this);
+  m_beaconLossTimer = Simulator::Schedule (delay, &WifiPeerLinkDescriptorDUP::BeaconLoss, this);
 }
 
 void
-WifiPeerLinkDescriptor::SetMaxBeaconLoss (uint8_t maxBeaconLoss)
+WifiPeerLinkDescriptorDUP::SetMaxBeaconLoss (uint8_t maxBeaconLoss)
 {
   m_maxBeaconLoss = maxBeaconLoss;
 }
 
 void
-WifiPeerLinkDescriptor::SetLinkStatusCallback (Callback<void, Mac48Address, Mac48Address, bool> cb)
+WifiPeerLinkDescriptorDUP::SetLinkStatusCallback (Callback<void, Mac48Address, Mac48Address, bool> cb)
 {
   m_linkStatusCallback = cb;
 }
 void
-WifiPeerLinkDescriptor::BeaconLoss ()
+WifiPeerLinkDescriptorDUP::BeaconLoss ()
 {
   StateMachine (CNCL);
 }
 
 void
-WifiPeerLinkDescriptor::SetBeaconTimingElement (IeDot11sBeaconTiming beaconTiming)
+WifiPeerLinkDescriptorDUP::SetBeaconTimingElement (IeDot11sBeaconTiming beaconTiming)
 {
   m_beaconTiming = beaconTiming;
 }
 
 Mac48Address
-WifiPeerLinkDescriptor::GetPeerAddress () const
+WifiPeerLinkDescriptorDUP::GetPeerAddress () const
 {
   return m_peerAddress;
 }
 
 Mac48Address
-WifiPeerLinkDescriptor::GetLocalAddress () const
+WifiPeerLinkDescriptorDUP::GetLocalAddress () const
 {
   return m_localAddress;
 }
 
 
 uint16_t
-WifiPeerLinkDescriptor::GetLocalAid () const
+WifiPeerLinkDescriptorDUP::GetLocalAid () const
 {
   return m_assocId;
 }
 
 Time
-WifiPeerLinkDescriptor::GetLastBeacon () const
+WifiPeerLinkDescriptorDUP::GetLastBeacon () const
 {
   return m_lastBeacon;
 }
 
 Time
-WifiPeerLinkDescriptor::GetBeaconInterval () const
+WifiPeerLinkDescriptorDUP::GetBeaconInterval () const
 {
   return m_beaconInterval;
 }
 IeDot11sBeaconTiming
-WifiPeerLinkDescriptor::GetBeaconTimingElement () const
+WifiPeerLinkDescriptorDUP::GetBeaconTimingElement () const
 {
   return m_beaconTiming;
 }
 
 void
-WifiPeerLinkDescriptor::ClearTimingElement ()
+WifiPeerLinkDescriptorDUP::ClearTimingElement ()
 {
   m_beaconTiming.ClearTimingElement ();
 }
 
 
-void  WifiPeerLinkDescriptor::MLMECancelPeerLink (dot11sReasonCode reason)
+void  WifiPeerLinkDescriptorDUP::MLMECancelPeerLink (dot11sReasonCode reason)
 {
   StateMachine (CNCL,reason);
 }
 
-void  WifiPeerLinkDescriptor::MLMEPassivePeerLinkOpen ()
+void  WifiPeerLinkDescriptorDUP::MLMEPassivePeerLinkOpen ()
 {
   StateMachine (PASOPN);
 }
 
-void  WifiPeerLinkDescriptor::MLMEActivePeerLinkOpen ()
+void  WifiPeerLinkDescriptorDUP::MLMEActivePeerLinkOpen ()
 {
   StateMachine (ACTOPN);
 }
-void WifiPeerLinkDescriptor::MLMEPeeringRequestReject ()
+void WifiPeerLinkDescriptorDUP::MLMEPeeringRequestReject ()
 {
   StateMachine (REQ_RJCT, REASON11S_PEER_LINK_CANCELLED);
 }
 #if 0
-void  WifiPeerLinkDescriptor::MLMEBindSecurityAssociation ()
+void  WifiPeerLinkDescriptorDUP::MLMEBindSecurityAssociation ()
 {
   StateMachine (BNDSA);
 }
 #endif
 void
-WifiPeerLinkDescriptor::SetMac (Ptr<MeshWifiMac> mac)
+WifiPeerLinkDescriptorDUP::SetMac (Ptr<MeshWifiMac> mac)
 {
   m_mac = mac;
 }
-void WifiPeerLinkDescriptor::PeerLinkClose (uint16_t localLinkId,uint16_t peerLinkId, dot11sReasonCode reason)
+void WifiPeerLinkDescriptorDUP::PeerLinkClose (uint16_t localLinkId,uint16_t peerLinkId, dot11sReasonCode reason)
 {
   if (peerLinkId != 0 && m_localLinkId != peerLinkId)
     return;
@@ -178,7 +178,7 @@
   StateMachine (CLS_ACPT, reason);
 }
 
-void WifiPeerLinkDescriptor::PeerLinkOpenAccept (uint16_t localLinkId, IeDot11sConfiguration  conf)
+void WifiPeerLinkDescriptorDUP::PeerLinkOpenAccept (uint16_t localLinkId, IeDot11sConfiguration  conf)
 {
   if (m_peerLinkId == 0)
     m_peerLinkId = localLinkId;
@@ -186,7 +186,7 @@
   StateMachine (OPN_ACPT);
 }
 
-void WifiPeerLinkDescriptor::PeerLinkOpenReject (uint16_t localLinkId, IeDot11sConfiguration  conf,dot11sReasonCode reason)
+void WifiPeerLinkDescriptorDUP::PeerLinkOpenReject (uint16_t localLinkId, IeDot11sConfiguration  conf,dot11sReasonCode reason)
 {
   if ( m_peerLinkId == 0)
     m_peerLinkId = localLinkId;
@@ -195,7 +195,7 @@
 }
 
 void
-WifiPeerLinkDescriptor::PeerLinkConfirmAccept (uint16_t localLinkId,uint16_t peerLinkId, uint16_t peerAid, IeDot11sConfiguration  conf)
+WifiPeerLinkDescriptorDUP::PeerLinkConfirmAccept (uint16_t localLinkId,uint16_t peerLinkId, uint16_t peerAid, IeDot11sConfiguration  conf)
 {
   if ( m_localLinkId != peerLinkId)
     return;
@@ -208,7 +208,7 @@
   StateMachine (CNF_ACPT);
 }
 
-void   WifiPeerLinkDescriptor:: PeerLinkConfirmReject (uint16_t localLinkId, uint16_t peerLinkId,
+void   WifiPeerLinkDescriptorDUP:: PeerLinkConfirmReject (uint16_t localLinkId, uint16_t peerLinkId,
     IeDot11sConfiguration  conf,dot11sReasonCode reason)
 {
   if (m_localLinkId != peerLinkId)
@@ -222,7 +222,7 @@
 }
 
 bool
-WifiPeerLinkDescriptor::LinkIsEstab () const
+WifiPeerLinkDescriptorDUP::LinkIsEstab () const
 {
   if (m_state == ESTAB)
     return true;
@@ -230,7 +230,7 @@
 }
 
 bool
-WifiPeerLinkDescriptor::LinkIsIdle () const
+WifiPeerLinkDescriptorDUP::LinkIsIdle () const
 {
   if (m_state == IDLE)
     return true;
@@ -238,7 +238,7 @@
 }
 
 void
-WifiPeerLinkDescriptor::StateMachine (PeerEvent event,dot11sReasonCode reasoncode)
+WifiPeerLinkDescriptorDUP::StateMachine (PeerEvent event,dot11sReasonCode reasoncode)
 {
   switch (m_state)
     {
@@ -481,29 +481,29 @@
     }
 }
 
-void WifiPeerLinkDescriptor::ClearRetryTimer ()
+void WifiPeerLinkDescriptorDUP::ClearRetryTimer ()
 {
   m_retryTimer.Cancel ();
 }
 
-void WifiPeerLinkDescriptor::ClearConfirmTimer ()
+void WifiPeerLinkDescriptorDUP::ClearConfirmTimer ()
 {
   m_confirmTimer.Cancel ();
 }
 
-void WifiPeerLinkDescriptor::ClearHoldingTimer ()
+void WifiPeerLinkDescriptorDUP::ClearHoldingTimer ()
 {
   m_holdingTimer.Cancel ();
 }
 
-void WifiPeerLinkDescriptor::SendPeerLinkClose (dot11sReasonCode reasoncode)
+void WifiPeerLinkDescriptorDUP::SendPeerLinkClose (dot11sReasonCode reasoncode)
 {
   IeDot11sPeerManagement peerElement;
   peerElement.SetPeerClose (m_localLinkId, m_peerLinkId, reasoncode);
   m_mac->SendPeerLinkClose (peerElement,m_peerAddress);
 }
 
-void WifiPeerLinkDescriptor::SendPeerLinkOpen ()
+void WifiPeerLinkDescriptorDUP::SendPeerLinkOpen ()
 {
   IeDot11sPeerManagement peerElement;
   peerElement.SetPeerOpen (m_localLinkId);
@@ -511,29 +511,29 @@
   m_mac->SendPeerLinkOpen (peerElement, m_peerAddress);
 }
 
-void WifiPeerLinkDescriptor::SendPeerLinkConfirm ()
+void WifiPeerLinkDescriptorDUP::SendPeerLinkConfirm ()
 {
   IeDot11sPeerManagement peerElement;
   peerElement.SetPeerConfirm (m_localLinkId, m_peerLinkId);
   m_mac->SendPeerLinkConfirm (peerElement, m_peerAddress, m_assocId);
 }
 
-void WifiPeerLinkDescriptor::SetHoldingTimer ()
+void WifiPeerLinkDescriptorDUP::SetHoldingTimer ()
 {
-  m_holdingTimer = Simulator::Schedule (dot11sParameters::dot11MeshHoldingTimeout, &WifiPeerLinkDescriptor::HoldingTimeout, this);
+  m_holdingTimer = Simulator::Schedule (dot11sParameters::dot11MeshHoldingTimeout, &WifiPeerLinkDescriptorDUP::HoldingTimeout, this);
 }
 
-void WifiPeerLinkDescriptor::HoldingTimeout ()
+void WifiPeerLinkDescriptorDUP::HoldingTimeout ()
 {
   StateMachine (TOH);
 }
 
-void WifiPeerLinkDescriptor::SetRetryTimer ()
+void WifiPeerLinkDescriptorDUP::SetRetryTimer ()
 {
-  m_retryTimer = Simulator::Schedule (dot11sParameters::dot11MeshRetryTimeout, &WifiPeerLinkDescriptor::RetryTimeout, this);
+  m_retryTimer = Simulator::Schedule (dot11sParameters::dot11MeshRetryTimeout, &WifiPeerLinkDescriptorDUP::RetryTimeout, this);
 }
 
-void WifiPeerLinkDescriptor::RetryTimeout ()
+void WifiPeerLinkDescriptorDUP::RetryTimeout ()
 {
   if ( m_retryCounter < dot11sParameters::dot11MeshMaxRetries)
     StateMachine (TOR1);
@@ -541,12 +541,12 @@
     StateMachine (TOR2);
 }
 
-void WifiPeerLinkDescriptor::SetConfirmTimer ()
+void WifiPeerLinkDescriptorDUP::SetConfirmTimer ()
 {
-  m_confirmTimer = Simulator::Schedule (dot11sParameters::dot11MeshConfirmTimeout, &WifiPeerLinkDescriptor::ConfirmTimeout, this);
+  m_confirmTimer = Simulator::Schedule (dot11sParameters::dot11MeshConfirmTimeout, &WifiPeerLinkDescriptorDUP::ConfirmTimeout, this);
 }
 
-void WifiPeerLinkDescriptor::ConfirmTimeout ()
+void WifiPeerLinkDescriptorDUP::ConfirmTimeout ()
 {
   StateMachine (TOC);
 }
@@ -604,7 +604,7 @@
     j++)
     {
       int to_delete = 0;
-      for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = j->second.begin (); i != j->second.end(); i++)
+      for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = j->second.begin (); i != j->second.end(); i++)
         {
           to_delete ++;
           (*i)->ClearTimingElement ();
@@ -641,7 +641,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     {
       if ((*i)->GetPeerAddress () == peerAddress)
         {
@@ -650,7 +650,7 @@
           return;
         }
     }
-  Ptr<WifiPeerLinkDescriptor> new_descriptor =
+  Ptr<WifiPeerLinkDescriptorDUP> new_descriptor =
     AddDescriptor (portAddress, peerAddress, Simulator::Now(), beaconInterval);
   new_descriptor->SetBeaconTimingElement (beaconTiming);
 }
@@ -668,7 +668,7 @@
       //Add a mac pointer:
       m_macPointers[meshWifiMac->GetAddress ()] = meshWifiMac;
       //Add descriptor array:
-      std::vector<Ptr<WifiPeerLinkDescriptor> > descriptors;
+      std::vector<Ptr<WifiPeerLinkDescriptorDUP> > descriptors;
       m_peerDescriptors[meshWifiMac->GetAddress ()] = descriptors;
       //Add beacon timers:
       struct BeaconInfo myBeacon;
@@ -681,7 +681,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       {
         if (ShouldSendOpen (portAddress, peerAddress))
@@ -703,7 +703,7 @@
     return;
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       {
         (*i)->PeerLinkOpenAccept (peerMan.GetLocalLinkId(), conf);
@@ -711,7 +711,7 @@
       }
   BeaconInfoMap::iterator myBeacon =  m_myBeaconInfo.find (portAddress);
   NS_ASSERT (myBeacon != m_myBeaconInfo.end());
-  Ptr<WifiPeerLinkDescriptor>new_descriptor = AddDescriptor (
+  Ptr<WifiPeerLinkDescriptorDUP>new_descriptor = AddDescriptor (
         portAddress,
         peerAddress,
         Simulator::Now (),
@@ -730,7 +730,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       (*i)->PeerLinkConfirmAccept (peerMan.GetLocalLinkId(), peerMan.GetPeerLinkId(), peerAid, meshConfig);
 }
@@ -744,7 +744,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       {
         (*i)->PeerLinkClose (peerMan.GetLocalLinkId(), peerMan.GetPeerLinkId(), peerMan.GetReasonCode());
@@ -760,7 +760,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       {
         (*i)->MLMECancelPeerLink (REASON11S_MESH_CONFIGURATION_POLICY_VIOLATION);
@@ -775,7 +775,7 @@
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
   IeDot11sBeaconTiming return_val;
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     {
       //Just go through all neighbor entries and add it to timing element:
       return_val.AddNeighboursTimingElementUnit (
@@ -795,19 +795,19 @@
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
   IeDot11sBeaconTiming return_val;
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == addr)
       return_val =  (*i)->GetBeaconTimingElement ();
   return return_val;
 }
-Ptr<WifiPeerLinkDescriptor>
+Ptr<WifiPeerLinkDescriptorDUP>
 WifiPeerManager::AddDescriptor (
   Mac48Address portAddress,
   Mac48Address peerAddress,
   Time lastBeacon,
   Time beaconInterval)
 {
-  Ptr<WifiPeerLinkDescriptor> new_descriptor = Create<WifiPeerLinkDescriptor> ();
+  Ptr<WifiPeerLinkDescriptorDUP> new_descriptor = Create<WifiPeerLinkDescriptorDUP> ();
   if (m_assocId == 0xff)
     m_assocId = 0;
   if (m_localLinkId == 0xff)
@@ -863,7 +863,7 @@
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
   std::vector<Mac48Address> return_value;
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     return_value.push_back ((*i)->GetPeerAddress());
   return return_value;
 }
@@ -873,7 +873,7 @@
 {
   PeerDescriptorsMap::iterator port = m_peerDescriptors.find (portAddress);
   NS_ASSERT (port != m_peerDescriptors.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     if ((*i)->GetPeerAddress () == peerAddress)
       return ((*i)->LinkIsEstab ());
   return false;
@@ -916,7 +916,7 @@
   NS_ASSERT (port != m_peerDescriptors.end());
   BeaconInfoMap::iterator myBeacon = m_myBeaconInfo.find (portAddress);
   NS_ASSERT (myBeacon != m_myBeaconInfo.end());
-  for (std::vector<Ptr<WifiPeerLinkDescriptor> >::iterator i = port->second.begin (); i != port->second.end(); i++)
+  for (std::vector<Ptr<WifiPeerLinkDescriptorDUP> >::iterator i = port->second.begin (); i != port->second.end(); i++)
     {
       IeDot11sBeaconTiming::NeighboursTimingUnitsList neighbours;
       neighbours = (*i)->GetBeaconTimingElement ().GetNeighboursTimingElementsList();