Compare commits

...

6 Commits

Author SHA1 Message Date
Andrey Mazo c0d01261d0 remove some redundant clean ups, includes 2009-10-15 14:32:19 +04:00
Andrey Mazo b252f68f9d bug 711: example mesh/mesh fails valgrind.
also fix several possible leaks.
2009-10-15 14:10:02 +04:00
Andrey Mazo af27a1388c add NS_LOG_FUNCTION to several constructors/destructors/DoDisposes 2009-10-15 13:49:42 +04:00
Craig Dowell ac9dc12e94 add flowmon to RELEASE_NOTES 2009-10-15 10:53:31 -07:00
Craig Dowell 4eba1f033e tweak release steps 2009-10-14 11:20:49 -07:00
Craig Dowell 4fb0057dc7 Added tag ns-3.6-RC2 for changeset 899604299046 2009-10-14 10:24:55 -07:00
18 changed files with 62 additions and 39 deletions
+1
View File
@@ -37,3 +37,4 @@ dfd0bc16dc991313896f351530a3dc5a25f62e15 ns-3.3-RC4
a600c11ff8d40a40e88c2d692acad6512dde70c8 ns-3.5-rc3
c975274c9707b1f07d94cc51f205c351122131a5 ns-3.5
549243b47311211975b388cd64fcb9111caa2fc2 ns-3.6-RC1
8996042990466b1eda718a848e1c02923c0add74 ns-3.6-RC2
+4
View File
@@ -68,6 +68,10 @@ New user-visible features
- 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.
+23 -17
View File
@@ -1,10 +1,11 @@
Steps in doing an ns-3 release
1. check out a clean ns-3-dev somewhere
1. check out a clean ns-3-dev somewhere using ns-3-allinone (you will need it)
- hg clone http://code.nsnam.org/ns-3-allinone
- ./download.py
- ./build.py
- confirm that the release builds cleanly.
- cd ns-3-dev
- ensure that tests pass (./test.py)
- ensure no regressions (./waf --regression)
2. prepare the source files
@@ -13,19 +14,23 @@ Steps in doing an ns-3 release
- DO NOT change VERSION at this time
- confirm that Doxygen builds cleanly and without warnings
(./waf doxygen), and check in any necessary changes
3. ./waf configure; ./waf dist
- this will create an ns-3-dev.tar.bz2 tarball
- this will also create a ns-3-dev-ref-traces.tar.bz2 tarball
4. test dev tarball on release platforms (waf --check and maybe some other
scripts)
3. build an ns-3-allinone distribution
- change back into the allinone directory
- ./dist.py
- this will create an ns-allinone-dev.tar.bz2 tarball
4. test dev tarball on release platforms
- ./test.py
- ./waf --regression
- other scripts you can think of
5. once you are happy with the tarball, tag ns-3-dev and ns-3-dev-ref-traces
- cd into ns-3-dev
- hg tag "ns-3.x"
- hg push
- cd into regression/ns-3-dev-ref-traces
- cd into ns-3-dev-ref-traces
- hg tag "ns-3.x"
- hg push
6. clone the tagged ns-3-dev and place it on the repository
- ssh code.nsnam.org; sudo tcsh; su code;
- ssh code.nsnam.org; sudo bash; su code;
- cp -r /home/code/repos/ns-3-dev /home/code/repos/ns-3.1x
- cd /home/code/repos/ns-3.x/.hg and edit the hgrc appropriately:
"description = ns-3.x release
@@ -59,9 +64,8 @@ Steps in doing an ns-3 release
- ./waf --valgrind --regression (for valgrind version)
- There should be no regression errors at this time
10. Create final tarballs
- cd ..
- cd into ns-3-allinone level
- ./dist.py
- ./waf configure; ./waf dist
- this will create an ns-allinone-3.x.tar.bz2 tarball
11. upload "ns-allinone-3.x.tar.bz2" to the /var/www/html/releases/ directory on
the www.nsnam.org server
@@ -74,23 +78,25 @@ Steps in doing an ns-3 release
- sudo chmod 644 ns-allinone-3.x.tar.bz2
13. update web pages on www.nsnam.org (source is in the www/ module)
- clone the source repo (hg clone http://code.nsnam.org/www)
- update index.html
- add link to news.html
- update getting_started.html
- update documents.html
- update references to releases in html_src
(consider "grep 'ns-3\.' *.html" for a new release)
(consider "grep 'RCx' *.html" for a new RC)
- update references to releases in scripts/
- update roadmap on wiki
- commit and push changes
14. update the server
- build and update HTML directory on the server
-- ssh www.nsnam.org; sudo tcsh; su nsnam;
-- ssh www.nsnam.org; sudo bash; su nsnam;
-- run ~/bin/update-html
- build and update Doxygen directory on the server
-- edit ~/bin/update-doxygen-release file and change RELEASE variable
to the right version number
-- run ~/bin/update-doxygen-release
14. Final checks
15. Final checks
- 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.
15. announce to ns-developers, with summary of release notes
16. announce to ns-developers, with summary of release notes
+5
View File
@@ -184,6 +184,7 @@ HwmpProtocol::HwmpProtocol ():
m_doFlag (false),
m_rfFlag (false)
{
NS_LOG_FUNCTION_NOARGS ();
if (m_isRoot)
{
@@ -193,11 +194,13 @@ HwmpProtocol::HwmpProtocol ():
HwmpProtocol::~HwmpProtocol ()
{
NS_LOG_FUNCTION_NOARGS ();
}
void
HwmpProtocol::DoDispose ()
{
NS_LOG_FUNCTION_NOARGS ();
for (std::map<Mac48Address, EventId>::iterator i = m_preqTimeouts.begin (); i != m_preqTimeouts.end (); i ++)
{
i->second.Cancel ();
@@ -206,8 +209,10 @@ HwmpProtocol::DoDispose ()
m_preqTimeouts.clear ();
m_lastDataSeqno.clear ();
m_lastHwmpSeqno.clear ();
m_interfaces.clear ();
m_rqueue.clear ();
m_rtable = 0;
m_mp = 0;
}
bool
@@ -118,19 +118,11 @@ IeBeaconTiming::DelNeighboursTimingElementUnit (uint16_t aid, Time last_beacon,
void
IeBeaconTiming::ClearTimingElement ()
{
uint16_t to_delete = 0;
uint16_t i;
for (NeighboursTimingUnitsList::iterator j = m_neighbours.begin (); j != m_neighbours.end (); j++)
{
to_delete++;
(*j) = 0;
}
for (i = 0; i < to_delete; i++)
{
m_neighbours.pop_back ();
}
m_neighbours.clear ();
}
uint8_t
IeBeaconTiming::GetInformationSize () const
@@ -373,16 +373,11 @@ IePreq::DelDestinationAddressElement (Mac48Address dest_address)
void
IePreq::ClearDestinationAddressElements ()
{
int i;
for (std::vector<Ptr<DestinationAddressUnit> >::iterator j = m_destinations.begin (); j
!= m_destinations.end (); j++)
{
(*j) = 0;
}
for (i = 0; i < m_destCount; i++)
{
m_destinations.pop_back ();
}
m_destinations.clear ();
m_destCount = 0;
}
@@ -93,6 +93,8 @@ PeerManagementProtocol::DoDispose ()
i->second.clear ();
}
m_neighbourBeacons.clear ();
m_plugins.clear ();
}
bool
+3
View File
@@ -73,6 +73,9 @@ MeshPointDevice::DoDispose ()
*iter = 0;
}
m_ifaces.clear ();
m_node = 0;
m_channel = 0;
m_routingProtocol = 0;
NetDevice::DoDispose ();
}
-2
View File
@@ -27,8 +27,6 @@
#include "ns3/wifi-mac-header.h"
#include "ns3/wifi-information-element-vector.h"
#include <vector>
namespace ns3 {
/**
@@ -282,8 +282,10 @@ MeshWifiInterfaceMac::DoDispose ()
m_rxMiddle = 0;
m_low = 0;
m_dcfManager = 0;
m_stationManager = 0;
m_phy = 0;
m_queues.clear ();
m_plugins.clear ();
m_beaconSendEvent.Cancel ();
m_beaconDca = 0;
@@ -74,7 +74,7 @@ WifiInformationElementVector::GetSerializedSize () const
void
WifiInformationElementVector::Serialize (Buffer::Iterator start) const
{
for(std::vector<Ptr<WifiInformationElement> >::const_iterator i = m_elements.begin (); i != m_elements.end (); i ++)
for(IE_VECTOR::const_iterator i = m_elements.begin (); i != m_elements.end (); i ++)
{
start.WriteU8((*i)->ElementId ());
start.WriteU8 ((*i)->GetInformationSize ());
+1 -1
View File
@@ -611,7 +611,7 @@ InterferenceHelper::EraseEvents (void)
{
*i = 0;
}
m_events.erase (m_events.begin (), m_events.end ());
m_events.clear ();
}
void
+10 -2
View File
@@ -28,6 +28,9 @@
#include "ns3/pointer.h"
#include "ns3/node.h"
#include "ns3/trace-source-accessor.h"
#include "ns3/log.h"
NS_LOG_COMPONENT_DEFINE ("WifiNetDevice");
namespace ns3 {
@@ -65,13 +68,18 @@ WifiNetDevice::GetTypeId (void)
WifiNetDevice::WifiNetDevice ()
: m_mtu (0),
m_configComplete (false)
{}
{
NS_LOG_FUNCTION_NOARGS ();
}
WifiNetDevice::~WifiNetDevice ()
{}
{
NS_LOG_FUNCTION_NOARGS ();
}
void
WifiNetDevice::DoDispose (void)
{
NS_LOG_FUNCTION_NOARGS ();
m_node = 0;
m_mac->Dispose ();
m_phy->Dispose ();
+1
View File
@@ -56,6 +56,7 @@ YansWifiChannel::YansWifiChannel ()
{}
YansWifiChannel::~YansWifiChannel ()
{
NS_LOG_FUNCTION_NOARGS ();
m_phyList.clear ();
}
+2
View File
@@ -139,6 +139,8 @@ YansWifiPhy::DoDispose (void)
m_channel = 0;
m_modes.clear ();
m_device = 0;
m_mobility = 0;
m_state = 0;
}
void
+3 -2
View File
@@ -73,8 +73,9 @@ Dot11sStack::InstallStack (Ptr<MeshPointDevice> mp)
hwmp->SetRoot ();
}
//Install interaction between HWMP and Peer management protocol:
pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, hwmp));
hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, pmp));
//PeekPointer()'s to avoid circular Ptr references
pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, PeekPointer (hwmp)));
hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, PeekPointer (pmp)));
return true;
}
void
+3 -1
View File
@@ -45,6 +45,8 @@ TypeId NetDevice::GetTypeId (void)
}
NetDevice::~NetDevice ()
{}
{
NS_LOG_FUNCTION_NOARGS ();
}
} // namespace ns3
+1
View File
@@ -148,6 +148,7 @@ Node::GetNApplications (void) const
void
Node::DoDispose()
{
m_handlers.clear ();
for (std::vector<Ptr<NetDevice> >::iterator i = m_devices.begin ();
i != m_devices.end (); i++)
{