User Tools

Site Tools


studentprojects:asynnetstack

Asynchronous network stack

Since the Minix VFS is fully asynchronous and the LwIP server supports the asynchronous protocol, we would like to extend the asynchronous communication to the network drivers. Although they use asynchronous send to communicate with the LwIP/inet servers, the protocol is mostly synchronous. However, we have a replacement for the senda() and recv() pair which, in contrast, has a very little overhead, can be used across multiple cores with even less overhead and allows components to run in parallel.

The task is :

  • to implement a “framework” for network drivers that would encapsulate the new fast asynchronous channels and serve as a skeleton for network drivers. Drivers would link with this library and use their hardware specific functions for complete functionality
  • extend the protocol so that we could use zero-copy between LwIP and drivers
  • implement generic offload mechanism (similar to GSO/GRO in Linux)
  • allow drivers to use hardware offloading feature instead of the generic implementation
  • convert drivers to this new “framework”

The goal is to dramatically improve the network stack performance and deliver gigabit bitrates.

studentprojects/asynnetstack.txt · Last modified: 2014/11/12 02:53 by lionelsambuc