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 ())