CHANGES.html
changeset 3505 16005bad2e0b
child 3508 7a3c6148c22d
equal deleted inserted replaced
3504:0261c789e17e 3505:16005bad2e0b
       
     1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
       
     2 <html>
       
     3 <head>
       
     4    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
       
     5    <title>ns-3 Change Log</title>
       
     6 </head>
       
     7 <body>
       
     8 
       
     9 <h1>
       
    10 ns-3: API and model change history</h1>
       
    11 <!--
       
    12 This ChangeLog is updated in the reverse order 
       
    13 with the most recent changes coming first.  Date format:  DD-MM-YYYY
       
    14 -->
       
    15 <p>
       
    16 ns-3 is an evolving system and there will be API or behavioral changes
       
    17 from time to time.   Users who try to use scripts or models across
       
    18 versions of ns-3 may encounter problems at compile time, run time, or
       
    19 may see the simulation output change.  </p>
       
    20 <p>
       
    21 We have adopted the development policy that we are going to try to ease
       
    22 the impact of these changes on users by documenting these changes in a
       
    23 single place (this file), and not by providing a temporary or permanent
       
    24 backward-compatibility software layer.  </p>
       
    25 <p>
       
    26 The goal is that users who encounter a problem when trying to use older
       
    27 code with newer code should be able to consult this file to find
       
    28 guidance as to how to fix the problem.  For instance, if a method name
       
    29 or signature has changed, it should be stated what the new replacement
       
    30 name is. </p>
       
    31 <p>
       
    32 Note that users who upgrade the simulator across versions, or who work
       
    33 directly out of the development tree, may find that simulation output
       
    34 changes even when the compilation doesn't break, such as when a
       
    35 simulator default value is changed.  Therefore, it is good practice for
       
    36 _anyone_ using code across multiple ns-3 releases to consult this file,
       
    37 as well as the RELEASE_NOTES, to understand what has changed over time.
       
    38 </p>
       
    39 <p>
       
    40 This file is a best-effort approach to solving this issue; we will do
       
    41 our best but can guarantee that there will be things that fall through
       
    42 the cracks, unfortunately.  If you, as a user, can suggest improvements
       
    43 to this file based on your experience, please contribute a patch or drop
       
    44 us a note on ns-developers mailing list.  </p>
       
    45 
       
    46 <hr>
       
    47 <h1>changes from ns-3.1 to ns-3.2</h1>
       
    48 <h2>new API in existing classes:</h2>
       
    49 
       
    50 <ul>
       
    51 <li>01-08-2008; changeset 
       
    52 <a href="http://code.nsnam.org/ns-3-dev/rev/a18520551cdf">a18520551cdf</a></li>
       
    53 <ul>
       
    54 <li>class ArpCache has two new attributes:  MaxRetries 
       
    55 and a Drop trace.  It also has some new public methods but these are 
       
    56 mostly for internal use.
       
    57 </ul>
       
    58 </li>
       
    59 </ul>
       
    60 
       
    61 <h2>changes to existing API:</h2>
       
    62 
       
    63 <ul>
       
    64 <li>21-07-2008; changeset 
       
    65 <a href="
       
    66 http://code.nsnam.org/ns-3-dev/rev/99698bc858e8">99698bc858e8</a></li>
       
    67 <ul>
       
    68 <li> class NetDevice has added a pure virtual method that
       
    69 must be implemented by all subclasses:
       
    70 <pre>
       
    71 virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb) = 0;
       
    72 </pre>
       
    73 All NetDevices must support this method, and must call this callback
       
    74 when processing packets in the receive direction (the appropriate place
       
    75 to call this is device-dependent).  An approach to stub this out
       
    76 temporarily, if you do not care about immediately enabling this
       
    77 functionality, would be to add this to your device:
       
    78 <pre>
       
    79 void
       
    80 ExampleNetDevice::SetPromiscReceiveCallback
       
    81 (NetDevice::PromiscReceiveCallback cb)
       
    82 { 
       
    83   NS_ASSERT_MSG (false, "No implementation yet for
       
    84 SetPromiscReceiveCallback");
       
    85 }
       
    86 </pre>
       
    87 To implement this properly, consult the CsmaNetDevice for examples of
       
    88 when the m_promiscRxCallback is called.
       
    89 </li>
       
    90 </ul>
       
    91 </li>
       
    92 </ul>
       
    93 
       
    94 <ul>
       
    95 <li>03-07-2008; changeset 
       
    96 <a href="http://code.nsnam.org/ns-3-dev/rev/d5f8e5fae1c6">d5f8e5fae1c6</a></li>
       
    97 <ul>
       
    98 <li>
       
    99 Miscellaneous cleanup of Udp Helper API, to fix bug 234
       
   100 <pre>
       
   101 class UdpEchoServerHelper
       
   102 {
       
   103 public:
       
   104 - UdpEchoServerHelper ();
       
   105 - void SetPort (uint16_t port); 
       
   106 + UdpEchoServerHelper (uint16_t port);
       
   107 + 
       
   108 + void SetAttribute (std::string name, const AttributeValue &value);
       
   109 ApplicationContainer Install (NodeContainer c);
       
   110 
       
   111 class UdpEchoClientHelper
       
   112 {
       
   113 public:
       
   114 - UdpEchoClientHelper ();
       
   115 + UdpEchoClientHelper (Ipv4Address ip, uint16_t port);
       
   116 - void SetRemote (Ipv4Address ip, uint16_t port);
       
   117 - void SetAppAttribute (std::string name, const AttributeValue &value);
       
   118 + void SetAttribute (std::string name, const AttributeValue &value);
       
   119 ApplicationContainer Install (NodeContainer c);
       
   120 </pre>
       
   121 </li>
       
   122 </ul>
       
   123 </li>
       
   124 </ul>
       
   125 
       
   126 <ul>
       
   127 <li>03-07-2008; changeset 
       
   128 <a href="
       
   129 http://code.nsnam.org/ns-3-dev/rev/3cdd9d60f7c7">3cdd9d60f7c7</a></li>
       
   130 <ul>
       
   131 <li>
       
   132 Rename all instances method names using "Set..Parameter" to "Set..Attribute"
       
   133 (bug 232)
       
   134 </li>
       
   135 <li> How to fix your code:  Any use of helper API that was using a method
       
   136 "Set...Parameter()" should be changed to read "Set...Attribute()".  e.g.
       
   137 <pre>
       
   138 - csma.SetChannelParameter ("DataRate", DataRateValue (5000000));
       
   139 - csma.SetChannelParameter ("Delay", TimeValue (MilliSeconds (2)));
       
   140 + csma.SetChannelAttribute ("DataRate", DataRateValue (5000000));
       
   141 + csma.SetChannelAttribute ("Delay", TimeValue (MilliSeconds (2)));
       
   142 </pre>
       
   143 </li>
       
   144 </ul>
       
   145 </li>
       
   146 </ul>
       
   147 
       
   148 <h2>changed behavior:</h2>
       
   149 <ul>
       
   150 <li> 28-07-2008; changeset 
       
   151 <a href="http://code.nsnam.org/ns-3-dev/rev/6f68f1044df1">6f68f1044df1</a>
       
   152 <ul>
       
   153 <li>
       
   154 OLSR: HELLO messages hold time changed to 3*hello
       
   155 interval from hello interval.  This is an important bug fix as
       
   156 hold time == refresh time was never intentional, as it leads to
       
   157 instability in neighbor detection.
       
   158 </ul>
       
   159 </li>
       
   160 </ul>
       
   161 </li>
       
   162 
       
   163 </body>
       
   164 </html>