Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Sun, 07 Sep 2008

New netchannels release.

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.

This release brings us reworked (and very simple) unified storage for all kinds of protocols (netchannel can be created for any kind of the protocol), completely lockless data processing (data queueing into the netchannel and its lookup in the global storage are protected by RCU), simplifed interface.

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.

/devel/networking :: Link / Comments ()