From 486d478dae168766e646c9aea0adc9ae86395073 Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Wed, 4 Nov 2009 20:28:31 -0800 Subject: [PATCH 1/4] Remove mingw from list of supported platforms --- RELEASE_NOTES | 92 +++++---------------------------------------------- 1 file changed, 8 insertions(+), 84 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index fc8d765f3..3fed24dc5 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -4,84 +4,9 @@ This file contains ns-3 release notes (most recent releases first). All of the ns-3 documentation is accessible from the ns-3 website: -http://www.nsnam.org including tutorials: http://www.nsnam.org/tutorials.html - -Release 3.6 -=========== - -Availability ------------- -This release is immediately available from: -http://www.nsnam.org/releases/ns-allinone-3.6.tar.bz2 - -Supported platforms -------------------- -ns-3.6 has been tested on the following platforms: - - linux x86 gcc 4.4.1, 4.2, 4.1, and, 3.4.6. - - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6 - - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x) - - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized) - - mingw gcc 3.4.5 (debug only) - -Not all ns-3 options are available on all platforms; consult the -wiki for more information: -http://www.nsnam.org/wiki/index.php/Installation - -New user-visible features -------------------------- - - a) 802.11 models: - - Add an implementation of the minstrel rate control algorithm - (Duy Nguyen for gsoc) - - AthstatsHelper: enables the wifi device to produce periodic - reports similar to the ones generated by madwifi's - athstats tool (Nicola Baldo) - - 10MHz and 5MHz channel width supported by 802.11a model - (Ramon Bauza and Kirill Andreev) - - Channel switching support. YansWifiPhy can now switch among - different channels (Ramon Bauza and Pavel Boyko) - - b) IPv6 models: - - IPv6 interface; - - IPv6 layer; - - IPv6 raw socket; - - Static IPv6 routing; - - ICMPv6 layer; - - Some ICMPv6 error messages (destination unreachable, ...); - - Neighbor Discovery Protocol (NS/NA, RS/RA, redirection); - - Ping6 application (send Echo request); - - Radvd application (send RA); - - Examples (ping6, simple-routing-ping6, radvd, radvd-two-prefix, - icmpv6-redirect). - - c) Wireless Mesh Networking models: - - General multi-interface mesh stack infrastructure (devices/mesh module). - - IEEE 802.11s (Draft 3.0) model including Peering Management Protocol and HWMP. - - Forwarding Layer for Meshing (FLAME) protocol. - - d) Nix-vector routing: - - Ipv4NixVectorHelper - - Examples (nix-simple, nms-p2p-nix) - - e) New Test Framework - - Use test.py instead of ./waf check or ./waf --regression - - 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. - -Known issues ------------- -ns-3 build is known to fail on the following platforms: - - gcc 3.3 and earlier - - optimized builds on gcc 3.4.4 and 3.4.5 - - optimized builds on linux x86 gcc 4.0.x +http://www.nsnam.org +including tutorials: +http://www.nsnam.org/tutorials.html Release 3.5 =========== @@ -89,16 +14,15 @@ Release 3.5 Availability ------------ This release is immediately available from: -http://www.nsnam.org/releases/ns-allinone-3.5.tar.bz2 +http://www.nsnam.org/releases/ns-3.5.tar.bz2 Supported platforms ------------------- -ns-3.5 has been tested on the following platforms: +ns-3.4 has been tested on the following platforms: - linux x86 gcc 4.2, 4.1, and, 3.4.6. - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6 - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x) - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized) - - mingw gcc 3.4.5 (debug only) Not all ns-3 options are available on all platforms; consult the wiki for more information: @@ -139,8 +63,8 @@ Future releases --------------- Our next release, which is expected to happen in 2 to 4 months from now, will feature the merging of some of our projects currently in development including -fuller IPv6 support, some smaller features such as a new Global ARP -package, and possibly a new Testing and Validation suite. +fuller IPv6 support, and some smaller features such as a new Global ARP package +and possibly a new Testing and Validation suite. Release 3.4 =========== @@ -148,7 +72,7 @@ Release 3.4 Availability ------------ This release is immediately available from: -http://www.nsnam.org/releases/ns-allinone-3.4.tar.bz2 +http://www.nsnam.org/releases/ns-3.4.tar.bz2 Supported platforms ------------------- From 41b20ef8ea4bab9817ac14156f2e8602d1eccfa6 Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Wed, 4 Nov 2009 21:08:32 -0800 Subject: [PATCH 2/4] swap in released 3.6 release notes --- RELEASE_NOTES | 91 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 83 insertions(+), 8 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 3fed24dc5..8b2e49834 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -4,9 +4,83 @@ This file contains ns-3 release notes (most recent releases first). All of the ns-3 documentation is accessible from the ns-3 website: -http://www.nsnam.org -including tutorials: -http://www.nsnam.org/tutorials.html +http://www.nsnam.org including tutorials: http://www.nsnam.org/tutorials.html + +Release 3.6 +=========== + +Availability +------------ +This release is immediately available from: +http://www.nsnam.org/releases/ns-allinone-3.6.tar.bz2 + +Supported platforms +------------------- +ns-3.6 has been tested on the following platforms: + - linux x86 gcc 4.4.1, 4.2, 4.1, and, 3.4.6. + - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6 + - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x) + - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized) + +Not all ns-3 options are available on all platforms; consult the +wiki for more information: +http://www.nsnam.org/wiki/index.php/Installation + +New user-visible features +------------------------- + + a) 802.11 models: + - Add an implementation of the minstrel rate control algorithm + (Duy Nguyen for gsoc) + - AthstatsHelper: enables the wifi device to produce periodic + reports similar to the ones generated by madwifi's + athstats tool (Nicola Baldo) + - 10MHz and 5MHz channel width supported by 802.11a model + (Ramon Bauza and Kirill Andreev) + - Channel switching support. YansWifiPhy can now switch among + different channels (Ramon Bauza and Pavel Boyko) + + b) IPv6 models: + - IPv6 interface; + - IPv6 layer; + - IPv6 raw socket; + - Static IPv6 routing; + - ICMPv6 layer; + - Some ICMPv6 error messages (destination unreachable, ...); + - Neighbor Discovery Protocol (NS/NA, RS/RA, redirection); + - Ping6 application (send Echo request); + - Radvd application (send RA); + - Examples (ping6, simple-routing-ping6, radvd, radvd-two-prefix, + icmpv6-redirect). + + c) Wireless Mesh Networking models: + - General multi-interface mesh stack infrastructure (devices/mesh module). + - IEEE 802.11s (Draft 3.0) model including Peering Management Protocol and HWMP. + - Forwarding Layer for Meshing (FLAME) protocol. + + d) Nix-vector routing: + - Ipv4NixVectorHelper + - Examples (nix-simple, nms-p2p-nix) + + e) New Test Framework + - Use test.py instead of ./waf check or ./waf --regression + - 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. + +Known issues +------------ +ns-3.6 build is known to fail on the following platforms: + - gcc 3.3 and earlier + - optimized builds on gcc 3.4.4 and 3.4.5 + - optimized builds on linux x86 gcc 4.0.x Release 3.5 =========== @@ -14,15 +88,16 @@ Release 3.5 Availability ------------ This release is immediately available from: -http://www.nsnam.org/releases/ns-3.5.tar.bz2 +http://www.nsnam.org/releases/ns-allinone-3.5.tar.bz2 Supported platforms ------------------- -ns-3.4 has been tested on the following platforms: +ns-3.5 has been tested on the following platforms: - linux x86 gcc 4.2, 4.1, and, 3.4.6. - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6 - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x) - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized) + - mingw gcc 3.4.5 (debug only) Not all ns-3 options are available on all platforms; consult the wiki for more information: @@ -63,8 +138,8 @@ Future releases --------------- Our next release, which is expected to happen in 2 to 4 months from now, will feature the merging of some of our projects currently in development including -fuller IPv6 support, and some smaller features such as a new Global ARP package -and possibly a new Testing and Validation suite. +fuller IPv6 support, some smaller features such as a new Global ARP +package, and possibly a new Testing and Validation suite. Release 3.4 =========== @@ -72,7 +147,7 @@ Release 3.4 Availability ------------ This release is immediately available from: -http://www.nsnam.org/releases/ns-3.4.tar.bz2 +http://www.nsnam.org/releases/ns-allinone-3.4.tar.bz2 Supported platforms ------------------- From 46d64d4b8ef5cb6660da2349a5a481cfb897de95 Mon Sep 17 00:00:00 2001 From: fmoatamr Date: Thu, 5 Nov 2009 11:17:44 +0100 Subject: [PATCH 3/4] Bug 705: Make building works under Mingw by disabling socket.h and in.h includes only when Mingw is used --- src/contrib/net-anim/animation-interface.cc | 13 +++++++++++-- .../net-anim/point-to-point-dumbbell-helper.cc | 4 ---- src/contrib/net-anim/wscript | 6 ++++++ src/contrib/wscript | 6 ++++-- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/contrib/net-anim/animation-interface.cc b/src/contrib/net-anim/animation-interface.cc index 047083689..5a750a906 100644 --- a/src/contrib/net-anim/animation-interface.cc +++ b/src/contrib/net-anim/animation-interface.cc @@ -21,9 +21,15 @@ #include #include +#include "ns3/net-anim-config.h" + // Socket related includes -#include -#include +#if defined(HAVE_SYS_SOCKET_H) && defined(HAVE_NETINET_IN_H) +# include +# include +#else +#include +#endif // ns3 includes #include "ns3/animation-interface.h" @@ -58,6 +64,7 @@ bool AnimationInterface::SetOutputFile (const std::string& fn) bool AnimationInterface::SetServerPort (uint16_t port) { +#if defined(HAVE_SYS_SOCKET_H) && defined(HAVE_NETINET_IN_H) int s = socket (AF_INET, SOCK_STREAM, 0); struct sockaddr_in addr; addr.sin_family = AF_INET; @@ -77,6 +84,8 @@ bool AnimationInterface::SetServerPort (uint16_t port) int t = 1; setsockopt (s, SOL_SOCKET, SO_LINGER, &t, sizeof(t)); return true; +#endif + return false;//never reached unless the above is disabled } bool AnimationInterface::SetInternalAnimation () diff --git a/src/contrib/net-anim/point-to-point-dumbbell-helper.cc b/src/contrib/net-anim/point-to-point-dumbbell-helper.cc index 43fddf35f..0188315ec 100644 --- a/src/contrib/net-anim/point-to-point-dumbbell-helper.cc +++ b/src/contrib/net-anim/point-to-point-dumbbell-helper.cc @@ -21,10 +21,6 @@ #include #include -// Socket related includes -#include -#include - // ns3 includes #include "ns3/animation-interface.h" #include "ns3/point-to-point-dumbbell-helper.h" diff --git a/src/contrib/net-anim/wscript b/src/contrib/net-anim/wscript index 0e0c8dd30..a3cd21edc 100644 --- a/src/contrib/net-anim/wscript +++ b/src/contrib/net-anim/wscript @@ -1,5 +1,11 @@ ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- +def configure(conf): + conf.check(header_name='sys/socket.h', define_name='HAVE_SYS_SOCKET_H') + conf.check(header_name='netinet/in.h', define_name='HAVE_NETINET_IN_H') + conf.write_config_header('ns3/net-anim-config.h', top=True) + + def build(bld): obj = bld.create_ns3_module('net-anim') obj.source = [ diff --git a/src/contrib/wscript b/src/contrib/wscript index 046958dda..1a32d13c9 100644 --- a/src/contrib/wscript +++ b/src/contrib/wscript @@ -14,10 +14,12 @@ def configure(conf): conf.report_optional_feature("XmlIo", "XmlIo", conf.env['ENABLE_LIBXML2'], "library 'libxml-2.0 >= 2.7' not found") - conf.sub_config('stats') - conf.write_config_header('ns3/contrib-config.h', top=True) + conf.sub_config('stats') + conf.sub_config('net-anim') + + def build(bld): module = bld.create_ns3_module('contrib', ['simulator', 'common']) module.source = [ From b47dff231137bb321768dbbafbb40cc85be907c0 Mon Sep 17 00:00:00 2001 From: Kirill Andreev Date: Thu, 5 Nov 2009 13:45:33 +0300 Subject: [PATCH 4/4] mesh:Fixed valgrind errors --- src/devices/mesh/dot11s/hwmp-protocol.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/devices/mesh/dot11s/hwmp-protocol.cc b/src/devices/mesh/dot11s/hwmp-protocol.cc index 33f005124..5b4d6954f 100644 --- a/src/devices/mesh/dot11s/hwmp-protocol.cc +++ b/src/devices/mesh/dot11s/hwmp-protocol.cc @@ -401,6 +401,7 @@ HwmpProtocol::ReceivePreq (IePreq preq, Mac48Address from, uint32_t interface, M //acceptance cretirea: std::map >::const_iterator i = m_hwmpSeqnoMetricDatabase.find ( preq.GetOriginatorAddress ()); + bool freshInfo (true); if (i != m_hwmpSeqnoMetricDatabase.end ()) { if ((int32_t)(i->second.first - preq.GetOriginatorSeqNumber ()) > 0) @@ -409,6 +410,7 @@ HwmpProtocol::ReceivePreq (IePreq preq, Mac48Address from, uint32_t interface, M } if (i->second.first == preq.GetOriginatorSeqNumber ()) { + freshInfo = false; if (i->second.second <= preq.GetMetric ()) { return; @@ -421,7 +423,7 @@ HwmpProtocol::ReceivePreq (IePreq preq, Mac48Address from, uint32_t interface, M std::vector > destinations = preq.GetDestinationList (); //Add reactive path to originator: if ( - ((int32_t)(i->second.first - preq.GetOriginatorSeqNumber ()) < 0) || + (freshInfo) || ( (m_rtable->LookupReactive (preq.GetOriginatorAddress ()).retransmitter == Mac48Address::GetBroadcast ()) || (m_rtable->LookupReactive (preq.GetOriginatorAddress ()).metric > preq.GetMetric ()) @@ -562,9 +564,17 @@ HwmpProtocol::ReceivePrep (IePrep prep, Mac48Address from, uint32_t interface, M //acceptance cretirea: std::map >::const_iterator i = m_hwmpSeqnoMetricDatabase.find ( prep.GetOriginatorAddress ()); - if ((i != m_hwmpSeqnoMetricDatabase.end ()) && ((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) > 0)) + bool freshInfo (true); + if (i != m_hwmpSeqnoMetricDatabase.end ()) { - return; + if ((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) > 0) + { + return; + } + if (i->second.first == prep.GetOriginatorSeqNumber ()) + { + freshInfo = false; + } } m_hwmpSeqnoMetricDatabase[prep.GetOriginatorAddress ()] = std::make_pair (prep.GetOriginatorSeqNumber (), prep.GetMetric ()); //update routing info @@ -574,7 +584,7 @@ HwmpProtocol::ReceivePrep (IePrep prep, Mac48Address from, uint32_t interface, M //Add a reactive path only if seqno is fresher or it improves the //metric if ( - (((int32_t)(i->second.first - prep.GetOriginatorSeqNumber ()) < 0)) || + (freshInfo) || ( ((m_rtable->LookupReactive (prep.GetOriginatorAddress ())).retransmitter == Mac48Address::GetBroadcast ()) || ((m_rtable->LookupReactive (prep.GetOriginatorAddress ())).metric > prep.GetMetric ())