1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/CHANGES.html Mon Aug 04 14:43:53 2008 -0700
1.3 @@ -0,0 +1,164 @@
1.4 +<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
1.5 +<html>
1.6 +<head>
1.7 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1.8 + <title>ns-3 Change Log</title>
1.9 +</head>
1.10 +<body>
1.11 +
1.12 +<h1>
1.13 +ns-3: API and model change history</h1>
1.14 +<!--
1.15 +This ChangeLog is updated in the reverse order
1.16 +with the most recent changes coming first. Date format: DD-MM-YYYY
1.17 +-->
1.18 +<p>
1.19 +ns-3 is an evolving system and there will be API or behavioral changes
1.20 +from time to time. Users who try to use scripts or models across
1.21 +versions of ns-3 may encounter problems at compile time, run time, or
1.22 +may see the simulation output change. </p>
1.23 +<p>
1.24 +We have adopted the development policy that we are going to try to ease
1.25 +the impact of these changes on users by documenting these changes in a
1.26 +single place (this file), and not by providing a temporary or permanent
1.27 +backward-compatibility software layer. </p>
1.28 +<p>
1.29 +The goal is that users who encounter a problem when trying to use older
1.30 +code with newer code should be able to consult this file to find
1.31 +guidance as to how to fix the problem. For instance, if a method name
1.32 +or signature has changed, it should be stated what the new replacement
1.33 +name is. </p>
1.34 +<p>
1.35 +Note that users who upgrade the simulator across versions, or who work
1.36 +directly out of the development tree, may find that simulation output
1.37 +changes even when the compilation doesn't break, such as when a
1.38 +simulator default value is changed. Therefore, it is good practice for
1.39 +_anyone_ using code across multiple ns-3 releases to consult this file,
1.40 +as well as the RELEASE_NOTES, to understand what has changed over time.
1.41 +</p>
1.42 +<p>
1.43 +This file is a best-effort approach to solving this issue; we will do
1.44 +our best but can guarantee that there will be things that fall through
1.45 +the cracks, unfortunately. If you, as a user, can suggest improvements
1.46 +to this file based on your experience, please contribute a patch or drop
1.47 +us a note on ns-developers mailing list. </p>
1.48 +
1.49 +<hr>
1.50 +<h1>changes from ns-3.1 to ns-3.2</h1>
1.51 +<h2>new API in existing classes:</h2>
1.52 +
1.53 +<ul>
1.54 +<li>01-08-2008; changeset
1.55 +<a href="http://code.nsnam.org/ns-3-dev/rev/a18520551cdf">a18520551cdf</a></li>
1.56 +<ul>
1.57 +<li>class ArpCache has two new attributes: MaxRetries
1.58 +and a Drop trace. It also has some new public methods but these are
1.59 +mostly for internal use.
1.60 +</ul>
1.61 +</li>
1.62 +</ul>
1.63 +
1.64 +<h2>changes to existing API:</h2>
1.65 +
1.66 +<ul>
1.67 +<li>21-07-2008; changeset
1.68 +<a href="
1.69 +http://code.nsnam.org/ns-3-dev/rev/99698bc858e8">99698bc858e8</a></li>
1.70 +<ul>
1.71 +<li> class NetDevice has added a pure virtual method that
1.72 +must be implemented by all subclasses:
1.73 +<pre>
1.74 +virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb) = 0;
1.75 +</pre>
1.76 +All NetDevices must support this method, and must call this callback
1.77 +when processing packets in the receive direction (the appropriate place
1.78 +to call this is device-dependent). An approach to stub this out
1.79 +temporarily, if you do not care about immediately enabling this
1.80 +functionality, would be to add this to your device:
1.81 +<pre>
1.82 +void
1.83 +ExampleNetDevice::SetPromiscReceiveCallback
1.84 +(NetDevice::PromiscReceiveCallback cb)
1.85 +{
1.86 + NS_ASSERT_MSG (false, "No implementation yet for
1.87 +SetPromiscReceiveCallback");
1.88 +}
1.89 +</pre>
1.90 +To implement this properly, consult the CsmaNetDevice for examples of
1.91 +when the m_promiscRxCallback is called.
1.92 +</li>
1.93 +</ul>
1.94 +</li>
1.95 +</ul>
1.96 +
1.97 +<ul>
1.98 +<li>03-07-2008; changeset
1.99 +<a href="http://code.nsnam.org/ns-3-dev/rev/d5f8e5fae1c6">d5f8e5fae1c6</a></li>
1.100 +<ul>
1.101 +<li>
1.102 +Miscellaneous cleanup of Udp Helper API, to fix bug 234
1.103 +<pre>
1.104 +class UdpEchoServerHelper
1.105 +{
1.106 +public:
1.107 +- UdpEchoServerHelper ();
1.108 +- void SetPort (uint16_t port);
1.109 ++ UdpEchoServerHelper (uint16_t port);
1.110 ++
1.111 ++ void SetAttribute (std::string name, const AttributeValue &value);
1.112 +ApplicationContainer Install (NodeContainer c);
1.113 +
1.114 +class UdpEchoClientHelper
1.115 +{
1.116 +public:
1.117 +- UdpEchoClientHelper ();
1.118 ++ UdpEchoClientHelper (Ipv4Address ip, uint16_t port);
1.119 +- void SetRemote (Ipv4Address ip, uint16_t port);
1.120 +- void SetAppAttribute (std::string name, const AttributeValue &value);
1.121 ++ void SetAttribute (std::string name, const AttributeValue &value);
1.122 +ApplicationContainer Install (NodeContainer c);
1.123 +</pre>
1.124 +</li>
1.125 +</ul>
1.126 +</li>
1.127 +</ul>
1.128 +
1.129 +<ul>
1.130 +<li>03-07-2008; changeset
1.131 +<a href="
1.132 +http://code.nsnam.org/ns-3-dev/rev/3cdd9d60f7c7">3cdd9d60f7c7</a></li>
1.133 +<ul>
1.134 +<li>
1.135 +Rename all instances method names using "Set..Parameter" to "Set..Attribute"
1.136 +(bug 232)
1.137 +</li>
1.138 +<li> How to fix your code: Any use of helper API that was using a method
1.139 +"Set...Parameter()" should be changed to read "Set...Attribute()". e.g.
1.140 +<pre>
1.141 +- csma.SetChannelParameter ("DataRate", DataRateValue (5000000));
1.142 +- csma.SetChannelParameter ("Delay", TimeValue (MilliSeconds (2)));
1.143 ++ csma.SetChannelAttribute ("DataRate", DataRateValue (5000000));
1.144 ++ csma.SetChannelAttribute ("Delay", TimeValue (MilliSeconds (2)));
1.145 +</pre>
1.146 +</li>
1.147 +</ul>
1.148 +</li>
1.149 +</ul>
1.150 +
1.151 +<h2>changed behavior:</h2>
1.152 +<ul>
1.153 +<li> 28-07-2008; changeset
1.154 +<a href="http://code.nsnam.org/ns-3-dev/rev/6f68f1044df1">6f68f1044df1</a>
1.155 +<ul>
1.156 +<li>
1.157 +OLSR: HELLO messages hold time changed to 3*hello
1.158 +interval from hello interval. This is an important bug fix as
1.159 +hold time == refresh time was never intentional, as it leads to
1.160 +instability in neighbor detection.
1.161 +</ul>
1.162 +</li>
1.163 +</ul>
1.164 +</li>
1.165 +
1.166 +</body>
1.167 +</html>