last call for L2/L3 rewrite code review

Qing Li qingli at
Wed Dec 10 07:40:53 UTC 2008

As you know the L2+L3 rewrite project (aka arp-v2) for
both ARP and ND6 has been active for quite some time now. 
In a nutshell, the work removes the L2 tables (ARP and ND6) 
from the L3 routing table. This redesign simplifies the 
routing code and completely eliminates the route cloning 

I discussed about this work at BSDCan 2007 and again at 
the recent devsummit at Google. I have requested code 
review and feedback since last May.

It's becoming increasingly difficult to maintain a separate 
branch (p4 or svn) due to the high volume of new features' 
related commits. The integration and unit testing efforts 
increase in complexity by the week.

We (Julian, Sam, Kip, Robert and I) discussed about a possible 
commit timeframe during the devsummit. And it seems now is 
as good as any because we all have overcommitted ourselves, 
and frankly speaking unless the feature is fully committed, 
getting the thorough code review and broader testing is simply 

I have been running the new arp-v2 kernel as a regular production 
machine on a daily basis, however, I am certain my testing is 
insufficient, which is another good reason to get the feature 
into the official -current tree.

Putting a closure on this work will allow me to focus on 
developing additional networking features and completing my 
other backlog tasks for the project.

Although the code will continue to evolve, on the other hand, 
the code is stable enough that I believe it is ready for general 
(-CURRENT) consumption.  I would like to commit the code within 
a week if not sooner.

Again, I would like to ask for your review and feedback. 
Flaming is fine, which I prefer getting the flames now rather 
than later. 

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

The latest patch that is generated out of Perforce without 
Kip Macy's locking modification is at

The complete P4 project tree is located at


The full project sits in the svn branch that is located at


Once this code is fully committed into -CURRENT, I will be on 
standby to fix any arp/nd6 related bugs. Kip Macy will be on 
standby to fix any locking related issues. Kip will also be 
acting as my backup when I'd be out partying.


-- Qing
mailto: qingli at

More information about the freebsd-current mailing list