Compare commits
6 Commits
ns-3.6-RC2
...
ns-3.6-RC3
| Author | SHA1 | Date | |
|---|---|---|---|
| c0d01261d0 | |||
| b252f68f9d | |||
| af27a1388c | |||
| ac9dc12e94 | |||
| 4eba1f033e | |||
| 4fb0057dc7 |
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -73,6 +73,9 @@ MeshPointDevice::DoDispose ()
|
||||
*iter = 0;
|
||||
}
|
||||
m_ifaces.clear ();
|
||||
m_node = 0;
|
||||
m_channel = 0;
|
||||
m_routingProtocol = 0;
|
||||
NetDevice::DoDispose ();
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ());
|
||||
|
||||
@@ -611,7 +611,7 @@ InterferenceHelper::EraseEvents (void)
|
||||
{
|
||||
*i = 0;
|
||||
}
|
||||
m_events.erase (m_events.begin (), m_events.end ());
|
||||
m_events.clear ();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -56,6 +56,7 @@ YansWifiChannel::YansWifiChannel ()
|
||||
{}
|
||||
YansWifiChannel::~YansWifiChannel ()
|
||||
{
|
||||
NS_LOG_FUNCTION_NOARGS ();
|
||||
m_phyList.clear ();
|
||||
}
|
||||
|
||||
|
||||
@@ -139,6 +139,8 @@ YansWifiPhy::DoDispose (void)
|
||||
m_channel = 0;
|
||||
m_modes.clear ();
|
||||
m_device = 0;
|
||||
m_mobility = 0;
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -45,6 +45,8 @@ TypeId NetDevice::GetTypeId (void)
|
||||
}
|
||||
|
||||
NetDevice::~NetDevice ()
|
||||
{}
|
||||
{
|
||||
NS_LOG_FUNCTION_NOARGS ();
|
||||
}
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user