update CHANGES.html
This commit is contained in:
71
CHANGES.html
71
CHANGES.html
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user