FreeBSD Boosts Routing Architecture, With Blue Coat's Help

FreeBSD, the popular open-source server OS, is about to get an update -- to FreeBSD 8.0 -- with some help from Blue Coat Systems senior architect Qing Li. Li and FreeBSD developer Kip Macy have implemented a new routing architecture which improves network performance by parallelizing the routing stacks.

Alex Wolfe

August 24, 2009

2 Min Read
NetworkComputing logo in a gray background | NetworkComputing

FreeBSD, the popular open-source server OS, is about to get an update to FreeBSD 8.0, with some help from Blue Coat Systems senior architect Qing Li. Li and FreeBSD developer Kip Macy have implemented a new routing architecture that improves network performance by parallelizing routing stacks.

The two gave a paper last week at the Association of Computing Machinery's SIGCOMM  2009 conference in Barcelona, Spain, entitled "Optimizing the BSD Routing System for Parallel Processing." (The pdf download is here.)

According to the paper, the new routing architecture "eliminates the data dependencies [between different levels of the protocol stack, which exists in the current version] and facilitates parallelization of network protocol stacks.

More specifically, the new design gets rid of the data dependencies between the L2  (layer-2 ARP entries) and L3 (layer-3 IP routes) layers, thus reducing lock contention. This leads to side benefits, such as improved cache use for faster overall processing. As well, the new architecture resulted in a 30% reduction in the size of the code in the L2 and L3 software modules.

Here's how Li and Macy describe the performance benefit of splitting the formerly unified L2/L3 architecture up into a parallel model:

"In the legacy unified L2/L3 design, contention on locks was inevitably a major portion of CPU time, reaching as high as 47% with 8 transmitting threads. With the new split L2/L3 design, the L2 and L3 references can be cached in the protocol control block for connected sockets or in a flow table for unconnected sockets and forwarding. Thus we see that very little of the CPU time is now spent in the locking primitives, even when there are 8 transmitting threads."

In a press release, Blue Coat quoted Li as follows:  "The BSD routing kernel has remained relatively static over the last 15 years as architectures have changed dramatically, in particular, the transition to parallel processing," Li said. "By creating a design within the kernel that reduces the data and processing dependencies among the layers, BSD can fully exploit the parallel processing advantages of modern commodity hardware to improve performance and drive down costs."

In his day job, Li works on the design and development of Blue Coat Application Delivery Network technologies. His open source development work is partially sponsored by Blue Coat. Macy is well known as a FreeBSD architect. He has also been embroiled in an unusual legal battle relating to a building he owns with his wife in San Francisco. (Competing views on the story are here and here.)

FreeBSD 8.0 is currently available in its beta 2 version.

 

About the Author

SUBSCRIBE TO OUR NEWSLETTER
Stay informed! Sign up to get expert advice and insight delivered direct to your inbox

You May Also Like


More Insights