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.
- 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.
Old development status can be tracked here.