This main goals of this project are:
- separating L2 tables (ARP, NDP) from the L3 routing tables
- removing as much locking dependencies among these layers as possible to allow for some parallelism in the search operations
- simplify the logic in the routing code,
The most notable end result is the obsolescent of the route
cloning (RTF_CLONING) concept, which translated into code reduction
in both IPv4 ARP and IPv6 NDP related modules, and size reduction in
struct rtentry{}. The change in design obsoletes the semantics of
RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland
applications such as "arp" and "ndp" have been modified to reflect
those changes. The output from "netstat -r" shows only the routing
entries.
Quite a few developers have contributed to this project in the
past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and
Andre Oppermann. And most recently:
- Kip Macy revised the locking code completely, thus completing the last piece of the puzzle, Kip has also been conducting active functional testing
- Sam Leffler has helped me improving/refactoring the code, and provided valuable reviews
- Julian Elischer setup the perforce tree for me and has helped me maintaining that branch before the svn conversion