|
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> |