update CHANGES.html

This commit is contained in:
Tom Henderson
2009-04-20 20:52:51 -07:00
parent a2d89754b9
commit b5b4532e9f

View File

@@ -43,10 +43,79 @@ the cracks, unfortunately. If you, as a user, can suggest improvements
to this file based on your experience, please contribute a patch or drop
us a note on ns-developers mailing list. </p>
<hr>
<h1>Changes from ns-3.4 to ns-3.5</h1>
<h2>Changes to build system:</h2>
<ul>
</ul>
<h2>New API:</h2>
<ul>
</ul>
<h2>Changes to existing API:</h2>
<ul>
<li> deconflict NetDevice::ifIndex and Ipv4::ifIndex (bug 85). All function parameters named "ifIndex" that refer
to an Ipv4 interface are instead named "interface".
<pre>
- static const uint32_t Ipv4RoutingProtocol::IF_INDEX_ANY = 0xffffffff;
+ static const uint32_t Ipv4RoutingProtocol::INTERFACE_ANY = 0xffffffff;
- bool Ipv4RoutingProtocol::RequestIfIndex (Ipv4Address destination, uint32_t& ifIndex);
+ bool Ipv4RoutingProtocol::RequestInterface (Ipv4Address destination, uint32_t& interface);
(N.B. this particular function is planned to be renamed to RouteOutput() in the
proposed IPv4 routing refactoring)
- uint32_t Ipv4::GetIfIndexByAddress (Ipv4Address addr, Ipv4Mask mask);
+ int_32t Ipv4::GetInterfaceForAddress (Ipv4Address address, Ipv4Mask mask) const;
- bool Ipv4::GetIfIndexForDestination (Ipv4Address dest, uint32_t &ifIndex) const;
+ bool Ipv4::GetInterfaceForDestination (Ipv4Address dest, uint32_t &interface) const;
(N.B. this function is not needed in the proposed Ipv4 routing refactoring)
</pre>
<li> allow multiple IPv4 addresses to be assigned to an interface (bug 188).
<ul>
<li> Add class Ipv4InterfaceAddress:
This is a new class to resemble Linux's struct in_ifaddr. It holds IP addressing information, including mask,
broadcast address, scope, whether primary or secondary, etc.
<pre>
+ virtual uint32_t AddAddress (uint32_t interface, Ipv4InterfaceAddress address) = 0;
+ virtual Ipv4InterfaceAddress GetAddress (uint32_t interface, uint32_t addressIndex) const = 0;
+ virtual uint32_t GetNAddresses (uint32_t interface) const = 0;
</pre>
<li>Regarding legacy API usage, typically where you once did the following,
using the public Ipv4 class interface (e.g.):
<pre>
ipv4A->SetAddress (ifIndexA, Ipv4Address ("172.16.1.1"));
ipv4A->SetNetworkMask (ifIndexA, Ipv4Mask ("255.255.255.255"));
</pre>
you now do:
<pre>
Ipv4InterfaceAddress ipv4IfAddrA = Ipv4InterfaceAddress (Ipv4Address ("172.16.1.1"), Ipv4Mask ("255.255.255.255"));
ipv4A->AddAddress (ifIndexA, ipv4IfAddrA);
</pre>
<li> At the helper API level, one often gets an address from an interface
container. We preserve the legacy GetAddress (uint32_t i) but it
is documented that this will return only the first (address index 0)
address on the interface, if there are multiple such addresses.
We provide also an overloaded variant for the multi-address case:
<pre>
Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i)
+ Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i, uint32_t j)
</pre>
</ul>
</ul>
<h2>Changed behavior:</h2>
<ul>
</ul>
<hr>
<h1>Changes from ns-3.3 to ns-3.4</h1>
<h2>Changes to build system</h2>
<h2>Changes to build system:</h2>
<ul>
<li>A major option regarding the downloading and building of ns-3 has been
added for ns-3.4 -- the ns-3-allinone feature. This allows a user to