2002-01-14 09:08:50

by fabrizio.gennari

[permalink] [raw]
Subject: Re: PPP over socket?

(let's hope this time the mail client understands I want to send this in
plain text!)

I thought that, by changing the socket architecture, the result would be
independent to the actual implementation of the socket. For example, a
"PPP over generic socket" could be adapted to "PPP over AF_IRDA socket"
without having to tear one's hair out implementing the pretty complex
/dev/irnet virtual TTY. That is a good solution anyway, but it is very
difficult to port it to different kinds of socket.

What do you exactly mean with "kernel space wrapper"? I guess "user space
wrapper" is something like VTun (which I tried, and it works like a dream.
Only, isn't it a bit inefficient to go through user space?)

Fabrizio Gennari
Philips Research Monza
via G.Casati 23, 20052 Monza (MI), Italy
tel. +39 039 2037816, fax +39 039 2037800




Jean Tourrilhes <[email protected]>
12/01/2002 03.17
Please respond to jt


To: Linux kernel mailing list <[email protected]>
Fabrizio Gennari/MOZ/RESEARCH/PHILIPS@EMEA1
Chris Dukes <pakrat@http://www.uk.linux.org>
cc:
Subject: Re: PPP over socket?
Classification:



Chris Dukes wrote :
> On Fri, Jan 11, 2002 at 10:13:57AM +0100, [email protected]
wrote:
> > I was wondering whether the socket architecture could be modified in
order
> > to support PPP connections over a generic socket (of type SOCK_DGRAM
or
> > SOCK_SEQPACKET), by mapping each PPP packet to a socket packet. This
idea
> > is not completely new: somebody raised is in the past, see for example

> > http://oss.sgi.com/projects/netdev/mail/netdev/msg00180.html or
> > http://oss.sgi.com/projects/netdev/mail/netdev/msg01127.html .
>
> vtun already provides this capability in user space.
> (See http://vtun.sourceforge.net/)
> ppp(8) on *BSD also provides this capability in user space as well.
>
> As memory serves PPPoE on Linux is partially implemented in userspace
> as is, so a partial user space solution for PPPoUDP shouldn't be that
> wretched.

And at the total opposite of the spectrum you have IrNET,
as
it is implemented in kernekl 2.4.X, that pass PPP packets on an IrDA
socket in the kernel without going through the socket API. But that's
the solution only if you don't mind debugging kernel code...
BTW, I don't understand why the socket architecture would
need
to be modified. You just need a user space or a kernel space wrapper.
Regards,

Jean





2002-01-14 17:28:32

by Jean Tourrilhes

[permalink] [raw]
Subject: Re: PPP over socket?

On Mon, Jan 14, 2002 at 10:07:22AM +0100, [email protected] wrote:
> (let's hope this time the mail client understands I want to send this in
> plain text!)
>
> I thought that, by changing the socket architecture, the result would be
> independent to the actual implementation of the socket. For example, a
> "PPP over generic socket" could be adapted to "PPP over AF_IRDA socket"
> without having to tear one's hair out implementing the pretty complex
> /dev/irnet virtual TTY. That is a good solution anyway, but it is very
> difficult to port it to different kinds of socket.

I agree in theory, but in practice the problem is the
connection setup. On IrDA, you need "someone" to perform the IAS query
on the right device with the right service name (if you are BlueTooth
oriented, think Inquiry + SDP query). If you look IrNET, the actual
data path is only 10% (or less) of the code, most of the code deal
with discovery and connection setup, and this is purely specific to
the PPP over IrDA solution.
By the way, the virtual TTY is not that complex, it's more
complex in the case of IrNET because I actually use the TTY interface
for the control channel. If you remove the control channel, it's
pretty straightforward.

> What do you exactly mean with "kernel space wrapper"?

Like IrNET. There may be way to hook on top of the socket API
from kernel space without modifications (by implementing the bottom
half of the socket layer).

> I guess "user space
> wrapper" is something like VTun (which I tried, and it works like a dream.
> Only, isn't it a bit inefficient to go through user space?)

Did you measure those inefficiencies in practice ?

Jean