Documentation on writing a custom socket
rwatson at FreeBSD.org
Mon Mar 10 18:38:20 UTC 2008
On Sun, 9 Mar 2008, Hans Petter Selasky wrote:
> On Saturday 08 March 2008, Robert Watson wrote:
>> On Sat, 8 Mar 2008, Hans Petter Selasky wrote:
>> For example, do you anticipate using or even needing the routing
>> facilities, and how might you map ISDN telephony parts into the normal
>> network stack infrastructure of addresses, routing, interfaces, etc?
> ISDN is very simple. In the ISDN world there is a term called TEI which is
> the Terminal Entity Identifier. This kind of like an IP address.
> Besides from the signalling there are 2 B-channels which can transport data
> or audio. One of my goals is to achive zero copy when moving data to/from an
> ISDN line and also in combination to Voice over IP. Currently data is moved
> through userland (Asterisk typically) which is usable in the short term, but
> in the long run I want this extra copying removed. The idea is that I can
> route [IP] packets (mbufs) through various filters in the kernel without the
> need for copy.
While I'm not opposed to the idea in principle, I would recommend thinking
very carefully before committing to the protocol stack approach as it comes
with a lot of maintenance baggage and is a pretty heavy-weight activity. The
reason to do that instead of just doing a custom device stack that plugs into
the network stack only where it intersects with, say, encapsulated IP, would
be if you really need to expose a full socket abstraction to userspace.
Robert N M Watson
University of Cambridge
More information about the freebsd-hackers