Thursday, June 16, 2011

GSoC: Multiqueue BPF support and other BPF features

I became a Ph.D course student from this April, so I decided to apply Google Summer of Code 2011, and it was accepted.

It's FreeBSD project, working on network stack improvement.

Short description:
The project goal is to support multiqueue network interface on BPF, and provide interfaces for multithreaded packet processing using BPF. BPF is raw interface of network devices, which allows to receive / send Data Link Layer frame directly. Modern high performance NICs have multiple receive/send queues and RSS feature, this allows to process packet concurrently on multiple processors. Main purpose of the project is to support these hardware and get benefit of parallelism.

Proposal:
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/syuu1228/1

Repository:
http://p4db.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/soc2011/mq_bpf&HIDEDEL=NO

OpenBSD/OCTEON status

I just merged Ethernet driver, but there're still missing drivers remain:

CPU: Only Single core worked, tested on CN5020
RAM: Can't access 256MB-512MB region
UART: Worked
CF: Original driver required, slow & eat CPU power, maybe dependent to a board
Ethernet: Worked
USB: Not yet
PCI: Not yet
SATA(via PCI): Not yet
Crypt: Not yet
Timer: Not yet

Right now we're only testing on Portwell CAM-0100, but we may try more hardware later. Possibly IIJ SEIL/X1.