network channels

Network channel is peer-to-peer protocol agnostic communication channel between hardware and userspace. It uses unified cache to store it’s channels. All protocol processing happens in process context.

Feature list:

  • Very high bulk performance with small packets (check userspace network stack for more details).
  • Completely lockless netchannel processing (packet queueing and netchannel lookup in the global storage are protected by RCU).
  • Unified storage for all kinds of protocols: TCP/UDP, IP/IPv6, whatever you decide to implement on top of hardware layer you use.
  • No protocol processing. This is pushed to the peer itself. For example to the userspace network stack.
  • Ability to inject packet into the network without root priveledges.

Userspace network stack is the main user of the new netchannel subsystem.

Todo list include:

  • Ability to improve receiving latencies (queue packets from hardware interupt handler and not software interrupt).
  • Automatically scale netchannel hash table on demand.

Patches and userspace utilities can be found in archive or GIT tre (web interface).

Old development status can be tracked here.