Difference between revisions of "IPv4 cleanup"

From Nsnam
Jump to: navigation, search
(Bugs and cleanup)
(IPv4 status)
Line 2: Line 2:
  
 
This page lists things that need to be done for IPv4 and routing protocols.
 
This page lists things that need to be done for IPv4 and routing protocols.
 +
 +
== API issues ==
 +
 +
# Public API needed to look at or manipulate the ARP cache
 +
#* '''Proposal:''' Defer to ns-3.6 or later
 +
# Ipv4StaticRouting:  split into unicast and multicast separate objects?
 +
#* Another issue is whether this abstract base class is sufficient to implement Netlink-based unicast routing (or how it will be extended in the future):  http://qos.ittc.ku.edu/netlink/html/node9.html
 +
# No way to remove an IP address from an interface
 +
#* '''Proposal:''' Fix this for ns-3.5.  bugfix patch is in tracker.
 +
# Ipv4RoutingProtocol::RouteOutput() may require Ptr<Packet> for supporting Nix vector routing (and perhaps other use cases)
 +
#* '''Proposal:''' Fix this for ns-3.5.
 +
# Ipv4StaticRouting multicast mrouted API does not support VIFs and TTLs
 +
#* For reference, see http://tldp.org/HOWTO/Multicast-HOWTO-7.html, MRT_ADD_MFC, MRT_DEL_MFC
 +
#* '''Proposal:''' Defer to ns-3.6 or later
 +
# GlobalRouteManager static API could be moved to a helper API
 +
#* '''Proposal:''' ?? how to deal with API breakage
 +
# Tunneling net device (Ipv4 in ipv4) will require a public entry point into Ipv4 so that packets can be looped back through
 +
#* '''Proposal:''' Defer class Ipv4's API extension until we have working example
  
 
== Bugs and cleanup ==
 
== Bugs and cleanup ==
  
 
* IpForward attribute (ipv4.cc) doesn't do anything (bug 63)
 
* IpForward attribute (ipv4.cc) doesn't do anything (bug 63)
* Ipv4L3Protocol::GetStaticRouting() needs to be deleted
 
 
* in general, Ipv4L3Protocol needs a lot of cleanup, and bugs/limitations documented in the tracker
 
* in general, Ipv4L3Protocol needs a lot of cleanup, and bugs/limitations documented in the tracker
 
* Ipv4L3Protocol needs a unit test
 
* Ipv4L3Protocol needs a unit test
Line 12: Line 29:
 
* case 4) of Ipv4L3Protocol::Send() is not implemented
 
* case 4) of Ipv4L3Protocol::Send() is not implemented
 
* should some of the routing protocol interfaces be aggregated to node?  Not clear.
 
* should some of the routing protocol interfaces be aggregated to node?  Not clear.
 +
*
  
 
== New features needed ==
 
== New features needed ==
  
* Tunneling net device (Ipv4 in ipv4)
+
 
* Netlink-like routing API
+
* Multicast
* Public API to look at the ARP cache
+
** add VIF (virtual interface) and better TTL handling logic, for multicast forwarding
* Multicast group membership, and non-source-specific multicast
+
** for multicast hosts, the API for group membership, TTL, loopback (multicast sockets)
 
* Ability to dump routing tables for logging/output
 
* Ability to dump routing tables for logging/output
 
* helpers to provide iproute2-like interface
 
* helpers to provide iproute2-like interface

Revision as of 21:22, 14 June 2009

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This page lists things that need to be done for IPv4 and routing protocols.

API issues

  1. Public API needed to look at or manipulate the ARP cache
    • Proposal: Defer to ns-3.6 or later
  2. Ipv4StaticRouting: split into unicast and multicast separate objects?
  3. No way to remove an IP address from an interface
    • Proposal: Fix this for ns-3.5. bugfix patch is in tracker.
  4. Ipv4RoutingProtocol::RouteOutput() may require Ptr<Packet> for supporting Nix vector routing (and perhaps other use cases)
    • Proposal: Fix this for ns-3.5.
  5. Ipv4StaticRouting multicast mrouted API does not support VIFs and TTLs
  6. GlobalRouteManager static API could be moved to a helper API
    • Proposal: ?? how to deal with API breakage
  7. Tunneling net device (Ipv4 in ipv4) will require a public entry point into Ipv4 so that packets can be looped back through
    • Proposal: Defer class Ipv4's API extension until we have working example

Bugs and cleanup

  • IpForward attribute (ipv4.cc) doesn't do anything (bug 63)
  • in general, Ipv4L3Protocol needs a lot of cleanup, and bugs/limitations documented in the tracker
  • Ipv4L3Protocol needs a unit test
  • some XXXs remain around the multi-address (ip aliasing) code
  • case 4) of Ipv4L3Protocol::Send() is not implemented
  • should some of the routing protocol interfaces be aggregated to node? Not clear.

New features needed

  • Multicast
    • add VIF (virtual interface) and better TTL handling logic, for multicast forwarding
    • for multicast hosts, the API for group membership, TTL, loopback (multicast sockets)
  • Ability to dump routing tables for logging/output
  • helpers to provide iproute2-like interface