merge
authorNicola Baldo <nbaldo@cttc.es>
Thu, 22 Apr 2010 15:23:20 +0200
changeset 6269ab2aa79904e8
parent 6268 84e114d34b89
parent 6266 35e7d9d585be
child 6270 43ffdd643b6a
merge
     1.1 --- a/.hgtags	Wed Apr 21 17:00:57 2010 +0200
     1.2 +++ b/.hgtags	Thu Apr 22 15:23:20 2010 +0200
     1.3 @@ -44,3 +44,4 @@
     1.4  892efc87a1518fb69b04628c779195aee139d33e ns-3.7-RC3
     1.5  17bf6ee332baaa6b6f9b8a26d29c98f4e715648f ns-3.7-RC4
     1.6  be3fb855c65a46d22a7693cd156f154f63602e8e ns-3.7
     1.7 +e61ce382fcdd5363a9d0052601c5eeae6f5e8d81 ns-3.8-RC1
     2.1 --- a/doc/manual/tracing.texi	Wed Apr 21 17:00:57 2010 +0200
     2.2 +++ b/doc/manual/tracing.texi	Thu Apr 22 15:23:20 2010 +0200
     2.3 @@ -812,7 +812,7 @@
     2.4  methods must implement a single virtual method inherited from this class.  There
     2.5  will be a separate implementation for @code{Ipv6}, for example, but the only
     2.6  difference will be in the method names and signatures.  Different method names
     2.7 -are required to disambiguate class @code{Ipv4} from @coe{Ipv6} which are both 
     2.8 +are required to disambiguate class @code{Ipv4} from @code{Ipv6} which are both 
     2.9  derived from class @code{Object}, and methods that share the same signature.
    2.10  
    2.11  @verbatim
    2.12 @@ -906,7 +906,7 @@
    2.13  @end verbatim
    2.14  
    2.15  You can enable pcap tracing on the basis of node ID and interface as well.  In
    2.16 -this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
    2.17 +this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
    2.18  protocol is looked up in the node.  The resulting protocol and interface are
    2.19  used to specify the resulting trace source.
    2.20  
    2.21 @@ -1147,7 +1147,7 @@
    2.22  traces into a single file is accomplished similarly to the examples above:
    2.23  
    2.24  You can enable pcap tracing on the basis of node ID and device ID as well.  In
    2.25 -this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
    2.26 +this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
    2.27  protocol is looked up in the node.  The resulting protocol and interface are
    2.28  used to specify the resulting trace source.
    2.29  
     3.1 --- a/doc/release_steps.txt	Wed Apr 21 17:00:57 2010 +0200
     3.2 +++ b/doc/release_steps.txt	Thu Apr 22 15:23:20 2010 +0200
     3.3 @@ -94,10 +94,21 @@
     3.4       -- edit ~/bin/update-doxygen-release file and change RELEASE variable 
     3.5          to the right version number 
     3.6       -- run ~/bin/update-doxygen-release
     3.7 -15. Final checks
     3.8 +15. build release documentation
     3.9 +   - if this is final release (not RC)
    3.10 +     -- archive old release documentation in /var/www/html/docs/release 
    3.11 +        by creating release specific folder and moving current 
    3.12 +        documenation into this folder
    3.13 +     -- from ns-3.x/doc, enter manual/ testing/ and tutorial directories 
    3.14 +        and build the documentation using make
    3.15 +     -- copy this newly created documentation into 
    3.16 +        /var/www/html/docs/release making sure to copy only the 
    3.17 +        necessary files
    3.18 +16. Final checks
    3.19 +   - check manual, testing, and tutorial documentation links
    3.20     - download tarball from web, build and run regression tests for as many
    3.21       targets as you can
    3.22     - download release from mercurial, build and run regression tests for as
    3.23       many targets as you can
    3.24     - test and verify until you're confident the release is solid.
    3.25 -16. announce to ns-developers, with summary of release notes
    3.26 +17. announce to ns-developers, with summary of release notes
     4.1 --- a/doc/testing/testing-framework.texi	Wed Apr 21 17:00:57 2010 +0200
     4.2 +++ b/doc/testing/testing-framework.texi	Thu Apr 22 15:23:20 2010 +0200
     4.3 @@ -562,7 +562,7 @@
     4.4  provide one.  It first looks for environment variables named @code{TMP} and 
     4.5  @code{TEMP} and uses those.  If neither @code{TMP} nor @code{TEMP} are defined
     4.6  it picks @code{/tmp}.  The code then tacks on an identifier indicating what 
     4.7 -created the directory (ns-3) then the time (hh.mm.ss} followed by a large random
     4.8 +created the directory (ns-3) then the time (hh.mm.ss) followed by a large random
     4.9  number.  The test runner creates a directory of that name to be used as the
    4.10  temporary directory.  Temporary files then go into a directory that will be
    4.11  named something like,
     5.1 --- a/doc/tutorial/tracing.texi	Wed Apr 21 17:00:57 2010 +0200
     5.2 +++ b/doc/tutorial/tracing.texi	Thu Apr 22 15:23:20 2010 +0200
     5.3 @@ -2083,7 +2083,7 @@
     5.4  is a one-liner in the trace sink to write a timestamp and the contents of the 
     5.5  packet being dropped to the pcap file:
     5.6  
     5.7 -@end verbatim
     5.8 +@verbatim
     5.9    file->Write(Simulator::Now(), p);
    5.10  @end verbatim
    5.11  
    5.12 @@ -2755,7 +2755,7 @@
    5.13  methods must implement a single virtual method inherited from this class.  There
    5.14  will be a separate implementation for @code{Ipv6}, for example, but the only
    5.15  difference will be in the method names and signatures.  Different method names
    5.16 -are required to disambiguate class @code{Ipv4} from @coe{Ipv6} which are both 
    5.17 +are required to disambiguate class @code{Ipv4} from @code{Ipv6} which are both 
    5.18  derived from class @code{Object}, and methods that share the same signature.
    5.19  
    5.20  @verbatim
    5.21 @@ -2852,7 +2852,7 @@
    5.22  @end verbatim
    5.23  
    5.24  You can enable pcap tracing on the basis of node ID and interface as well.  In
    5.25 -this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
    5.26 +this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
    5.27  protocol is looked up in the node.  The resulting protocol and interface are
    5.28  used to specify the resulting trace source.
    5.29  
    5.30 @@ -3101,7 +3101,7 @@
    5.31  traces into a single file is accomplished similarly to the examples above:
    5.32  
    5.33  You can enable pcap tracing on the basis of node ID and device ID as well.  In
    5.34 -this case, the node-id is translated to a @code{Ptr{Node} and the appropriate
    5.35 +this case, the node-id is translated to a @code{Ptr<Node>} and the appropriate
    5.36  protocol is looked up in the node.  The resulting protocol and interface are
    5.37  used to specify the resulting trace source.
    5.38  
     6.1 --- a/src/applications/udp-client-server/packet-loss-counter.cc	Wed Apr 21 17:00:57 2010 +0200
     6.2 +++ b/src/applications/udp-client-server/packet-loss-counter.cc	Thu Apr 22 15:23:20 2010 +0200
     6.3 @@ -60,7 +60,7 @@
     6.4        delete [] m_receiveBitMap;
     6.5      }
     6.6    m_receiveBitMap = new uint8_t [m_bitMapSize] ();
     6.7 -  memset (m_receiveBitMap,1,m_bitMapSize);
     6.8 +  memset (m_receiveBitMap,0xFF,m_bitMapSize);
     6.9  }
    6.10  
    6.11  uint32_t
    6.12 @@ -103,17 +103,14 @@
    6.13  void
    6.14  PacketLossCounter::NotifyReceived (uint32_t seqNum)
    6.15  {
    6.16 -  if (seqNum>(uint32_t)(m_bitMapSize*8)-1)
    6.17 +  for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
    6.18      {
    6.19 -      for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
    6.20 +      if (GetBit(i)!=1)
    6.21          {
    6.22 -          if (GetBit(i)!=1)
    6.23 -            {
    6.24 -              NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
    6.25 -              m_lost++;
    6.26 -            }
    6.27 -          SetBit(i, 0);
    6.28 +          NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
    6.29 +          m_lost++;
    6.30          }
    6.31 +      SetBit(i, 0);
    6.32      }
    6.33    SetBit(seqNum, 1);
    6.34    if (seqNum>m_lastMaxSeqNum)
     7.1 --- a/src/applications/udp-client-server/udp-client-server-test.cc	Wed Apr 21 17:00:57 2010 +0200
     7.2 +++ b/src/applications/udp-client-server/udp-client-server-test.cc	Thu Apr 22 15:23:20 2010 +0200
     7.3 @@ -208,6 +208,7 @@
     7.4  bool PacketLossCounterTestCase::DoRun (void)
     7.5  {
     7.6    PacketLossCounter lossCounter(32);
     7.7 +  lossCounter.NotifyReceived(32); //out of order
     7.8    for (uint32_t i=0;i<64;i++)
     7.9      {
    7.10        lossCounter.NotifyReceived(i);
     8.1 --- a/src/devices/wimax/simple-ofdm-wimax-channel.h	Wed Apr 21 17:00:57 2010 +0200
     8.2 +++ b/src/devices/wimax/simple-ofdm-wimax-channel.h	Thu Apr 22 15:23:20 2010 +0200
     8.3 @@ -50,17 +50,17 @@
     8.4    };
     8.5    /**
     8.6     * \brief Creates a channel and sets the propagation model
     8.7 -   * \param propModel the propagation model to used
     8.8 +   * \param propModel the propagation model to use
     8.9     */
    8.10    SimpleOfdmWimaxChannel (PropModel propModel);
    8.11    /**
    8.12 -   * \brief Sends a fec block to all connected physical dxdevices
    8.13 +   * \brief Sends a fec block to all connected physical devices
    8.14     * \param BlockTime the time needed to send the block
    8.15     * \param fecBlock the fec block being sent
    8.16     * \param burstSize the size of the burst
    8.17     * \param phy the sender device
    8.18     * \param isFirstBlock true if this block is the first one, false otherwise
    8.19 -   * \param frequency the frequency on wich the block is sent
    8.20 +   * \param frequency the frequency on which the block is sent
    8.21     * \param modulationType the modulation used to send the fec block
    8.22     * \param direction uplink or downlink
    8.23     * \param txPowerDbm the transmission power
     9.1 --- a/src/helper/wimax-helper.cc	Wed Apr 21 17:00:57 2010 +0200
     9.2 +++ b/src/helper/wimax-helper.cc	Thu Apr 22 15:23:20 2010 +0200
     9.3 @@ -80,7 +80,7 @@
     9.4        phy = CreateObject<SimpleOfdmWimaxPhy> ();
     9.5        if (!m_channel)
     9.6          {
     9.7 -          m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
     9.8 +          m_channel = CreateObject<SimpleOfdmWimaxChannel> (SimpleOfdmWimaxChannel::COST231_PROPAGATION);
     9.9          }
    9.10        break;
    9.11      default:
    9.12 @@ -91,6 +91,15 @@
    9.13    return phy;
    9.14  }
    9.15  
    9.16 +void WimaxHelper::SetPropagationLossModel (SimpleOfdmWimaxChannel::PropModel propagationModel)
    9.17 +{
    9.18 +  if (!m_channel)
    9.19 +    {
    9.20 +      m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
    9.21 +    }
    9.22 +  m_channel->GetObject<SimpleOfdmWimaxChannel> ()->SetPropagationModel (propagationModel);
    9.23 +}
    9.24 +
    9.25  Ptr<WimaxPhy> WimaxHelper::CreatePhy (PhyType phyType, char * SNRTraceFilePath, bool activateLoss)
    9.26  {
    9.27    Ptr<WimaxPhy> phy;
    9.28 @@ -104,7 +113,7 @@
    9.29        sphy->ActivateLoss (activateLoss);
    9.30        if (!m_channel)
    9.31          {
    9.32 -          m_channel = CreateObject<SimpleOfdmWimaxChannel> ();
    9.33 +          m_channel = CreateObject<SimpleOfdmWimaxChannel> (SimpleOfdmWimaxChannel::COST231_PROPAGATION);
    9.34          }
    9.35        break;
    9.36      default:
    10.1 --- a/src/helper/wimax-helper.h	Wed Apr 21 17:00:57 2010 +0200
    10.2 +++ b/src/helper/wimax-helper.h	Thu Apr 22 15:23:20 2010 +0200
    10.3 @@ -31,6 +31,7 @@
    10.4  #include "ns3/deprecated.h"
    10.5  #include "ns3/service-flow.h"
    10.6  #include "ns3/propagation-loss-model.h"
    10.7 +#include "ns3/simple-ofdm-wimax-channel.h"
    10.8  #include "ns3/bs-uplink-scheduler.h"
    10.9  #include "ns3/bs-uplink-scheduler-mbqos.h"
   10.10  #include "ns3/bs-uplink-scheduler-simple.h"
   10.11 @@ -46,9 +47,15 @@
   10.12  class WimaxPhy;
   10.13  class UplinkScheduler;
   10.14  
   10.15 +
   10.16  /**
   10.17 - * \brief build a set of WimaxNetDevice objects
   10.18 + * \brief helps to manage and create WimaxNetDevice objects
   10.19 + *
   10.20 + * This class can help to create a large set of similar
   10.21 + * WimaxNetDevice objects and to configure their attributes
   10.22 + * during creation.
   10.23   */
   10.24 +
   10.25  class WimaxHelper :public PcapHelperForDevice, public AsciiTraceHelperForDevice
   10.26  {
   10.27  public:
   10.28 @@ -84,7 +91,9 @@
   10.29      /**< An migration-based uplink scheduler */
   10.30  
   10.31    };
   10.32 -
   10.33 +  /**
   10.34 +   * \brief Create a Wimax helper in an empty state.
   10.35 +   */
   10.36    WimaxHelper (void);
   10.37    ~WimaxHelper (void);
   10.38    /**
   10.39 @@ -133,7 +142,7 @@
   10.40     * \param c a set of nodes
   10.41     * \param type device type to create
   10.42     * \param phyType a phy to use
   10.43 -   * \param schedulerType a scheduling mechanism
   10.44 +   * \param schedulerType the type of the scheduling algorithm to install
   10.45     *
   10.46     * For each of the input nodes, a new WiMAX net device (either
   10.47     * ns3::SubscriberStationNetDevice or ns3::BaseStationNetDevice
   10.48 @@ -175,6 +184,13 @@
   10.49                                double frameDuration);
   10.50  
   10.51    /**
   10.52 +   * \brief Set the propagation and loss model of the channel. By default the channel
   10.53 +   *  uses a COST231 propagation and loss model.
   10.54 +   * \param propagationModel The propagation and loss model to set
   10.55 +   */
   10.56 +  void SetPropagationLossModel (SimpleOfdmWimaxChannel::PropModel propagationModel);
   10.57 +
   10.58 +  /**
   10.59     * \param phyType WiMAX Physical layer type
   10.60     * \return WiMAX Phy object
   10.61     *
   10.62 @@ -188,14 +204,14 @@
   10.63     * \param activateLoss set to 1 to activate losses 0 otherwise
   10.64     * \return WiMAX Phy object
   10.65     *
   10.66 -   * Creates a physical layer without a channel
   10.67 +   * Creates a physical layer without creating a channel
   10.68     */
   10.69    Ptr<WimaxPhy> CreatePhyWithoutChannel (PhyType phyType, char * SNRTraceFilePath, bool activateLoss);
   10.70  
   10.71    /**
   10.72     * \param phyType WiMAX Physical layer type
   10.73 -   * \param SNRTraceFilePath of the repository containing the SNR traces files
   10.74 -   * \param activateLoss set to 1 to activate losses 0 otherwise
   10.75 +   * \param SNRTraceFilePath the path to the repository containing the SNR traces files
   10.76 +   * \param activateLoss set to 1 if you want ton activate losses 0 otherwise
   10.77     * \return WiMAX Phy object
   10.78     *
   10.79     * Creates a physical layer
   10.80 @@ -206,7 +222,7 @@
   10.81     * \param deviceType Device type to create.
   10.82     * \param phyType PHY type to create.
   10.83     * \param channel A channel to use.
   10.84 -   * \param schedulerType The scheduling mechanism.
   10.85 +   * \param schedulerType The scheduling mechanism to install on the device.
   10.86     *
   10.87     * For each of the input nodes, a new WiMAX net device (either
   10.88     * ns3::SubscriberStationNetDevice or ns3::BaseStationNetDevice
   10.89 @@ -220,7 +236,7 @@
   10.90  
   10.91    /**
   10.92     * \brief Creates a transport service flow.
   10.93 -   * \param direction the Direction of the service flow: UP or DOWN.
   10.94 +   * \param direction the direction of the service flow: UP or DOWN.
   10.95     * \param schedulinType The service scheduling type to be used: UGS, RTPS, NRTPS, BE
   10.96     * \param classifier The classifier to be used for this service flow
   10.97     *