Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Mar 2008 18:38:16 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Documentation on writing a custom socket
Message-ID:  <20080310183324.S70549@fledge.watson.org>
In-Reply-To: <200803091027.39843.hselasky@c2i.net>
References:  <200803081133.02575.hselasky@c2i.net> <20080308171435.J88526@fledge.watson.org> <200803091027.39843.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080310183324.S70549>