CHANGES.html
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 19 Jun 2009 09:01:26 +0200
changeset 4555 e33c757f790c
parent 4505 e865dbc1d157
child 4568 8a9c81e59c92
permissions -rw-r--r--
update for API changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     1
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     2
<html>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     3
<head>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     4
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     5
   <title>ns-3 Change Log</title>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     6
</head>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     7
<body>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     8
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     9
<h1>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    10
ns-3: API and model change history</h1>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    11
<!--
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    12
This ChangeLog is updated in the reverse order 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    13
with the most recent changes coming first.  Date format:  DD-MM-YYYY
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    14
-->
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    15
<p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    16
ns-3 is an evolving system and there will be API or behavioral changes
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    17
from time to time.   Users who try to use scripts or models across
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    18
versions of ns-3 may encounter problems at compile time, run time, or
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    19
may see the simulation output change.  </p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    20
<p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    21
We have adopted the development policy that we are going to try to ease
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    22
the impact of these changes on users by documenting these changes in a
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    23
single place (this file), and not by providing a temporary or permanent
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    24
backward-compatibility software layer.  </p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    25
<p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    26
The goal is that users who encounter a problem when trying to use older
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    27
code with newer code should be able to consult this file to find
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    28
guidance as to how to fix the problem.  For instance, if a method name
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    29
or signature has changed, it should be stated what the new replacement
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    30
name is. </p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
<p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    32
Note that users who upgrade the simulator across versions, or who work
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    33
directly out of the development tree, may find that simulation output
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    34
changes even when the compilation doesn't break, such as when a
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    35
simulator default value is changed.  Therefore, it is good practice for
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    36
_anyone_ using code across multiple ns-3 releases to consult this file,
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    37
as well as the RELEASE_NOTES, to understand what has changed over time.
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    38
</p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    39
<p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    40
This file is a best-effort approach to solving this issue; we will do
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    41
our best but can guarantee that there will be things that fall through
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    42
the cracks, unfortunately.  If you, as a user, can suggest improvements
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    43
to this file based on your experience, please contribute a patch or drop
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    44
us a note on ns-developers mailing list.  </p>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    45
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    46
<hr>
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    47
<h1>Changes from ns-3.4 to ns-3.5</h1>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    48
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    49
<h2>Changes to build system:</h2>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    50
<ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    51
</ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    52
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    53
<h2>New API:</h2>
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    54
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    55
<ul>
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    56
<li><b>YansWifiPhyHelper supporting radiotap and prism PCAP output</b>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    57
<p>The newly supported pcap formats can be adopted by calling the following new method of YansWifiPhyHelper:</p>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    58
<pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    59
 +  void SetPcapFormat (enum PcapFormat format);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    60
</pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    61
where format is one of PCAP_FORMAT_80211_RADIOTAP, PCAP_FORMAT_80211_PRISM or  PCAP_FORMAT_80211. By default, PCAP_FORMAT_80211 is used, so the default PCAP format is the same as before.</p>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    62
</li>
4502
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    63
4475
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
    64
<li> <b>attributes for class Ipv4</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
    65
<p> class Ipv4 now contains attributes in ipv4.cc; the first one
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
    66
is called "IpForward" that will enable/disable Ipv4 forwarding.  
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
    67
</li>
4502
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    68
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    69
<li> <b>packet tags</b>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    70
<p>class Packet now contains AddPacketTag, RemovePacketTag and PeekPacketTag 
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    71
which can be used to attach a tag to a packet, as opposed to the old 
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    72
AddTag method which attached a tag to a set of bytes. The main 
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    73
semantic difference is in how these tags behave in the presence of 
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    74
fragmentation and reassembly.
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    75
</li>
4505
e865dbc1d157 merge with HEAD
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4492 4502
diff changeset
    76
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    77
</ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    78
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    79
<h2>Changes to existing API:</h2>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
    80
<ul>
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
    81
4555
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    82
<li><b>CreateObject changes</b>
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    83
  <p>CreateObject is now able to construct objects with a non-default constructor.
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    84
   If you used to pass attribute lists to CreateObject, you must now use CreateObjectWithAttributes.
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    85
  </p>
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    86
</li>
e33c757f790c update for API changes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4505
diff changeset
    87
4502
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    88
<li> <b>packet byte tags renaming</b>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    89
  <ul>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    90
  <li>Packet::AddTag to Packet::AddByteTag</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    91
  <li>Packet::FindFirstMatchingTag to Packet::FindFirstMatchingByteTag</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    92
  <li>Packet::RemoveAllTags to Packet::RemoveAllByteTags</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    93
  <li>Packet::PrintTags to Packet::PrintByteTags</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    94
  <li>Packet::GetTagIterator to Packet::GetByteTagIterator</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    95
  </ul>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    96
</li>
07d34c0d8d18 new tags
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4475
diff changeset
    97
4505
e865dbc1d157 merge with HEAD
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4492 4502
diff changeset
    98
<li><b>YansWifiPhyHelper::EnablePcap* methods not static any more</b>
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
    99
<p>To accommodate the possibility of configuring the PCAP format used for wifi promiscuous mode traces, several methods of YansWifiPhyHelper had to be made non-static:
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   100
<pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   101
-  static void EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   102
+         void EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   103
-  static void EnablePcap (std::string filename, Ptr<NetDevice> nd);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   104
+         void EnablePcap (std::string filename, Ptr<NetDevice> nd);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   105
-  static void EnablePcap (std::string filename, std::string ndName);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   106
+         void EnablePcap (std::string filename, std::string ndName);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   107
-  static void EnablePcap (std::string filename, NetDeviceContainer d);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   108
+         void EnablePcap (std::string filename, NetDeviceContainer d);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   109
-  static void EnablePcap (std::string filename, NodeContainer n);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   110
+         void EnablePcap (std::string filename, NodeContainer n);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   111
-  static void EnablePcapAll (std::string filename);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   112
+         void EnablePcapAll (std::string filename);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   113
</pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   114
</p>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   115
</li>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   116
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   117
<li><b>Wifi Promisc Sniff interface modified </b>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   118
<p> 
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   119
To accommodate support for the radiotap and prism headers in PCAP traces, the interface for promiscuos mode sniff in the wifi device was changed. The new implementation was heavily inspired by the way the madwifi driver handles monitor mode. A distinction between TX and RX events is introduced, to account for the fact that different information is to be put in the radiotap/prism header (e.g., RSSI and noise make sense only for RX packets). The following are the relevant modifications to the WifiPhy class:
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   120
<pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   121
-  void NotifyPromiscSniff (Ptr<const Packet> packet);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   122
+  void NotifyPromiscSniffRx (Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   123
+  void NotifyPromiscSniffTx (Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   124
-  TracedCallback<Ptr<const Packet> > m_phyPromiscSnifferTrace;
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   125
+  TracedCallback<Ptr<const Packet>, uint16_t, uint32_t, bool, double, double> m_phyPromiscSniffRxTrace;
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   126
+  TracedCallback<Ptr<const Packet>, uint16_t, uint32_t, bool> m_phyPromiscSniffTxTrace;
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   127
</pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   128
The above mentioned callbacks are expected to be used to call the following method to write Wifi PCAP traces in promiscuous mode:
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   129
<pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   130
+  void WriteWifiMonitorPacket(Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, bool isTx, double signalDbm, double noiseDbm);
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   131
</pre>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   132
In the above method, the isTx parameter is to be used to differentiate between TX and RX packets. For an example of how to implement these callbacks, see the implementation of PcapSniffTxEvent and PcapSniffRxEvent in src/helper/yans-wifi-helper.cc
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   133
</p>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   134
</li>
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4475
diff changeset
   135
4475
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   136
<li><b> Routing decoupled from class Ipv4</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   137
<p> All calls of the form "Ipv4::AddHostRouteTo ()" etc. (i.e. to 
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   138
add static routes, both unicast and multicast) have been moved to a new 
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   139
class Ipv4StaticRouting.  In addition, class Ipv4 now holds only
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   140
one possible routing protocol; the previous way to add routing protocols
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   141
(by ordered list of priority) has been moved to a new class Ipv4ListRouting.
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   142
Class Ipv4 has a new minimal routing API (just to set and get the routing
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   143
protocol):
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   144
<pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   145
-  virtual void AddRoutingProtocol (Ptr&lt;Ipv4RoutingProtocol&gt; routingProtocol, int16_t priority) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   146
+  virtual void SetRoutingProtocol (Ptr&lt;Ipv4RoutingProtocol&gt; routingProtocol) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   147
+  virtual Ptr&lt;Ipv4RoutingProtocol&gt; GetRoutingProtocol (void) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   148
</pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   149
</li>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   150
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   151
<li><b> class Ipv4RoutingProtocol is refactored</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   152
<p> The abstract base class Ipv4RoutingProtocol has been refactored to
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   153
align with corresponding Linux Ipv4 routing architecture, and has been
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   154
moved from ipv4.h to a new file ipv4-routing-protocol.h.  The new
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   155
methods (RouteOutput () and RouteInput ()) are aligned with Linux 
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   156
ip_route_output() and ip_route_input().  However,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   157
the general nature of these calls (synchronous routing lookup for
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   158
locally originated packets, and an asynchronous, callback-based lookup
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   159
for forwarded packets) is still the same.
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   160
<pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   161
-  typedef Callback&lt;void, bool, const Ipv4Route&, Ptr&lt;Packet&gt;, const Ipv4Header&&gt; RouteReplyCallback;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   162
+  typedef Callback&lt;void, Ptr&lt;Ipv4Route&gt;, Ptr&lt;const Packet&gt;, const Ipv4Header &&gt; UnicastForwardCallback;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   163
+  typedef Callback&lt;void, Ptr&lt;Ipv4MulticastRoute&gt;, Ptr&lt;const Packet&gt;, const Ipv4Header &&gt; MulticastForwardCallback;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   164
+  typedef Callback&lt;void, Ptr&lt;const Packet&gt;, const Ipv4Header &, uint32_t &gt; LocalDeliverCallback;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   165
+  typedef Callback&lt;void, Ptr&lt;const Packet&gt;, const Ipv4Header &&gt; ErrorCallback;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   166
-  virtual bool RequestInterface (Ipv4Address destination, uint32_t& interface) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   167
+  virtual Ptr&lt;Ipv4Route&gt; RouteOutput (const Ipv4Header &header, uint32_t oif, Socket::SocketErrno &errno) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   168
-  virtual bool RequestRoute (uint32_t interface,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   169
-                            const Ipv4Header &ipHeader,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   170
-                            Ptr&lt;Packet&gt; packet,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   171
-                            RouteReplyCallback routeReply) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   172
+  virtual bool RouteInput  (Ptr&lt;const Packet&gt; p, const Ipv4Header &header, Ptr&lt;const NetDevice&gt; idev,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   173
+                             UnicastForwardCallback ucb, MulticastForwardCallback mcb,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   174
+                             LocalDeliverCallback lcb, ErrorCallback ecb) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   175
</pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   176
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   177
</li>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   178
<li><b> previous class Ipv4Route, Ipv4MulticastRoute renamed; new classes with
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   179
those same names added</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   180
<p> The previous class Ipv4Route and Ipv4MulticastRoute are used by 
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   181
Ipv4StaticRouting and Ipv4GlobalRouting to record internal routing table
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   182
entries, so they were renamed to class Ipv4RoutingTableEntry and
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   183
Ipv4MulticastRoutingTableEntry, respectively.  In their place, new
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   184
class Ipv4Route and class Ipv4MulticastRoute have been added.  These
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   185
are reference-counted objects that are analogous to Linux struct
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   186
rtable and struct mfc_cache, respectively, to achieve better compatibility
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   187
with Linux routing architecture in the future.  
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   188
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   189
<li><b> class Ipv4 address-to-interface mapping functions changed</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   190
<p>  There was some general cleanup of functions that involve mappings
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   191
from Ipv4Address to either NetDevice or Ipv4 interface index.  
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   192
<pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   193
-  virtual uint32_t FindInterfaceForAddr (Ipv4Address addr) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   194
-  virtual uint32_t FindInterfaceForAddr (Ipv4Address addr, Ipv4Mask mask) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   195
+  virtual int32_t GetInterfaceForAddress (Ipv4Address address) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   196
+  virtual int32_t GetInterfaceForPrefix (Ipv4Address address, Ipv4Mask mask) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   197
-  virtual int32_t FindInterfaceForDevice(Ptr&lt;NetDevice&gt; nd) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   198
+  virtual int32_t GetInterfaceForDevice (Ptr&lt;const NetDevice&gt; device) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   199
-  virtual Ipv4Address GetSourceAddress (Ipv4Address destination) const = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   200
-  virtual bool GetInterfaceForDestination (Ipv4Address dest,
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   201
-  virtual uint32_t GetInterfaceByAddress (Ipv4Address addr, Ipv4Mask mask = Ipv4Mask("255.255.255.255"));
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   202
</pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   203
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   204
<li><b> class Ipv4 multicast join API deleted</b>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   205
<p> The following methods are not really used in present form since IGMP
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   206
is not being generated, so they have been removed (planned to be replaced
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   207
by multicast socket-based calls in the future):
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   208
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   209
<pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   210
- virtual void JoinMulticastGroup (Ipv4Address origin, Ipv4Address group) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   211
- virtual void LeaveMulticastGroup (Ipv4Address origin, Ipv4Address group) = 0;
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   212
</pre>
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   213
a232dcbbe7a8 api changes and release notes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4426
diff changeset
   214
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   215
<li><b>Deconflict NetDevice::ifIndex and Ipv4::ifIndex (bug 85).</b>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   216
<p>All function parameters named "ifIndex" that refer 
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   217
to an Ipv4 interface are instead named "interface".
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   218
<pre>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   219
- static const uint32_t Ipv4RoutingProtocol::IF_INDEX_ANY = 0xffffffff;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   220
+ static const uint32_t Ipv4RoutingProtocol::INTERFACE_ANY = 0xffffffff;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   221
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   222
- bool Ipv4RoutingProtocol::RequestIfIndex (Ipv4Address destination, uint32_t& ifIndex);
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   223
+ bool Ipv4RoutingProtocol::RequestInterface (Ipv4Address destination, uint32_t& interface);
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   224
(N.B. this particular function is planned to be renamed to RouteOutput() in the
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   225
proposed IPv4 routing refactoring)
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   226
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   227
- uint32_t Ipv4::GetIfIndexByAddress (Ipv4Address addr, Ipv4Mask mask);
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   228
+ int_32t Ipv4::GetInterfaceForAddress (Ipv4Address address, Ipv4Mask mask) const;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   229
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   230
- bool Ipv4::GetIfIndexForDestination (Ipv4Address dest, uint32_t &ifIndex) const;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   231
+ bool Ipv4::GetInterfaceForDestination (Ipv4Address dest, uint32_t &interface) const;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   232
(N.B. this function is not needed in the proposed Ipv4 routing refactoring)
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   233
</pre>
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   234
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   235
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   236
<li><b>Allow multiple IPv4 addresses to be assigned to an interface (bug 188)</b>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   237
  <ul>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   238
  <li> Add class Ipv4InterfaceAddress:  
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   239
  This is a new class to resemble Linux's struct in_ifaddr.  It holds IP addressing information, including mask,
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   240
  broadcast address, scope, whether primary or secondary, etc.
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   241
  <pre>
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   242
+  virtual uint32_t AddAddress (uint32_t interface, Ipv4InterfaceAddress address) = 0;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   243
+  virtual Ipv4InterfaceAddress GetAddress (uint32_t interface, uint32_t addressIndex) const = 0;
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   244
+  virtual uint32_t GetNAddresses (uint32_t interface) const = 0;
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   245
  </pre>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   246
  <li>Regarding legacy API usage, typically where you once did the following,
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   247
  using the public Ipv4 class interface (e.g.):
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   248
  <pre>
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   249
  ipv4A->SetAddress (ifIndexA, Ipv4Address ("172.16.1.1"));
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   250
  ipv4A->SetNetworkMask (ifIndexA, Ipv4Mask ("255.255.255.255"));
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   251
  </pre>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   252
  you now do:
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   253
  <pre>
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   254
  Ipv4InterfaceAddress ipv4IfAddrA = Ipv4InterfaceAddress (Ipv4Address ("172.16.1.1"), Ipv4Mask ("255.255.255.255"));
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   255
  ipv4A->AddAddress (ifIndexA, ipv4IfAddrA);
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   256
  </pre>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   257
  <li> At the helper API level, one often gets an address from an interface
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   258
  container.  We preserve the legacy GetAddress (uint32_t i) but it
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   259
  is documented that this will return only the first (address index 0)
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   260
  address on the interface, if there are multiple such addresses. 
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   261
  We provide also an overloaded variant for the multi-address case: 
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   262
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   263
  <pre>
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   264
Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i)
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   265
+ Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i, uint32_t j)
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   266
  </pre>
4413
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   267
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   268
  </ul>
4413
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   269
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   270
<li><b>New WifiMacHelper objects</b>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   271
<p>The type of wifi MAC is now set by two new specific helpers, NqosWifiMacHelper for non QoS MACs and QosWifiMacHelper for Qos MACs. They are passed as argument to WifiHelper::Install methods.</li>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   272
  <pre>
4413
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   273
- void WifiHelper::SetMac (std::string type, std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),...)
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   274
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   275
- NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phyHelper, NodeContainer c) const
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   276
+ NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phyHelper, const WifiMacHelper &macHelper, NodeContainer c) const
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   277
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   278
- NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phy, Ptr&lt;Node&gt; node) const
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   279
+ NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, Ptr&lt;Node&gt; node) const
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   280
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   281
- NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phy, std::string nodeName) const
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   282
+ NetDeviceContainer WifiHelper::Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, std::string nodeName) const
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   283
  </pre>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   284
  See src/helper/nqos-wifi-mac-helper.h and src/helper/qos-wifi-mac-helper.h for more details.
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   285
  </p>
4413
4726838efe7c Added API changes for wifi helpers
Mirko Banchi <mk.banchi@gmail.com>
parents: 4385
diff changeset
   286
4426
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   287
<li><b>Remove Mac48Address::IsMulticast</b>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   288
  <p>This method was considered buggy and unsafe to call. Its replacement is Mac48Address::IsGroup.
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   289
  </li>
c8dd5497e809 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4413
diff changeset
   290
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   291
</ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   292
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   293
<h2>Changed behavior:</h2>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   294
<ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   295
</ul>
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   296
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   297
<hr>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   298
<h1>Changes from ns-3.3 to ns-3.4</h1>
4260
29587ce02a57 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3982
diff changeset
   299
4385
1114152c44dd update CHANGES.html
Tom Henderson <tomh@tomh.org>
parents: 4305
diff changeset
   300
<h2>Changes to build system:</h2>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   301
<ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   302
<li>A major option regarding the downloading and building of ns-3 has been
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   303
added for ns-3.4 -- the ns-3-allinone feature.  This allows a user to
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   304
get the most common options for ns-3 downloaded and built with a minimum
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   305
amount of trouble.  See the ns-3 tutorial for a detailed explanation of
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   306
how to use this new feature.</li>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   307
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   308
<li>The build system now runs build items in parallel by default.  This includes
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   309
the regression tests.</li>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   310
</ul>
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   311
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   312
<h2>New API:</h2>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   313
<ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   314
<li>XML support has been added to the ConfigStore in /src/contrib/config-store.cc</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   315
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   316
<li>The ns-2 calendar queue scheduler option has been ported to src/simulator</li>
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   317
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   318
<li>A ThreeLogDistancePropagationLossModel has been added to src/devices/wifi</li>
4260
29587ce02a57 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3982
diff changeset
   319
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   320
<li>ConstantAccelerationMobilityModel in src/mobility/constant-acceleration-mobility-model.h</li>
4266
7b0c4017bc36 Update CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 4260
diff changeset
   321
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   322
<li>A new emulation mode is supported with the TapBridge net device (see
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   323
src/devices/tap-bridge)</li>
4266
7b0c4017bc36 Update CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 4260
diff changeset
   324
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   325
<li>A new facility for naming ns-3 Objects is included (see
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   326
src/core/names.{cc,h})</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   327
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   328
<li>Wifi multicast support has been added in src/devices/wifi</li>
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   329
</ul>
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   330
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   331
<h2>Changes to existing API:</h2>
4266
7b0c4017bc36 Update CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 4260
diff changeset
   332
7b0c4017bc36 Update CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 4260
diff changeset
   333
<ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   334
<li>Some fairly significant changes have been made to the API of the
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   335
random variable code.  Please see the ns-3 manual and src/core/random-variable.cc
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   336
for details.</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   337
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   338
<li>The trace sources in the various NetDevice classes has been completely
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   339
reworked to allow for a consistent set of trace sources across the
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   340
devices.  The names of the trace sources have been changed to provide
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   341
some context with respect to the level at which the trace occurred.
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   342
A new set of trace sources has been added which emulates the behavior
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   343
of packet sniffers.  These sources have been used to implement tcpdump-
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   344
like functionality and are plumbed up into the helper classes.  The 
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   345
user-visible changes are the trace source name changes and the ability
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   346
to do promiscuous-mode pcap tracing via helpers.  For further information
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   347
regarding these changes, please see the ns-3 manual</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   348
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   349
<li>StaticMobilityModel has been renamed ConstantPositionMobilityModel
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   350
StaticSpeedMobilityModel has been renamed ConstantVelocityMobilityModel</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   351
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   352
<li>The Callback templates have been extended to support more parameters.
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   353
See src/core/callback.h</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   354
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   355
<li>Many helper API have been changed to allow passing Object-based parameters
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   356
as string names to ease working with the object name service.</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   357
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   358
<li>The Config APIs now accept path segments that are names defined by the
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   359
object name service.</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   360
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   361
<li>Minor changes were made to make the system build under the Intel C++ compiler.</li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   362
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   363
<li>Trace hooks for association and deassociation to/from an access point were
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   364
added to src/devices/wifi/nqsta-wifi-mac.cc</li>
4260
29587ce02a57 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3982
diff changeset
   365
</ul>
29587ce02a57 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3982
diff changeset
   366
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   367
<h2>Changed behavior:</h2>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   368
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   369
<ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   370
<li>The tracing system rework has introduced some significant changes in the
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   371
behavior of some trace sources, specifically in the positioning of trace sources
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   372
in the device code.  For example, there were cases where the packet transmit 
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   373
trace source was hit before the packet was enqueued on the device transmit quueue.
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   374
This now happens just before the packet is transmitted over the channel medium.
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   375
The scope of the changes is too large to be included here.  If you have concerns
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   376
regarding trace semantics, please consult the net device documentation for details.
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   377
As is usual, the ultimate source for documentation is the net device source code.</li>
4301
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   378
</ul>
f1c83e54e541 Update CHANGES for ns-3.4 from hg log
Craig Dowell <craigdo@ee.washington.edu>
parents: 4266
diff changeset
   379
4260
29587ce02a57 update CHANGES.html
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3982
diff changeset
   380
<hr>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   381
<h1>Changes from ns-3.2 to ns-3.3</h1>
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   382
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   383
<h2>New API:</h2>
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   384
<ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   385
<li>
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   386
ns-3 ABORT macros in src/core/abort.h
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   387
Config::MatchContainer
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   388
ConstCast and DynamicCast helper functions for Ptr casting
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   389
StarTopology added to several topology helpers
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   390
NetDevice::IsBridge () 
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   391
</li>
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   392
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   393
<li>17-11-2008; changeset 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   394
<a href="http://code.nsnam.org/ns-3-dev/rev/4c1c3f6bcd03">4c1c3f6bcd03</a></li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   395
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   396
<li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   397
The PppHeader previously defined in the point-to-point-net-device code has been 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   398
made public.
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   399
</li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   400
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   401
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   402
<li>17-11-2008; changeset 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   403
<a href="http://code.nsnam.org/ns-3-dev/rev/16c2970a0344">16c2970a0344</a></li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   404
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   405
<li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   406
An emulated net device has been added as enabling technology for ns-3 emulation
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   407
scenarios.  See src/devices/emu and examples/emu-udp-echo.cc for details.
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   408
</li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   409
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   410
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   411
<li>17-11-2008; changeset 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   412
<a href="http://code.nsnam.org/ns-3-dev/rev/4222173d1e6d">4222173d1e6d</a></li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   413
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   414
<li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   415
Added method InternetStackHelper::EnableAsciiChange to allow allow a user to 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   416
hook ascii trace to the drop trace events in Ipv4L3Protocol and ArpL3Protocol.
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   417
</li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   418
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   419
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   420
</ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   421
<h2>Changes to existing API:</h2>
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   422
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   423
3982
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   424
<li> NetDevice::MakeMulticastAddress() was renamed to NetDevice::GetMulticast()
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   425
and the original GetMulticast() removed </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   426
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   427
<li> Socket API changes:
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   428
<ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   429
<li> return type of SetDataSentCallback () changed from bool to void </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   430
<li> Socket::Listen() no longer takes a queueLimit argument</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   431
</ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   432
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   433
<li> As part of the Wifi Phy rework, there have been several API changes
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   434
at the low level and helper API level.  </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   435
<ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   436
<li>  At the helper API level, the WifiHelper was split to three classes: 
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   437
a WifiHelper, a YansWifiChannel helper, and a YansWifiPhy helper.  Some
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   438
functions like Ascii and Pcap tracing functions were moved from class
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   439
WifiHelper to class YansWifiPhyHelper. 
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   440
<li>  At the low-level API, there have been a number of changes to
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   441
make the Phy more modular:</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   442
<ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   443
<li> composite-propagation-loss-model.h is removed</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   444
<li> DcfManager::NotifyCcaBusyStartNow() has changed name</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   445
<li> fragmentation related functions (e.g. DcaTxop::GetNFragments()) have
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   446
changed API to account for some implementation changes</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   447
<li> Interference helper and error rate model added </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   448
<li> JakesPropagationLossModel::GetLoss() moved to PropagationLoss() class</li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   449
<li> base class WifiChannel made abstract </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   450
<li> WifiNetDevice::SetChannel() removed </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   451
<li> a WifiPhyState helper class added </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   452
<li> addition of the YansWifiChannel and YansWifiPhy classes </li>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   453
</ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   454
</ul>
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   455
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   456
<li>17-11-2008; changeset 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   457
<a href="http://code.nsnam.org/ns-3-dev/rev/dacfd1f07538">dacfd1f07538</a></li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   458
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   459
<li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   460
Change attribute "RxErrorModel" to "ReceiveErrorModel" in CsmaNetDevice for 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   461
consistency between devices.
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   462
</li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   463
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   464
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   465
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   466
<h2>changed behavior:</h2>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   467
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   468
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   469
<li>17-11-2008; changeset 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   470
<a href="http://code.nsnam.org/ns-3-dev/rev/ed0dfce40459">ed0dfce40459</a></li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   471
<ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   472
<li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   473
Relax reasonableness testing in Ipv4AddressHelper::SetBase to allow the 
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   474
assignment of /32 addresses.
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   475
</li>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   476
</ul>
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   477
3949
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   478
<li>17-11-2008; changeset 
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   479
<a href="http://code.nsnam.org/ns-3-dev/rev/756887a9bbea">756887a9bbea</a></li>
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   480
<ul>
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   481
<li>
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   482
Global routing supports bridge devices.
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   483
</li>
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   484
</ul>
3982
4f370a1b637c add some things to release notes and changes.html; revise README
Tom Henderson <tomh@tomh.org>
parents: 3949
diff changeset
   485
</ul>
3949
016c554c4f6d CHANGES.html for global routing supporting bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 3865
diff changeset
   486
3865
6647bcafbf3f overdue changes to CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3686
diff changeset
   487
<hr>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   488
<h1>Changes from ns-3.1 to ns-3.2</h1>
3593
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   489
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   490
<h2>New API:</h2>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   491
<ul>
3593
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   492
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   493
<li>26-08-2008; changeset 
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   494
<a href="http://code.nsnam.org/ns-3-dev/rev/5aa65b1ea001">5aa65b1ea001</a></li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   495
<ul>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   496
<li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   497
Add multithreaded and real-time simulator implementation.  Allows for emulated
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   498
net devices running in threads other than the main simulation thread to schedule
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   499
events.  Allows for pacing the simulation clock at 1x real-time.
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   500
</li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   501
</ul>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   502
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   503
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   504
<li>26-08-2008; changeset 
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   505
<a href="http://code.nsnam.org/ns-3-dev/rev/c69779f5e51e">c69779f5e51e</a></li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   506
<ul>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   507
<li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   508
Add threading and synchronization primitives.  Enabling technology for 
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   509
multithreaded simulator implementation.
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   510
</li>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   511
</ul>
dfd634417b8d update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3551
diff changeset
   512
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   513
</ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   514
<h2>New API in existing classes:</h2>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   515
<ul>
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   516
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   517
<li>01-08-2008; changeset 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   518
<a href="http://code.nsnam.org/ns-3-dev/rev/a18520551cdf">a18520551cdf</a></li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   519
<ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   520
<li>class ArpCache has two new attributes:  MaxRetries 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   521
and a Drop trace.  It also has some new public methods but these are 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   522
mostly for internal use.
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   523
</ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   524
</li>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   525
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   526
</ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   527
<h2>Changes to existing API:</h2>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   528
<ul>
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   529
3667
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   530
<li>05-09-2008; changeset 
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   531
<a href="http://code.nsnam.org/ns-3-dev/rev/aa1fb0f43571">aa1fb0f43571</a></li>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   532
<ul>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   533
<li>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   534
Change naming of MTU and packet size attributes in CSMA and Point-to-Point devices<br>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   535
After much discussion it was decided that the preferred way to think about 
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   536
the different senses of transmission units and encapsulations was to call the 
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   537
MAC MTU simply MTU and to use the overall packet size as the PHY-level attribute
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   538
of interest.  See the Doxygen of CsmaNetDevice::SetFrameSize and 
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   539
PointToPointNetDevice::SetFrameSize for a detailed description.
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   540
</li>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   541
</ul>
ba90a28f8c59 prep for ns-3.2-RC2
Craig Dowell <craigdo@ee.washington.edu>
parents: 3645
diff changeset
   542
3551
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   543
<li>25-08-2008; changeset 
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   544
<a href="http://code.nsnam.org/ns-3-dev/rev/e5ab96db540e">e5ab96db540e</a></li>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   545
<ul>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   546
<li>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   547
bug 273: constify packet pointers.<br>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   548
The normal and the promiscuous receive callbacks of the NetDevice API
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   549
have been changed from:
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   550
<pre>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   551
Callback<bool,Ptr<NetDevice>,Ptr<Packet>,uint16_t,const Address &>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   552
Callback<bool,Ptr<NetDevice>, Ptr<Packet>, uint16_t,
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   553
         const Address &, const Address &, enum PacketType >
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   554
</pre>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   555
to:
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   556
<pre>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   557
Callback<bool,Ptr<NetDevice>,Ptr<const Packet>,uint16_t,const Address &>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   558
Callback<bool,Ptr<NetDevice>, Ptr<const Packet>, uint16_t,
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   559
         const Address &, const Address &, enum PacketType >
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   560
</pre>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   561
to avoid the kind of bugs reported in 
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   562
<a href="http://www.nsnam.org/bugzilla/show_bug.cgi?id=273">bug 273</a>.
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   563
Users who implement a subclass of the NetDevice base class need to change the signature
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   564
of their SetReceiveCallback and SetPromiscReceiveCallback methods.
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   565
</li>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   566
</ul>
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   567
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   568
3508
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   569
<li>04-08-2008; changeset 
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   570
<a href="http://code.nsnam.org/ns-3-dev/rev/cba7b2b80fe8">cba7b2b80fe8</a></li>
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   571
<ul>
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   572
<li>
3551
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   573
Cleanup of MTU confusion and initialization in CsmaNetDevice<br>
3508
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   574
The MTU of the CsmaNetDevice defaulted to 65535.  This did not correspond with
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   575
the expected MTU found in Ethernet-like devices.  Also there was not clear 
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   576
documentation regarding which MTU was being set.  There are two MTU here, one
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   577
at the MAC level and one at the PHY level.  We split out the MTU setting to make
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   578
this more clear and set the default PHY level MTU to 1500 to be more like
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   579
Ethernet.  The encapsulation mode defaults to LLC/SNAP which then puts the
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   580
MAC level MTU at 1492 by default.  We allow users to now set the encapsulation
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   581
mode, MAC MTU and PHY MTU while keeping the three values consistent.  See the
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   582
Doxygen of CsmaNetDevice::SetMaxPayloadLength for a detailed description of the
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   583
issues and solution.
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   584
</li>
7a3c6148c22d actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents: 3505
diff changeset
   585
</ul>
3551
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   586
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   587
<li>21-07-2008; changeset 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   588
<a href="
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   589
http://code.nsnam.org/ns-3-dev/rev/99698bc858e8">99698bc858e8</a></li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   590
<ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   591
<li> class NetDevice has added a pure virtual method that
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   592
must be implemented by all subclasses:
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   593
<pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   594
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb) = 0;
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   595
</pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   596
All NetDevices must support this method, and must call this callback
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   597
when processing packets in the receive direction (the appropriate place
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   598
to call this is device-dependent).  An approach to stub this out
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   599
temporarily, if you do not care about immediately enabling this
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   600
functionality, would be to add this to your device:
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   601
<pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   602
void
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   603
ExampleNetDevice::SetPromiscReceiveCallback
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   604
(NetDevice::PromiscReceiveCallback cb)
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   605
{ 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   606
  NS_ASSERT_MSG (false, "No implementation yet for
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   607
SetPromiscReceiveCallback");
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   608
}
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   609
</pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   610
To implement this properly, consult the CsmaNetDevice for examples of
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   611
when the m_promiscRxCallback is called.
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   612
</li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   613
</ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   614
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   615
<li>03-07-2008; changeset 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   616
<a href="http://code.nsnam.org/ns-3-dev/rev/d5f8e5fae1c6">d5f8e5fae1c6</a></li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   617
<ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   618
<li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   619
Miscellaneous cleanup of Udp Helper API, to fix bug 234
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   620
<pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   621
class UdpEchoServerHelper
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   622
{
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   623
public:
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   624
- UdpEchoServerHelper ();
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   625
- void SetPort (uint16_t port); 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   626
+ UdpEchoServerHelper (uint16_t port);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   627
+ 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   628
+ void SetAttribute (std::string name, const AttributeValue &value);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   629
ApplicationContainer Install (NodeContainer c);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   630
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   631
class UdpEchoClientHelper
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   632
{
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   633
public:
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   634
- UdpEchoClientHelper ();
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   635
+ UdpEchoClientHelper (Ipv4Address ip, uint16_t port);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   636
- void SetRemote (Ipv4Address ip, uint16_t port);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   637
- void SetAppAttribute (std::string name, const AttributeValue &value);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   638
+ void SetAttribute (std::string name, const AttributeValue &value);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   639
ApplicationContainer Install (NodeContainer c);
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   640
</pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   641
</li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   642
</ul>
3551
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   643
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   644
<li>03-07-2008; changeset 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   645
<a href="
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   646
http://code.nsnam.org/ns-3-dev/rev/3cdd9d60f7c7">3cdd9d60f7c7</a></li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   647
<ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   648
<li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   649
Rename all instances method names using "Set..Parameter" to "Set..Attribute"
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   650
(bug 232)
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   651
</li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   652
<li> How to fix your code:  Any use of helper API that was using a method
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   653
"Set...Parameter()" should be changed to read "Set...Attribute()".  e.g.
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   654
<pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   655
- csma.SetChannelParameter ("DataRate", DataRateValue (5000000));
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   656
- csma.SetChannelParameter ("Delay", TimeValue (MilliSeconds (2)));
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   657
+ csma.SetChannelAttribute ("DataRate", DataRateValue (5000000));
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   658
+ csma.SetChannelAttribute ("Delay", TimeValue (MilliSeconds (2)));
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   659
</pre>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   660
</li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   661
</ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   662
</li>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   663
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   664
</ul>
4305
9ec113d84cc8 prettify CHANGES and add behavior changed section for ns-3.4
Craig Dowell <craigdo@ee.washington.edu>
parents: 4301
diff changeset
   665
<h2>Changed behavior:</h2>
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   666
<ul>
3645
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   667
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   668
<li>07-09-2008; changeset 
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   669
<a href="http://code.nsnam.org/ns-3-dev/rev/5d836ab1523b">5d836ab1523b</a></li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   670
<ul>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   671
3645
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   672
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   673
Implement a finite receive buffer for TCP<br>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   674
The native TCP model in TcpSocketImpl did not support a finite receive buffer.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   675
This changeset adds the following functionality in this regard:
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   676
<ul>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   677
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   678
Being able to set the receiver buffer size through the attributes system.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   679
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   680
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   681
This receiver buffer size is now correctly exported in the TCP header as the
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   682
advertised window.  Prior to this changeset, the TCP header advertised window
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   683
was set to the maximum size of 2^16 bytes.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   684
window
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   685
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   686
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   687
The aforementioned window size is correctly used for flow control, i.e. the
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   688
sending TCP will not send more data than available space in the receiver's
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   689
buffer.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   690
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   691
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   692
In the case of a receiver window collapse, when a advertised zero-window
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   693
packet is received, the sender enters the persist probing state in which
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   694
it sends probe packets with one payload byte at exponentially backed-off
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   695
intervals up to 60s.  The reciever will continue to send advertised 
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   696
zero-window ACKs of the old data so long as the receiver buffer remains full.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   697
When the receiver window clears up due to an application read, the TCP
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   698
will finally ACK the probe byte, and update its advertised window appropriately.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   699
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   700
</ul>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   701
See 
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   702
<a href="http://www.nsnam.org/bugzilla/show_bug.cgi?id=239"> bug 239 </a> for
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   703
more.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   704
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   705
</ul>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   706
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   707
<li>07-09-2008; changeset 
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   708
<a href="http://code.nsnam.org/ns-3-dev/rev/7afa66c2b291">7afa66c2b291</a></li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   709
<ul>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   710
<li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   711
Add correct FIN exchange behavior during TCP closedown<br>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   712
The behavior of the native TcpSocketImpl TCP model was such that the final
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   713
FIN exchange was not correct, i.e. calling Socket::Close didn't send a FIN
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   714
packet, and even if it had, the ACK never came back, and even if it had, the
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   715
ACK would have incorrect sequence number.  All these various problems have been
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   716
addressed by this changeset.  See 
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   717
<a href="http://www.nsnam.org/bugzilla/show_bug.cgi?id=242"> bug 242 </a> for
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   718
more.
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   719
</li>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   720
</ul>
5a0182408867 Update CHANGES.html to reflect the last two changesets
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 3593
diff changeset
   721
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   722
<li> 28-07-2008; changeset 
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   723
<a href="http://code.nsnam.org/ns-3-dev/rev/6f68f1044df1">6f68f1044df1</a>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   724
<ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   725
<li>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   726
OLSR: HELLO messages hold time changed to 3*hello
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   727
interval from hello interval.  This is an important bug fix as
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   728
hold time == refresh time was never intentional, as it leads to
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   729
instability in neighbor detection.
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   730
</ul>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   731
</li>
3686
9e2dde61057c fix formatting
Tom Henderson <tomh@tomh.org>
parents: 3667
diff changeset
   732
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   733
</ul>
3551
fbf628eb3ca6 document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3508
diff changeset
   734
3505
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   735
</body>
16005bad2e0b Add CHANGES.html
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   736
</html>