# HG changeset patch
# User Tom Henderson
# Date 1240285971 25200
# Node ID 1114152c44ddbedea94c60c5f8999de04dce2f42
# Parent 85344a688fbb7c9c2fc2ac1166620e7d54f15c40
update CHANGES.html
diff -r 85344a688fbb -r 1114152c44dd CHANGES.html
--- a/CHANGES.html Mon Apr 20 20:15:17 2009 -0700
+++ b/CHANGES.html Mon Apr 20 20:52:51 2009 -0700
@@ -44,9 +44,78 @@
us a note on ns-developers mailing list.
+Changes from ns-3.4 to ns-3.5
+
+Changes to build system:
+
+
+New API:
+
+
+Changes to existing API:
+
+- deconflict NetDevice::ifIndex and Ipv4::ifIndex (bug 85). All function parameters named "ifIndex" that refer
+to an Ipv4 interface are instead named "interface".
+
+- 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)
+
+ - allow multiple IPv4 addresses to be assigned to an interface (bug 188).
+
+- 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.
+
++ 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;
+
+ - Regarding legacy API usage, typically where you once did the following,
+using the public Ipv4 class interface (e.g.):
+
+ ipv4A->SetAddress (ifIndexA, Ipv4Address ("172.16.1.1"));
+ ipv4A->SetNetworkMask (ifIndexA, Ipv4Mask ("255.255.255.255"));
+
+you now do:
+
+ Ipv4InterfaceAddress ipv4IfAddrA = Ipv4InterfaceAddress (Ipv4Address ("172.16.1.1"), Ipv4Mask ("255.255.255.255"));
+ ipv4A->AddAddress (ifIndexA, ipv4IfAddrA);
+
+ - 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:
+
+
+Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i)
++ Ipv4Address Ipv4InterfaceContainer::GetAddress (uint32_t i, uint32_t j)
+
+
+
+
+Changed behavior:
+
+
+
Changes from ns-3.3 to ns-3.4
-Changes to build system
+Changes to build system:
- 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