IPv4 cleanup: Difference between revisions
Jump to navigation
Jump to search
(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) | ||
* 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 == | ||
* | |||
* | * 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 | * 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 - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
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
- 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