merge with HEAD
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu Nov 05 21:04:37 2009 +0100 (3 months ago)
changeset 553083baafea199f
parent 5529 b1f7a3a87887
parent 5528 a019314e2ab3
child 5532 fbfdb256aaed
child 5534 eec7dc045214
merge with HEAD
     1.1 --- a/RELEASE_NOTES	Thu Nov 05 21:04:05 2009 +0100
     1.2 +++ b/RELEASE_NOTES	Thu Nov 05 21:04:37 2009 +0100
     1.3 @@ -21,7 +21,6 @@
     1.4    - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
     1.5    - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x)
     1.6    - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized)
     1.7 -  - mingw gcc 3.4.5 (debug only)
     1.8  
     1.9  Not all ns-3 options are available on all platforms; consult the
    1.10  wiki for more information:
    1.11 @@ -78,7 +77,7 @@
    1.12  
    1.13  Known issues
    1.14  ------------
    1.15 -ns-3 build is known to fail on the following platforms:
    1.16 +ns-3.6 build is known to fail on the following platforms:
    1.17    - gcc 3.3 and earlier
    1.18    - optimized builds on gcc 3.4.4 and 3.4.5
    1.19    - optimized builds on linux x86 gcc 4.0.x
     2.1 --- a/src/contrib/net-anim/animation-interface.cc	Thu Nov 05 21:04:05 2009 +0100
     2.2 +++ b/src/contrib/net-anim/animation-interface.cc	Thu Nov 05 21:04:37 2009 +0100
     2.3 @@ -21,9 +21,15 @@
     2.4  #include <stdio.h>
     2.5  #include <sstream>
     2.6  
     2.7 +#include "ns3/net-anim-config.h"
     2.8 +
     2.9  // Socket related includes
    2.10 -#include <sys/socket.h>
    2.11 -#include <netinet/in.h>
    2.12 +#if defined(HAVE_SYS_SOCKET_H) && defined(HAVE_NETINET_IN_H)
    2.13 +# include <sys/socket.h>
    2.14 +# include <netinet/in.h>
    2.15 +#else
    2.16 +#include <fcntl.h>
    2.17 +#endif
    2.18  
    2.19  // ns3 includes
    2.20  #include "ns3/animation-interface.h"
    2.21 @@ -58,6 +64,7 @@
    2.22  
    2.23  bool AnimationInterface::SetServerPort (uint16_t port)
    2.24  {
    2.25 +#if defined(HAVE_SYS_SOCKET_H) && defined(HAVE_NETINET_IN_H)
    2.26    int s = socket (AF_INET, SOCK_STREAM, 0);
    2.27    struct sockaddr_in addr;
    2.28    addr.sin_family = AF_INET;
    2.29 @@ -77,6 +84,8 @@
    2.30    int t = 1;
    2.31    setsockopt (s, SOL_SOCKET, SO_LINGER, &t, sizeof(t));
    2.32    return true;
    2.33 +#endif
    2.34 +  return false;//never reached unless the above is disabled
    2.35  }
    2.36  
    2.37  bool AnimationInterface::SetInternalAnimation ()
     3.1 --- a/src/contrib/net-anim/point-to-point-dumbbell-helper.cc	Thu Nov 05 21:04:05 2009 +0100
     3.2 +++ b/src/contrib/net-anim/point-to-point-dumbbell-helper.cc	Thu Nov 05 21:04:37 2009 +0100
     3.3 @@ -21,10 +21,6 @@
     3.4  #include <iostream>
     3.5  #include <sstream>
     3.6  
     3.7 -// Socket related includes
     3.8 -#include <sys/socket.h>
     3.9 -#include <netinet/in.h>
    3.10 -
    3.11  // ns3 includes
    3.12  #include "ns3/animation-interface.h"
    3.13  #include "ns3/point-to-point-dumbbell-helper.h"
     4.1 --- a/src/contrib/net-anim/wscript	Thu Nov 05 21:04:05 2009 +0100
     4.2 +++ b/src/contrib/net-anim/wscript	Thu Nov 05 21:04:37 2009 +0100
     4.3 @@ -1,5 +1,11 @@
     4.4  ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
     4.5  
     4.6 +def configure(conf):
     4.7 +    conf.check(header_name='sys/socket.h', define_name='HAVE_SYS_SOCKET_H')
     4.8 +    conf.check(header_name='netinet/in.h', define_name='HAVE_NETINET_IN_H')
     4.9 +    conf.write_config_header('ns3/net-anim-config.h', top=True)
    4.10 +
    4.11 +
    4.12  def build(bld):
    4.13      obj = bld.create_ns3_module('net-anim')
    4.14      obj.source = [
     5.1 --- a/src/contrib/wscript	Thu Nov 05 21:04:05 2009 +0100
     5.2 +++ b/src/contrib/wscript	Thu Nov 05 21:04:37 2009 +0100
     5.3 @@ -14,9 +14,11 @@
     5.4      conf.report_optional_feature("XmlIo", "XmlIo",
     5.5                                   conf.env['ENABLE_LIBXML2'],
     5.6                                   "library 'libxml-2.0 >= 2.7' not found")
     5.7 +    conf.write_config_header('ns3/contrib-config.h', top=True)
     5.8 +
     5.9      conf.sub_config('stats')
    5.10 +    conf.sub_config('net-anim')
    5.11  
    5.12 -    conf.write_config_header('ns3/contrib-config.h', top=True)
    5.13  
    5.14  def build(bld):
    5.15      module = bld.create_ns3_module('contrib', ['simulator', 'common'])
     6.1 --- a/src/devices/mesh/dot11s/hwmp-protocol.cc	Thu Nov 05 21:04:05 2009 +0100
     6.2 +++ b/src/devices/mesh/dot11s/hwmp-protocol.cc	Thu Nov 05 21:04:37 2009 +0100
     6.3 @@ -401,6 +401,7 @@
     6.4    //acceptance cretirea:
     6.5    std::map<Mac48Address, std::pair<uint32_t, uint32_t> >::const_iterator i = m_hwmpSeqnoMetricDatabase.find (
     6.6        preq.GetOriginatorAddress ());
     6.7 +  bool freshInfo (true);
     6.8    if (i != m_hwmpSeqnoMetricDatabase.end ())
     6.9      {
    6.10        if ((int32_t)(i->second.first - preq.GetOriginatorSeqNumber ())  > 0)
    6.11 @@ -409,6 +410,7 @@
    6.12          }
    6.13        if (i->second.first == preq.GetOriginatorSeqNumber ())
    6.14          {
    6.15 +          freshInfo = false;
    6.16            if (i->second.second <= preq.GetMetric ())
    6.17              {
    6.18                return;
    6.19 @@ -421,7 +423,7 @@
    6.20    std::vector<Ptr<DestinationAddressUnit> > destinations = preq.GetDestinationList ();
    6.21    //Add reactive path to originator:
    6.22    if (
    6.23 -      ((int32_t)(i->second.first - preq.GetOriginatorSeqNumber ())  < 0) ||
    6.24 +      (freshInfo) ||
    6.25        (
    6.26          (m_rtable->LookupReactive (preq.GetOriginatorAddress ()).retransmitter == Mac48Address::GetBroadcast ()) ||
    6.27          (m_rtable->LookupReactive (preq.GetOriginatorAddress ()).metric > preq.GetMetric ())
    6.28 @@ -562,9 +564,17 @@
    6.29    //acceptance cretirea:
    6.30    std::map<Mac48Address, std::pair<uint32_t, uint32_t> >::const_iterator i = m_hwmpSeqnoMetricDatabase.find (
    6.31        prep.GetOriginatorAddress ());
    6.32 -  if ((i != m_hwmpSeqnoMetricDatabase.end ()) && ((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) > 0))
    6.33 +  bool freshInfo (true);
    6.34 +  if (i != m_hwmpSeqnoMetricDatabase.end ())
    6.35      {
    6.36 -      return;
    6.37 +      if ((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) > 0)
    6.38 +        {
    6.39 +          return;
    6.40 +        }
    6.41 +      if (i->second.first == prep.GetOriginatorSeqNumber ())
    6.42 +        {
    6.43 +          freshInfo = false;
    6.44 +        }
    6.45      }
    6.46    m_hwmpSeqnoMetricDatabase[prep.GetOriginatorAddress ()] = std::make_pair (prep.GetOriginatorSeqNumber (), prep.GetMetric ());
    6.47    //update routing info
    6.48 @@ -574,7 +584,7 @@
    6.49    //Add a reactive path only if seqno is fresher or it improves the
    6.50    //metric
    6.51    if (
    6.52 -      (((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) < 0)) ||
    6.53 +      (freshInfo) ||
    6.54        (
    6.55         ((m_rtable->LookupReactive (prep.GetOriginatorAddress ())).retransmitter == Mac48Address::GetBroadcast ()) ||
    6.56         ((m_rtable->LookupReactive (prep.GetOriginatorAddress ())).metric > prep.GetMetric ())