merge
authorNicola Baldo <nbaldo@cttc.es>
Thu, 22 Apr 2010 15:23:20 +0200
changeset 6269 ab2aa79904e8
parent 6268 84e114d34b89 (current diff)
parent 6266 35e7d9d585be (diff)
child 6270 43ffdd643b6a
merge
--- a/.hgtags	Wed Apr 21 17:00:57 2010 +0200
+++ b/.hgtags	Thu Apr 22 15:23:20 2010 +0200
@@ -44,3 +44,4 @@
 892efc87a1518fb69b04628c779195aee139d33e ns-3.7-RC3
 17bf6ee332baaa6b6f9b8a26d29c98f4e715648f ns-3.7-RC4
 be3fb855c65a46d22a7693cd156f154f63602e8e ns-3.7
+e61ce382fcdd5363a9d0052601c5eeae6f5e8d81 ns-3.8-RC1
--- a/doc/manual/tracing.texi	Wed Apr 21 17:00:57 2010 +0200
+++ b/doc/manual/tracing.texi	Thu Apr 22 15:23:20 2010 +0200
@@ -812,7 +812,7 @@
 methods must implement a single virtual method inherited from this class.  There
 will be a separate implementation for @code{Ipv6}, for example, but the only
 difference will be in the method names and signatures.  Different method names
-are required to disambiguate class @code{Ipv4} from @coe{Ipv6} which are both 
+are required to disambiguate class @code{Ipv4} from @code{Ipv6} which are both 
 derived from class @code{Object}, and methods that share the same signature.
 
 @verbatim
@@ -906,7 +906,7 @@
 @end verbatim
 
 You can enable pcap tracing on the basis of node ID and interface as well.  In
-this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
+this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
 protocol is looked up in the node.  The resulting protocol and interface are
 used to specify the resulting trace source.
 
@@ -1147,7 +1147,7 @@
 traces into a single file is accomplished similarly to the examples above:
 
 You can enable pcap tracing on the basis of node ID and device ID as well.  In
-this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
+this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
 protocol is looked up in the node.  The resulting protocol and interface are
 used to specify the resulting trace source.
 
--- a/doc/release_steps.txt	Wed Apr 21 17:00:57 2010 +0200
+++ b/doc/release_steps.txt	Thu Apr 22 15:23:20 2010 +0200
@@ -94,10 +94,21 @@
      -- edit ~/bin/update-doxygen-release file and change RELEASE variable 
         to the right version number 
      -- run ~/bin/update-doxygen-release
-15. Final checks
+15. build release documentation
+   - if this is final release (not RC)
+     -- archive old release documentation in /var/www/html/docs/release 
+        by creating release specific folder and moving current 
+        documenation into this folder
+     -- from ns-3.x/doc, enter manual/ testing/ and tutorial directories 
+        and build the documentation using make
+     -- copy this newly created documentation into 
+        /var/www/html/docs/release making sure to copy only the 
+        necessary files
+16. Final checks
+   - check manual, testing, and tutorial documentation links
    - download tarball from web, build and run regression tests for as many
      targets as you can
    - download release from mercurial, build and run regression tests for as
      many targets as you can
    - test and verify until you're confident the release is solid.
-16. announce to ns-developers, with summary of release notes
+17. announce to ns-developers, with summary of release notes
--- a/doc/testing/testing-framework.texi	Wed Apr 21 17:00:57 2010 +0200
+++ b/doc/testing/testing-framework.texi	Thu Apr 22 15:23:20 2010 +0200
@@ -562,7 +562,7 @@
 provide one.  It first looks for environment variables named @code{TMP} and 
 @code{TEMP} and uses those.  If neither @code{TMP} nor @code{TEMP} are defined
 it picks @code{/tmp}.  The code then tacks on an identifier indicating what 
-created the directory (ns-3) then the time (hh.mm.ss} followed by a large random
+created the directory (ns-3) then the time (hh.mm.ss) followed by a large random
 number.  The test runner creates a directory of that name to be used as the
 temporary directory.  Temporary files then go into a directory that will be
 named something like,
--- a/doc/tutorial/tracing.texi	Wed Apr 21 17:00:57 2010 +0200
+++ b/doc/tutorial/tracing.texi	Thu Apr 22 15:23:20 2010 +0200
@@ -2083,7 +2083,7 @@
 is a one-liner in the trace sink to write a timestamp and the contents of the 
 packet being dropped to the pcap file:
 
-@end verbatim
+@verbatim
   file->Write(Simulator::Now(), p);
 @end verbatim
 
@@ -2755,7 +2755,7 @@
 methods must implement a single virtual method inherited from this class.  There
 will be a separate implementation for @code{Ipv6}, for example, but the only
 difference will be in the method names and signatures.  Different method names
-are required to disambiguate class @code{Ipv4} from @coe{Ipv6} which are both 
+are required to disambiguate class @code{Ipv4} from @code{Ipv6} which are both 
 derived from class @code{Object}, and methods that share the same signature.
 
 @verbatim
@@ -2852,7 +2852,7 @@
 @end verbatim
 
 You can enable pcap tracing on the basis of node ID and interface as well.  In
-this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
+this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
 protocol is looked up in the node.  The resulting protocol and interface are
 used to specify the resulting trace source.
 
@@ -3101,7 +3101,7 @@
 traces into a single file is accomplished similarly to the examples above:
 
 You can enable pcap tracing on the basis of node ID and device ID as well.  In
-this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
+this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
 protocol is looked up in the node.  The resulting protocol and interface are
 used to specify the resulting trace source.
 
--- a/src/applications/udp-client-server/packet-loss-counter.cc	Wed Apr 21 17:00:57 2010 +0200
+++ b/src/applications/udp-client-server/packet-loss-counter.cc	Thu Apr 22 15:23:20 2010 +0200
@@ -60,7 +60,7 @@
       delete [] m_receiveBitMap;
     }
   m_receiveBitMap = new uint8_t [m_bitMapSize] ();
-  memset (m_receiveBitMap,1,m_bitMapSize);
+  memset (m_receiveBitMap,0xFF,m_bitMapSize);
 }
 
 uint32_t
@@ -103,17 +103,14 @@
 void
 PacketLossCounter::NotifyReceived (uint32_t seqNum)
 {
-  if (seqNum>(uint32_t)(m_bitMapSize*8)-1)
+  for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
     {
-      for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
+      if (GetBit(i)!=1)
         {
-          if (GetBit(i)!=1)
-            {
-              NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
-              m_lost++;
-            }
-          SetBit(i, 0);
+          NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
+          m_lost++;
         }
+      SetBit(i, 0);
     }
   SetBit(seqNum, 1);
   if (seqNum>m_lastMaxSeqNum)
--- a/src/applications/udp-client-server/udp-client-server-test.cc	Wed Apr 21 17:00:57 2010 +0200
+++ b/src/applications/udp-client-server/udp-client-server-test.cc	Thu Apr 22 15:23:20 2010 +0200
@@ -208,6 +208,7 @@
 bool PacketLossCounterTestCase::DoRun (void)
 {
   PacketLossCounter lossCounter(32);
+  lossCounter.NotifyReceived(32); //out of order
   for (uint32_t i=0;i<64;i++)
     {
       lossCounter.NotifyReceived(i);
--- a/src/devices/wimax/simple-ofdm-wimax-channel.h	Wed Apr 21 17:00:57 2010 +0200
+++ b/src/devices/wimax/simple-ofdm-wimax-channel.h	Thu Apr 22 15:23:20 2010 +0200
@@ -50,17 +50,17 @@
   };
   /**
    * \brief Creates a channel and sets the propagation model
-   * \param propModel the propagation model to used
+   * \param propModel the propagation model to use
    */
   SimpleOfdmWimaxChannel (PropModel propModel);
   /**
-   * \brief Sends a fec block to all connected physical dxdevices
+   * \brief Sends a fec block to all connected physical devices
    * \param BlockTime the time needed to send the block
    * \param fecBlock the fec block being sent
    * \param burstSize the size of the burst
    * \param phy the sender device
    * \param isFirstBlock true if this block is the first one, false otherwise
-   * \param frequency the frequency on wich the block is sent
+   * \param frequency the frequency on which the block is sent
    * \param modulationType the modulation used to send the fec block
    * \param direction uplink or downlink
    * \param txPowerDbm the transmission power
--- a/src/helper/wimax-helper.cc	Wed Apr 21 17:00:57 2010 +0200
+++ b/src/helper/wimax-helper.cc	Thu Apr 22 15:23:20 2010 +0200
@@ -80,7 +80,7 @@
       phy = CreateObject<SimpleOfdmWimaxPhy> ();
       if (!m_channel)
         {
-          m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
+          m_channel = CreateObject<SimpleOfdmWimaxChannel> (SimpleOfdmWimaxChannel::COST231_PROPAGATION);
         }
       break;
     default:
@@ -91,6 +91,15 @@
   return phy;
 }
 
+void WimaxHelper::SetPropagationLossModel (SimpleOfdmWimaxChannel::PropModel propagationModel)
+{
+  if (!m_channel)
+    {
+      m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
+    }
+  m_channel->GetObject<SimpleOfdmWimaxChannel> ()->SetPropagationModel (propagationModel);
+}
+
 Ptr<WimaxPhy> WimaxHelper::CreatePhy (PhyType phyType, char * SNRTraceFilePath, bool activateLoss)
 {
   Ptr<WimaxPhy> phy;
@@ -104,7 +113,7 @@
       sphy->ActivateLoss (activateLoss);
       if (!m_channel)
         {
-          m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
+          m_channel = CreateObject<SimpleOfdmWimaxChannel> (SimpleOfdmWimaxChannel::COST231_PROPAGATION);
         }
       break;
     default:
--- a/src/helper/wimax-helper.h	Wed Apr 21 17:00:57 2010 +0200
+++ b/src/helper/wimax-helper.h	Thu Apr 22 15:23:20 2010 +0200
@@ -31,6 +31,7 @@
 #include "ns3/deprecated.h"
 #include "ns3/service-flow.h"
 #include "ns3/propagation-loss-model.h"
+#include "ns3/simple-ofdm-wimax-channel.h"
 #include "ns3/bs-uplink-scheduler.h"
 #include "ns3/bs-uplink-scheduler-mbqos.h"
 #include "ns3/bs-uplink-scheduler-simple.h"
@@ -46,9 +47,15 @@
 class WimaxPhy;
 class UplinkScheduler;
 
+
 /**
- * \brief build a set of WimaxNetDevice objects
+ * \brief helps to manage and create WimaxNetDevice objects
+ *
+ * This class can help to create a large set of similar
+ * WimaxNetDevice objects and to configure their attributes
+ * during creation.
  */
+
 class WimaxHelper :public PcapHelperForDevice, public AsciiTraceHelperForDevice
 {
 public:
@@ -84,7 +91,9 @@
     /**< An migration-based uplink scheduler */
 
   };
-
+  /**
+   * \brief Create a Wimax helper in an empty state.
+   */
   WimaxHelper (void);
   ~WimaxHelper (void);
   /**
@@ -133,7 +142,7 @@
    * \param c a set of nodes
    * \param type device type to create
    * \param phyType a phy to use
-   * \param schedulerType a scheduling mechanism
+   * \param schedulerType the type of the scheduling algorithm to install
    *
    * For each of the input nodes, a new WiMAX net device (either
    * ns3::SubscriberStationNetDevice or ns3::BaseStationNetDevice
@@ -175,6 +184,13 @@
                               double frameDuration);
 
   /**
+   * \brief Set the propagation and loss model of the channel. By default the channel
+   *  uses a COST231 propagation and loss model.
+   * \param propagationModel The propagation and loss model to set
+   */
+  void SetPropagationLossModel (SimpleOfdmWimaxChannel::PropModel propagationModel);
+
+  /**
    * \param phyType WiMAX Physical layer type
    * \return WiMAX Phy object
    *
@@ -188,14 +204,14 @@
    * \param activateLoss set to 1 to activate losses 0 otherwise
    * \return WiMAX Phy object
    *
-   * Creates a physical layer without a channel
+   * Creates a physical layer without creating a channel
    */
   Ptr<WimaxPhy> CreatePhyWithoutChannel (PhyType phyType, char * SNRTraceFilePath, bool activateLoss);
 
   /**
    * \param phyType WiMAX Physical layer type
-   * \param SNRTraceFilePath of the repository containing the SNR traces files
-   * \param activateLoss set to 1 to activate losses 0 otherwise
+   * \param SNRTraceFilePath the path to the repository containing the SNR traces files
+   * \param activateLoss set to 1 if you want ton activate losses 0 otherwise
    * \return WiMAX Phy object
    *
    * Creates a physical layer
@@ -206,7 +222,7 @@
    * \param deviceType Device type to create.
    * \param phyType PHY type to create.
    * \param channel A channel to use.
-   * \param schedulerType The scheduling mechanism.
+   * \param schedulerType The scheduling mechanism to install on the device.
    *
    * For each of the input nodes, a new WiMAX net device (either
    * ns3::SubscriberStationNetDevice or ns3::BaseStationNetDevice
@@ -220,7 +236,7 @@
 
   /**
    * \brief Creates a transport service flow.
-   * \param direction the Direction of the service flow: UP or DOWN.
+   * \param direction the direction of the service flow: UP or DOWN.
    * \param schedulinType The service scheduling type to be used: UGS, RTPS, NRTPS, BE
    * \param classifier The classifier to be used for this service flow
    *