Merge with ns-3-dev.
authorSebastien Vincent <vincent@clarinet.u-strasbg.fr>
Fri, 16 Oct 2009 10:25:12 +0200
changeset 5783 66c507d12317
parent 5782 f5299c974f1b (current diff)
parent 5425 7b6a845c956f (diff)
child 5784 512909f442f7
Merge with ns-3-dev.
--- a/.hgtags	Thu Oct 15 15:11:27 2009 +0200
+++ b/.hgtags	Fri Oct 16 10:25:12 2009 +0200
@@ -38,3 +38,4 @@
 c975274c9707b1f07d94cc51f205c351122131a5 ns-3.5
 549243b47311211975b388cd64fcb9111caa2fc2 ns-3.6-RC1
 8996042990466b1eda718a848e1c02923c0add74 ns-3.6-RC2
+79ff6ad1adbb7b4677759ddf52028b68b0515168 ns-3.6-RC3
--- a/RELEASE_NOTES	Thu Oct 15 15:11:27 2009 +0200
+++ b/RELEASE_NOTES	Fri Oct 16 10:25:12 2009 +0200
@@ -68,6 +68,10 @@
     - Previous unit tests have been ported to new framework.
     - Examples are tested for run-ability.
 
+  f) A new Flow Monitor module
+   - To very easily measure flow metrics in a simulation
+   - No need to use trace callbacks or parsing trace files
+
 API changes from ns-3.5
 -----------------------
 API changes for this release are documented in the file CHANGES.html. 
--- a/doc/release_steps.txt	Thu Oct 15 15:11:27 2009 +0200
+++ b/doc/release_steps.txt	Fri Oct 16 10:25:12 2009 +0200
@@ -38,20 +38,21 @@
    - clone the ns-3-dev-ref-traces and place it on the repository as above
      but use the name ns-3.x-ref-traces and edit the hgrc appropriately
 7. check out a clean version of the new release (ns-3.x) somewhere
+   - hg clone http://code.nsnam.org/ns-3.x
 8. Update the VERSION for this new release
    - change the string 3-dev in the VERSION file to the real version 
      (e.g. 3.7 or 3.7-RC1)  This must agree with the version name you chose in the clone
      for the regression tests to work.
-   - hg commit
-   - hg push
+   - hg commit -m "update VERSION to ns-3.x"
+   - hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
+
 9. Run the tests on the new release (debug and optimized) like a user would
    You need to use ns-3-allinone since you will use that to make the distro
-   - hg clone http://code.nsnam.org/ns-3-allinone-ns-3.x
+   - hg clone http://code.nsnam.org/ns-3-allinone ns-3-allinone-3.x
+   - cd !$
    - ./download.py -n ns-3.x -r ns-3.x-ref-traces
    - ./build.py
    - cd ns-3.x
-   - ./waf -d debug configure
-   - ./waf
    - ./test.py
    - ./test.py -g
    - ./waf --regression
--- a/src/devices/mesh/dot11s/hwmp-protocol.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/dot11s/hwmp-protocol.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -184,6 +184,7 @@
   m_doFlag (false),
   m_rfFlag (false)
 {
+  NS_LOG_FUNCTION_NOARGS ();
 
   if (m_isRoot)
     {
@@ -193,11 +194,13 @@
 
 HwmpProtocol::~HwmpProtocol ()
 {
+  NS_LOG_FUNCTION_NOARGS ();
 }
 
 void
 HwmpProtocol::DoDispose ()
 {
+  NS_LOG_FUNCTION_NOARGS ();
   for (std::map<Mac48Address, EventId>::iterator i = m_preqTimeouts.begin (); i != m_preqTimeouts.end (); i ++)
     {
       i->second.Cancel ();
@@ -206,8 +209,10 @@
   m_preqTimeouts.clear ();
   m_lastDataSeqno.clear ();
   m_lastHwmpSeqno.clear ();
+  m_interfaces.clear ();
   m_rqueue.clear ();
   m_rtable = 0;
+  m_mp = 0;
 }
 
 bool
--- a/src/devices/mesh/dot11s/ie-dot11s-beacon-timing.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/dot11s/ie-dot11s-beacon-timing.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -118,19 +118,11 @@
 void
 IeBeaconTiming::ClearTimingElement ()
 {
-  uint16_t to_delete = 0;
-  uint16_t i;
   for (NeighboursTimingUnitsList::iterator j = m_neighbours.begin (); j != m_neighbours.end (); j++)
     {
-      to_delete++;
       (*j) = 0;
     }
-  for (i = 0; i < to_delete; i++)
-    {
-      m_neighbours.pop_back ();
-    }
   m_neighbours.clear ();
-
 }
 uint8_t
 IeBeaconTiming::GetInformationSize () const
--- a/src/devices/mesh/dot11s/ie-dot11s-preq.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/dot11s/ie-dot11s-preq.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -373,16 +373,11 @@
 void
 IePreq::ClearDestinationAddressElements ()
 {
-  int i;
   for (std::vector<Ptr<DestinationAddressUnit> >::iterator j = m_destinations.begin (); j
       != m_destinations.end (); j++)
     {
       (*j) = 0;
     }
-  for (i = 0; i < m_destCount; i++)
-    {
-      m_destinations.pop_back ();
-    }
   m_destinations.clear ();
   m_destCount = 0;
 }
--- a/src/devices/mesh/dot11s/peer-management-protocol.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/dot11s/peer-management-protocol.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -93,6 +93,8 @@
       i->second.clear ();
     }
   m_neighbourBeacons.clear ();
+
+  m_plugins.clear ();
 }
 
 bool
--- a/src/devices/mesh/mesh-point-device.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/mesh-point-device.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -73,6 +73,9 @@
       *iter = 0;
     }
   m_ifaces.clear ();
+  m_node = 0;
+  m_channel = 0;
+  m_routingProtocol = 0;
   NetDevice::DoDispose ();
 
 }
--- a/src/devices/mesh/mesh-wifi-beacon.h	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/mesh-wifi-beacon.h	Fri Oct 16 10:25:12 2009 +0200
@@ -27,8 +27,6 @@
 #include "ns3/wifi-mac-header.h"
 #include "ns3/wifi-information-element-vector.h"
 
-#include <vector>
-
 namespace ns3 {
 
 /**
--- a/src/devices/mesh/mesh-wifi-interface-mac.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/mesh-wifi-interface-mac.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -282,8 +282,10 @@
   m_rxMiddle = 0;
   m_low = 0;
   m_dcfManager = 0;
+  m_stationManager = 0;
   m_phy = 0;
   m_queues.clear ();
+  m_plugins.clear ();
   m_beaconSendEvent.Cancel ();
   m_beaconDca = 0;
 
--- a/src/devices/mesh/wifi-information-element-vector.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/mesh/wifi-information-element-vector.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -74,7 +74,7 @@
 void
 WifiInformationElementVector::Serialize (Buffer::Iterator start) const
 {
-  for(std::vector<Ptr<WifiInformationElement> >::const_iterator i = m_elements.begin (); i != m_elements.end (); i ++)
+  for(IE_VECTOR::const_iterator i = m_elements.begin (); i != m_elements.end (); i ++)
     {
       start.WriteU8((*i)->ElementId ());
       start.WriteU8 ((*i)->GetInformationSize ());
--- a/src/devices/wifi/interference-helper.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/wifi/interference-helper.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -611,7 +611,7 @@
     {
       *i = 0;
     }
-  m_events.erase (m_events.begin (), m_events.end ());
+  m_events.clear ();
 }
 
 void
--- a/src/devices/wifi/wifi-net-device.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/wifi/wifi-net-device.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -28,6 +28,9 @@
 #include "ns3/pointer.h"
 #include "ns3/node.h"
 #include "ns3/trace-source-accessor.h"
+#include "ns3/log.h"
+
+NS_LOG_COMPONENT_DEFINE ("WifiNetDevice");
 
 namespace ns3 {
 
@@ -65,13 +68,18 @@
 WifiNetDevice::WifiNetDevice ()
   : m_mtu (0),
     m_configComplete (false)
-{}
+{
+  NS_LOG_FUNCTION_NOARGS ();
+}
 WifiNetDevice::~WifiNetDevice ()
-{}
+{
+  NS_LOG_FUNCTION_NOARGS ();
+}
 
 void
 WifiNetDevice::DoDispose (void)
 {
+  NS_LOG_FUNCTION_NOARGS ();
   m_node = 0;
   m_mac->Dispose ();
   m_phy->Dispose ();
--- a/src/devices/wifi/yans-wifi-channel.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/wifi/yans-wifi-channel.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -56,6 +56,7 @@
 {}
 YansWifiChannel::~YansWifiChannel ()
 {
+  NS_LOG_FUNCTION_NOARGS ();
   m_phyList.clear ();
 }
 
--- a/src/devices/wifi/yans-wifi-phy.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/devices/wifi/yans-wifi-phy.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -139,6 +139,8 @@
   m_channel = 0;
   m_modes.clear ();
   m_device = 0;
+  m_mobility = 0;
+  m_state = 0;
 }
 
 void
--- a/src/helper/dot11s-installer.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/helper/dot11s-installer.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -73,8 +73,9 @@
       hwmp->SetRoot ();
     }
   //Install interaction between HWMP and Peer management protocol:
-  pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, hwmp));
-  hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, pmp));
+  //PeekPointer()'s to avoid circular Ptr references
+  pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, PeekPointer (hwmp)));
+  hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, PeekPointer (pmp)));
   return true;
 }
 void
--- a/src/node/net-device.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/node/net-device.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -45,6 +45,8 @@
 }
 
 NetDevice::~NetDevice ()
-{}
+{
+  NS_LOG_FUNCTION_NOARGS ();
+}
 
 } // namespace ns3
--- a/src/node/node.cc	Thu Oct 15 15:11:27 2009 +0200
+++ b/src/node/node.cc	Fri Oct 16 10:25:12 2009 +0200
@@ -148,6 +148,7 @@
 void 
 Node::DoDispose()
 {
+  m_handlers.clear ();
   for (std::vector<Ptr<NetDevice> >::iterator i = m_devices.begin ();
        i != m_devices.end (); i++)
     {