Linux Kernel Network Stack Work

We're looking for someone to implement an extension to the Linux network stack. What we're trying to achieve is the aggregation of UDP packets to and from a user-space program, so that multiple packets can be passed in either direction using a single system call. Furthermore, inbound packets are likely to be coming in to a variety of ports.

How we think this can be done:

- a kernel module which:

* for packets on the way in to the machine

- hooks the network stack using NF_HOOK

- checks incoming UDP packets against a list of ports supplied by our user-space program

- if it finds a match, buffers the packet and prevents it being processed further by the vanilla network stack.

* provides user-space interfaces to:

- receive the currently buffered packets (like recv, but returning multiple packets in one call)

- transmit multiple packets

- add and remove ports from the list that we're interested in.

An alternative way of thinking about this is as a version of SOCK_RAW which

(a) filters inbound packets and blocks those that we're interested in from the rest of the network stack, and

(b) aggregates packets to and from user space.

The reason for doing this? We've an application which handles large numbers of small UDP packets on a collection of different ports, and it's spending most of its time context-switching between user-space and the kernel.

We're open to suggestions of other ways to achieve this end.

We're looking for someone experienced in this field: please don't PM me a portfolio of websites created in PHP..


Taidot: C-ohjelmointi, Linux

Näytä lisää: linux network stack, linux kernel work, network stack direction incoming packets stack, implement network stack linux, linux kernel network stack, work collection, single match, one network, on call work, how are websites created, call work, call dave, udp stack, linux network stack packet, what is a stack, system linux, how websites work, work space, small network, packets, packet, network, linux, linux kernel, linux ;

Tietoa työnantajasta:
( 9 arvostelua ) London, United Kingdom

Projektin tunnus: #477945

6 freelanceria on tarjonnut keskimäärin %project_bid_stats_avg_sub_26% %project_currencyDetails_sign_sub_27% tähän työhön


Hello Dave, Nice to see such project on the freelancer site :). Are you sure that the problem is in context-switching time? I don't know details, but did you read this article: [url removed, login to view] Lisää

$750 USD 15 päivässä
(1 arvostelu)

I have done similar application in VxWORKS for an industrial product, for a US Client

$600 USD 12 päivässä
(0 arvostelua)

Hi, I am a experienced Linux kernel developer from India. For the last three years I am working on Linux TCP and various open source router firmware like Tomato, OpenWRT, Dd-WRT, developing and debugging several wir Lisää

$1000 USD 30 päivässä
(0 arvostelua)

Serious Bidder: I have 9+ exp. in kernel development and ready to work with you. Thanks.

$550 USD 16 päivässä
(0 arvostelua)

Hi, Please check PM... regards, elapital

$700 USD 26 päivässä
(0 arvostelua)

Hi I am a veteren in C stack work. I have done extensive audits on network streams in IP for UDP voip work in asterisk. I understand codec and interframing delays.. There is a better way then agregating the UDP... but Lisää

$750 USD 5 päivässä
(0 arvostelua)

Sounds interesting and doable. I have run into similar issues with context switching killing performance (but in storage drivers), and resolved them in a similar fashion. The idea may need some tweaks for a solid sca Lisää

$750 USD 15 päivässä
(3 arvostelua)