On Thu, Jun 01, 2006 at 12:06:07AM +0200, Kenneth ?stby wrote:
> I've always had a thing for networks, and I saw you needed some work on the
> pfinet part, so if it's still needed I could play around with it. I need
> some
> startup time, but I got the entire summer :)

That's cool!  If you have questions, just ask: either here or on the
#hurd IRC channel on irc.freenode.net.


To do this networking rework properly, we should probably first take the
time to design and implement the ``legendary'' libchannel.  I attached
`libchannel.mbox' to this email: the few bits of libchannel related
emails which I could gather from the mailing list archives I have access
to.

Everyone, feel free to parse through those emails and post your thoughts.


Relevant Savannah tasks:
  - http://savannah.gnu.org/task/?func=detailitem&item_id=1619 -- libchannel
  - http://savannah.gnu.org/task/?func=detailitem&item_id=5469 -- pfinet
  - http://savannah.gnu.org/task/?func=detailitem&item_id=5470 -- pfinet6


Regards,
 Thomas
>From [EMAIL PROTECTED] Tue Aug  1 21:58:28 2000
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 2 (Debian))
        id 13JiBI-0004RS-00; Tue, 01 Aug 2000 14:58:28 -0500
Received: (qmail 25955 invoked by uid 38); 1 Aug 2000 19:58:21 -0000
Resent-Date: 1 Aug 2000 19:58:21 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 25887 invoked from network); 1 Aug 2000 19:58:18 -0000
Received: from hefeweizen.cv.linnaean.org (HELO hefeweizen.linnaean.org) 
(209.58.179.123)
  by murphy.debian.org with SMTP; 1 Aug 2000 19:58:18 -0000
Received: from neuralgia.linnaean.org (neuralgia.linnaean.org [198.49.250.5])
        by hefeweizen.linnaean.org (8.9.3/8.9.3/AI2.13/linnaean.master:2.6) 
with ESMTP id PAA07075;
        Tue, 1 Aug 2000 15:58:14 -0400 (EDT)
Received: (from [EMAIL PROTECTED])
        by neuralgia.linnaean.org (8.10.2/8.9.3/AI2.12/linnaean.client:2.1) id 
e71JwD519912;
        Tue, 1 Aug 2000 15:58:13 -0400 (EDT)
Date: Tue, 1 Aug 2000 15:58:13 -0400 (EDT)
Message-Id: <[EMAIL PROTECTED]>
From: Roland McGrath <[EMAIL PROTECTED]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: Marcus Brinkmann <[EMAIL PROTECTED]>
Cc: Eric Gibson <[EMAIL PROTECTED]>, debian-hurd@lists.debian.org
Subject: Re: PPP for Hurd requirements
In-Reply-To: Marcus Brinkmann's message of  Tue, 1 August 2000 21:41:10 +0200 
<[EMAIL PROTECTED]>
Emacs: well, why *shouldn't* you pay property taxes on your editor?
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/4957
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 1670
Lines: 27

The basic shape of the better plan is well understood.  There needs to be
some kind of interface to attach to pfinet and provide it with new
interfaces via ports.  Then daemons a la pppd can be written in similar
fashion as using the tun device on BSD.

I have some complex ideas on how to do this in a clean and flexible way for
the long term, but I have not had the time to have discussion of the
details.  (My basic notion is a "channel" abstraction parallel to the
"store" abstraction and with similar support in libraries and protocols a
la file_get_storage_info and libstore.  This is a general way towards
efficiently dealing with things like keyboard devices and printers, etc.)

But it would be pretty straightforward without a whole lot of thought to
add a simple RPC interface to pfinet for adding tun style interfaces.  I
guess the quickest WRONG hack would be for pfinet's command-line handling
to grok pseudo-devices specified by a file name it would look up.  Then you
could add one of those with fsysopts as well as at translator startup.
>From the hurd server hacking I've seen you doing lately, I think you know
enough to whip that hack out, Marcus.  You know, actually an even easier
and still egregious and WRONG hack might be to have pfinet know how to
create some new weirdo flavor of socket that then would act as an packet
source/sink.  Then a pppd could just open one of these sockets, set its
interface addresses via bind/connect/setsockopt or something nutty like
that, and start shoving packets.  Muwahaha.  We will eventually rip out any
hack like this, I guarantee you, but until we have time to work out a
pretty solution, what the hell.


>From [EMAIL PROTECTED] Sun Aug  6 12:17:53 2000
Received: from localhost
        ([127.0.0.1] helo=mailhost.rz.ruhr-uni-bochum.de ident=root)
        by localhost with esmtp (Exim 3.12 #1 (Debian))
        for [EMAIL PROTECTED]
        id 13LNVB-00005P-00; Sun, 06 Aug 2000 12:17:53 +0200
Delivered-To: [EMAIL PROTECTED]
Received: (qmail 27708 invoked by alias); 6 Aug 2000 09:01:24 -0000
Received: (qmail 27695 invoked from network); 6 Aug 2000 09:01:24 -0000
Received: from mescaline.gnu.org (158.121.106.21)
  by mi-1.rz.ruhr-uni-bochum.de with SMTP; 6 Aug 2000 09:01:24 -0000
Received: (from [EMAIL PROTECTED])
        by mescaline.gnu.org (8.9.1a/8.9.1) id EAA06521;
        Sun, 6 Aug 2000 04:51:37 -0400
Resent-Date: Sun, 6 Aug 2000 04:51:37 -0400
Received: from PC486.Niemitalo.local ([EMAIL PROTECTED] [212.38.245.238])
        by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id EAA06481
        for <bug-hurd@gnu.org>; Sun, 6 Aug 2000 04:50:49 -0400
Received: from kalle by PC486.Niemitalo.local with local (Exim 3.12 #1 (Debian))
        id 13LJPi-0002rL-00; Sun, 06 Aug 2000 08:55:58 +0300
To: bug-hurd@gnu.org
Subject: Re: PPP for Hurd requirements
References: <[EMAIL PROTECTED]>
X-Accept-Language: fi;q=1.0, en;q=0.9, sv;q=0.5, de;q=0.1
X-URL: http://stekt.oulu.fi/~tosi/
X-Anagram: look vanilla, aim elite
In-Reply-To: Roland McGrath's message of "Tue, 1 Aug 2000 15:58:13 -0400 (EDT)"
Message-ID: <[EMAIL PROTECTED]>
From: Kalle Olavi Niemitalo <[EMAIL PROTECTED]>
Date: 06 Aug 2000 08:55:52 +0300
Resent-Message-ID: <"Tfdu73.0.bb1.nRIZv"@mescaline.gnu.org>
Resent-From: bug-hurd@gnu.org
X-Mailing-List: <bug-hurd@gnu.org> archive/latest/2098
X-Loop: bug-hurd@gnu.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
X-UIDL: 8263ee8cc28bcb3cf86aa4fd973ce304
Resent-Bcc:
Status: O
Content-Length: 1849
Lines: 51

Switching to the right list...

Roland McGrath <[EMAIL PROTECTED]> writes:

> My basic notion is a "channel" abstraction parallel to the
> "store" abstraction and with similar support in libraries and
> protocols a la file_get_storage_info and libstore.

Could one set up a tree like this:

pfinet
 +-- load balancing channel
 |    +-- network device channel
 |         +-- Mach eth0
 |    +-- network device channel
 |         +-- Mach eth1
 +-- PPP channel
      +-- serial port channel
           +-- Mach com0

with commands like:

settrans -c /dev/eth0 /hurd/channelio --channel-type=device eth0
settrans -c /dev/eth1 /hurd/channelio --channel-type=device eth1
settrans -c /dev/eth0+1 /hurd/channelio --balance /dev/eth0 /dev/eth1
settrans -c /dev/com0 /hurd/channelio --channel-type=device com0
settrans -c /dev/ppp0 /hurd/ppp /dev/com0
settrans -c /servers/socket/2 /hurd/pfinet \
        /dev/com0ppp --address=10.0.0.1 \
        /dev/eth0+1 --address=172.16.0.1

Then, when pfinet starts up, it would read all the channel
information and feed it to libchannel, where PPP would be
implemented.  If a channel refused file_get_channel_info, then
libchannel would access it as a file.

IIRC, there is a string syntax for nested stores... where is it
documented?  A similar thing might be good for channels, so that
/dev/eth0+1 and /dev/ppp0 could be left out.

How would tcpdump work?  It must attach to a network device after
it has already been opened by pfinet or similar.  Maybe pfinet
itself should have hooks for tcpdump?

> This is a general way towards efficiently dealing with things
> like keyboard devices and printers, etc.

I don't believe keyboard devices need be handled very
efficiently.  Even if the user keeps a function key held down and
it repeats at 30 Hz, outputting 5 characters each time, that's
still only 150 characters per second.



>From [EMAIL PROTECTED] Sun Aug  6 22:47:47 2000
Received: from localhost
        ([127.0.0.1] helo=mailhost.rz.ruhr-uni-bochum.de ident=root)
        by localhost with esmtp (Exim 3.12 #1 (Debian))
        for [EMAIL PROTECTED]
        id 13LXKl-0000Fz-00; Sun, 06 Aug 2000 22:47:47 +0200
Delivered-To: [EMAIL PROTECTED]
Received: (qmail 8626 invoked by alias); 6 Aug 2000 20:43:59 -0000
Received: (qmail 8613 invoked from network); 6 Aug 2000 20:43:58 -0000
Received: from mescaline.gnu.org (158.121.106.21)
  by mi-1.rz.ruhr-uni-bochum.de with SMTP; 6 Aug 2000 20:43:58 -0000
Received: (from [EMAIL PROTECTED])
        by mescaline.gnu.org (8.9.1a/8.9.1) id QAA26211;
        Sun, 6 Aug 2000 16:43:25 -0400
Resent-Date: Sun, 6 Aug 2000 16:43:25 -0400
Received: from hefeweizen.linnaean.org (hefeweizen.cv.linnaean.org 
[209.58.179.123])
        by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id QAA26182
        for <bug-hurd@gnu.org>; Sun, 6 Aug 2000 16:42:46 -0400
Received: from neuralgia.linnaean.org (neuralgia.linnaean.org [198.49.250.5])
        by hefeweizen.linnaean.org (8.9.3/8.9.3/AI2.13/linnaean.master:2.6) 
with ESMTP id QAA04895;
        Sun, 6 Aug 2000 16:42:44 -0400 (EDT)
Received: (from [EMAIL PROTECTED])
        by neuralgia.linnaean.org (8.10.2/8.9.3/AI2.12/linnaean.client:2.1) id 
e76Kgit12568;
        Sun, 6 Aug 2000 16:42:44 -0400 (EDT)
Date: Sun, 6 Aug 2000 16:42:44 -0400 (EDT)
Message-Id: <[EMAIL PROTECTED]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
From: Roland McGrath <[EMAIL PROTECTED]>
To: Kalle Olavi Niemitalo <[EMAIL PROTECTED]>
Cc: bug-hurd@gnu.org
Subject: Re: PPP for Hurd requirements
In-Reply-To: Kalle Olavi Niemitalo's message of  , 6 August 2000 08:55:52 +0300 
<[EMAIL PROTECTED]>
X-Windows: it could happen to you.
Resent-Message-ID: <"SGjCS1.0.GP6.AtSZv"@mescaline.gnu.org>
Resent-From: bug-hurd@gnu.org
X-Mailing-List: <bug-hurd@gnu.org> archive/latest/2099
X-Loop: bug-hurd@gnu.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
X-UIDL: b355ed05fd3021cb6a85e4515f597198
Resent-Bcc:
Status: O
Content-Length: 3161
Lines: 69

> Could one set up a tree like this:
> 
> pfinet
>  +-- load balancing channel
>  |    +-- network device channel
>  |         +-- Mach eth0
>  |    +-- network device channel
>  |         +-- Mach eth1
>  +-- PPP channel
>       +-- serial port channel
>            +-- Mach com0
> 
> with commands like:
> 
> settrans -c /dev/eth0 /hurd/channelio --channel-type=device eth0
> settrans -c /dev/eth1 /hurd/channelio --channel-type=device eth1
> settrans -c /dev/eth0+1 /hurd/channelio --balance /dev/eth0 /dev/eth1
> settrans -c /dev/com0 /hurd/channelio --channel-type=device com0
> settrans -c /dev/ppp0 /hurd/ppp /dev/com0
> settrans -c /servers/socket/2 /hurd/pfinet \
>       /dev/com0ppp --address=10.0.0.1 \
>       /dev/eth0+1 --address=172.16.0.1
> 
> Then, when pfinet starts up, it would read all the channel
> information and feed it to libchannel, where PPP would be
> implemented.  If a channel refused file_get_channel_info, then
> libchannel would access it as a file.

You have the basic idea.  Any answer more detailed would be made up on the
spot, since I haven't thought through the implementation fully.  (As your
example is written, it suggests that /dev/eth0 and /dev/ppp0 are devices
that deliver IP packets, while I would expect them to deliver Ethernet and
PPP frames respectively.  pfinet would then need to understand PPP framing.
So that actual construction will probably be a little different when we
work out the details.)

> IIRC, there is a string syntax for nested stores... where is it
> documented?  A similar thing might be good for channels, so that
> /dev/eth0+1 and /dev/ppp0 could be left out.

There is a sort of syntax for that in the arguments libstore parses, but
it's kind of quirky.  Aside from booting off a funny composite store, there
isn't much call to use it.  Just set a translator on a different file for
each layer of the store, and opening the "most-layered" store will get
file_get_storage_info percolating up from the bottom so that the libstore
in the actual user (i.e. a filesystem or the top-most storeio) does all the
actual work in one place to execute i/o.

> How would tcpdump work?  It must attach to a network device after
> it has already been opened by pfinet or similar.  Maybe pfinet
> itself should have hooks for tcpdump?

tcpdump in fact need not have anything to do with pfinet per se.  All it
needs from pfinet is to know what interfaces are being used (if the user
didn't ask for a specific one).  tcpdump would read raw ethernet packets
from /dev/eth0, raw PPP packets from /dev/ppp0, or whatever.  Note that it
makes perfect sense to use tcpdump on a packet source that is not being
used by pfinet at the time.  All it needs is an interface to the channelio
devices to receive copies of packets going elsewhere.  This is the same as
a generic i/o spy interface that would also be useful on tty devices.

> I don't believe keyboard devices need be handled very
> efficiently.  Even if the user keeps a function key held down and
> it repeats at 30 Hz, outputting 5 characters each time, that's
> still only 150 characters per second.

The main concern is handling them cleanly and easily.  



>From [EMAIL PROTECTED] Mon Aug  7 01:12:19 2000
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 2 (Debian))
        id 13LZad-0000Jq-00; Sun, 06 Aug 2000 18:12:19 -0500
Received: (qmail 32301 invoked by uid 38); 6 Aug 2000 23:12:03 -0000
Resent-Date: 6 Aug 2000 23:12:03 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 32276 invoked from network); 6 Aug 2000 23:12:01 -0000
Received: from cr922373-a.slnt1.on.wave.home.com (HELO corum.multiverse.qc.ca) 
([EMAIL PROTECTED])
  by murphy.debian.org with SMTP; 6 Aug 2000 23:12:01 -0000
Received: from igor by corum.multiverse.qc.ca with local (Exim 3.12 #1 (Debian))
        id 13LZY0-00022s-00; Sun, 06 Aug 2000 19:09:36 -0400
Date: Sun, 6 Aug 2000 19:09:36 -0400
From: Igor Khavkine <[EMAIL PROTECTED]>
To: Roland McGrath <[EMAIL PROTECTED]>
Cc: debian-hurd@lists.debian.org
Subject: Re: PPP for Hurd requirements
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on Sun, Aug 06, 2000 
at 04:42:44PM -0400
Sender: <[EMAIL PROTECTED]>
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/5046
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 2022
Lines: 46

On Sun, Aug 06, 2000 at 04:42:44PM -0400, Roland McGrath wrote:
> > Could one set up a tree like this:
> > 
> > pfinet
> >  +-- load balancing channel
> >  |    +-- network device channel
> >  |         +-- Mach eth0
> >  |    +-- network device channel
> >  |         +-- Mach eth1
> >  +-- PPP channel
> >       +-- serial port channel
> >            +-- Mach com0
> > 
> > with commands like:
> > 
> > settrans -c /dev/eth0 /hurd/channelio --channel-type=device eth0
> > settrans -c /dev/eth1 /hurd/channelio --channel-type=device eth1
> > settrans -c /dev/eth0+1 /hurd/channelio --balance /dev/eth0 /dev/eth1
> > settrans -c /dev/com0 /hurd/channelio --channel-type=device com0
> > settrans -c /dev/ppp0 /hurd/ppp /dev/com0
> > settrans -c /servers/socket/2 /hurd/pfinet \
> >     /dev/com0ppp --address=10.0.0.1 \
> >     /dev/eth0+1 --address=172.16.0.1
> > 
> > Then, when pfinet starts up, it would read all the channel
> > information and feed it to libchannel, where PPP would be
> > implemented.  If a channel refused file_get_channel_info, then
> > libchannel would access it as a file.
> 
> You have the basic idea.  Any answer more detailed would be made up on the
> spot, since I haven't thought through the implementation fully.  (As your
> example is written, it suggests that /dev/eth0 and /dev/ppp0 are devices
> that deliver IP packets, while I would expect them to deliver Ethernet and
> PPP frames respectively.  pfinet would then need to understand PPP framing.
> So that actual construction will probably be a little different when we
> work out the details.)

Why not unify all the different kind of link level devices with a "tun" 
interface as suggested before. That way pfinet need know nothing about what 
kind of device it's receiving frames from. And there should be a translator
that sits on top of the eth and ppp intefaces translating the incoming frames 
into tun frames. Then once pfinet is fixed and stabilised there is no need to
update the code in order to support other protocols.

Igor


>From [EMAIL PROTECTED] Mon Aug  7 02:10:37 2000
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 2 (Debian))
        id 13LaV3-000673-00; Sun, 06 Aug 2000 19:10:37 -0500
Received: (qmail 14919 invoked by uid 38); 7 Aug 2000 00:10:37 -0000
Resent-Date: 7 Aug 2000 00:10:37 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 14895 invoked from network); 7 Aug 2000 00:10:36 -0000
Received: from hefeweizen.cv.linnaean.org (HELO hefeweizen.linnaean.org) 
(209.58.179.123)
  by murphy.debian.org with SMTP; 7 Aug 2000 00:10:36 -0000
Received: from neuralgia.linnaean.org (neuralgia.linnaean.org [198.49.250.5])
        by hefeweizen.linnaean.org (8.9.3/8.9.3/AI2.13/linnaean.master:2.6) 
with ESMTP id UAA06025;
        Sun, 6 Aug 2000 20:10:29 -0400 (EDT)
Received: (from [EMAIL PROTECTED])
        by neuralgia.linnaean.org (8.10.2/8.9.3/AI2.12/linnaean.client:2.1) id 
e770ASI13029;
        Sun, 6 Aug 2000 20:10:28 -0400 (EDT)
Date: Sun, 6 Aug 2000 20:10:28 -0400 (EDT)
Message-Id: <[EMAIL PROTECTED]>
From: Roland McGrath <[EMAIL PROTECTED]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: Igor Khavkine <[EMAIL PROTECTED]>
Cc: debian-hurd@lists.debian.org
Subject: Re: PPP for Hurd requirements
In-Reply-To: Igor Khavkine's message of  Sun, 6 August 2000 19:09:36 -0400 
<[EMAIL PROTECTED]>
X-Zippy-Says: A dwarf is passing out somewhere in Detroit!
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/5047
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 759
Lines: 13

> Why not unify all the different kind of link level devices with a "tun"
> interface as suggested before. That way pfinet need know nothing about
> what kind of device it's receiving frames from. And there should be a
> translator that sits on top of the eth and ppp intefaces translating the
> incoming frames into tun frames. Then once pfinet is fixed and stabilised
> there is no need to update the code in order to support other protocols.

You are missing the fundamental point of the design.  The very purpose is
to have the clean and flexible layering you describe without necessarily
requiring the overhead of passing data through multiple translator
processes.  If you are not clear on the analog to libstore, please take a
look at how that works.


>From [EMAIL PROTECTED] Mon Aug  7 06:03:13 2000
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 2 (Debian))
        id 13Le89-0000Ki-00; Sun, 06 Aug 2000 23:03:13 -0500
Received: (qmail 2682 invoked by uid 38); 7 Aug 2000 04:03:12 -0000
Resent-Date: 7 Aug 2000 04:03:12 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 2648 invoked from network); 7 Aug 2000 04:03:12 -0000
Received: from cr922373-a.slnt1.on.wave.home.com (HELO corum.multiverse.qc.ca) 
([EMAIL PROTECTED])
  by murphy.debian.org with SMTP; 7 Aug 2000 04:03:12 -0000
Received: from igor by corum.multiverse.qc.ca with local (Exim 3.12 #1 (Debian))
        id 13Le6U-0002BN-00; Mon, 07 Aug 2000 00:01:30 -0400
Date: Mon, 7 Aug 2000 00:01:29 -0400
From: Igor Khavkine <[EMAIL PROTECTED]>
To: Roland McGrath <[EMAIL PROTECTED]>
Cc: debian-hurd@lists.debian.org
Subject: Re: PPP for Hurd requirements
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
In-Reply-To: <[EMAIL PROTECTED]>; from [EMAIL PROTECTED] on Sun, Aug 06, 2000 
at 08:10:28PM -0400
Sender: <[EMAIL PROTECTED]>
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/5048
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 1876
Lines: 35

On Sun, Aug 06, 2000 at 08:10:28PM -0400, Roland McGrath wrote:
> > Why not unify all the different kind of link level devices with a "tun"
> > interface as suggested before. That way pfinet need know nothing about
> > what kind of device it's receiving frames from. And there should be a
> > translator that sits on top of the eth and ppp intefaces translating the
> > incoming frames into tun frames. Then once pfinet is fixed and stabilised
> > there is no need to update the code in order to support other protocols.
> 
> You are missing the fundamental point of the design.  The very purpose is
> to have the clean and flexible layering you describe without necessarily
> requiring the overhead of passing data through multiple translator
> processes.  If you are not clear on the analog to libstore, please take a
> look at how that works.

I understand the analogy to libstore, i.e. creating an common API for eth,
ppp and others that pfinet could use transparently. I also think that's a
good idea. However in a previous message you also suggested that pfinet
would have to be aware of the format of ppp and ethernet frames and be able
to distinguish between then. This however seems the wrong way to go about
things.

My main idea was that pfinet should treat all network interfaces the same. The 
question of whether this normalization of ppp and ethernet frames should be
done by a translator or a common API is a detail of implementation. If a
translator involves too much overhead then it might not be a good idea. You
must forgive that slip on my part, afterall, like Marcus says "everything
is a translator." :-)

I must admit I don't know much about link level communication protocols so
I'm not really sure what ethernet and ppp frames look like and how they
could both be passed in the same form to pfinet. But that again is an
implementation detail.

Igor


>From [EMAIL PROTECTED] Mon Aug  7 06:13:06 2000
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 2 (Debian))
        id 13LeHi-0000TB-00; Sun, 06 Aug 2000 23:13:06 -0500
Received: (qmail 5796 invoked by uid 38); 7 Aug 2000 04:13:06 -0000
Resent-Date: 7 Aug 2000 04:13:06 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 5771 invoked from network); 7 Aug 2000 04:13:05 -0000
Received: from hefeweizen.cv.linnaean.org (HELO hefeweizen.linnaean.org) 
(209.58.179.123)
  by murphy.debian.org with SMTP; 7 Aug 2000 04:13:05 -0000
Received: from neuralgia.linnaean.org (neuralgia.linnaean.org [198.49.250.5])
        by hefeweizen.linnaean.org (8.9.3/8.9.3/AI2.13/linnaean.master:2.6) 
with ESMTP id AAA07203;
        Mon, 7 Aug 2000 00:13:03 -0400 (EDT)
Received: (from [EMAIL PROTECTED])
        by neuralgia.linnaean.org (8.10.2/8.9.3/AI2.12/linnaean.client:2.1) id 
e774D3813752;
        Mon, 7 Aug 2000 00:13:03 -0400 (EDT)
Date: Mon, 7 Aug 2000 00:13:03 -0400 (EDT)
Message-Id: <[EMAIL PROTECTED]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
From: Roland McGrath <[EMAIL PROTECTED]>
To: Igor Khavkine <[EMAIL PROTECTED]>
Cc: debian-hurd@lists.debian.org
Subject: Re: PPP for Hurd requirements
In-Reply-To: Igor Khavkine's message of  Mon, 7 August 2000 00:01:29 -0400 
<[EMAIL PROTECTED]>
Emacs: the Swiss Army of Editors.
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/5049
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 488
Lines: 10

> I understand the analogy to libstore, i.e. creating an common API for eth,
> ppp and others that pfinet could use transparently. I also think that's a
> good idea. However in a previous message you also suggested that pfinet
> would have to be aware of the format of ppp and ethernet frames and be able
> to distinguish between then. This however seems the wrong way to go about
> things.

You just misunderstood my earlier message.  I don't think there is anything
to disagree about.


>From [EMAIL PROTECTED] Wed Aug  9 13:59:46 2000
Received: from localhost
        ([127.0.0.1] helo=mailhost.rz.ruhr-uni-bochum.de ident=root)
        by localhost with esmtp (Exim 3.12 #1 (Debian))
        for [EMAIL PROTECTED]
        id 13MUWQ-00005A-00; Wed, 09 Aug 2000 13:59:46 +0200
Delivered-To: [EMAIL PROTECTED]
Received: (qmail 17639 invoked by alias); 9 Aug 2000 08:29:49 -0000
Received: (qmail 17615 invoked from network); 9 Aug 2000 08:29:47 -0000
Received: from mescaline.gnu.org (158.121.106.21)
  by mi-1.rz.ruhr-uni-bochum.de with SMTP; 9 Aug 2000 08:29:47 -0000
Received: (from [EMAIL PROTECTED])
        by mescaline.gnu.org (8.9.1a/8.9.1) id EAA02447;
        Wed, 9 Aug 2000 04:29:14 -0400
Resent-Date: Wed, 9 Aug 2000 04:29:14 -0400
Received: from PC486.Niemitalo.local ([EMAIL PROTECTED] [212.38.245.174])
        by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id EAA02412
        for <bug-hurd@gnu.org>; Wed, 9 Aug 2000 04:28:23 -0400
Received: from kalle by PC486.Niemitalo.local with local (Exim 3.12 #1 (Debian))
        id 13LqG5-0000UB-00; Mon, 07 Aug 2000 20:00:13 +0300
To: bug-hurd@gnu.org
Subject: Re: PPP for Hurd requirements
References: <[EMAIL PROTECTED]>
X-Accept-Language: fi;q=1.0, en;q=0.9, sv;q=0.5, de;q=0.1
X-URL: http://stekt.oulu.fi/~tosi/
X-Anagram: look vanilla, aim elite
From: Kalle Olavi Niemitalo <[EMAIL PROTECTED]>
Date: 07 Aug 2000 20:00:11 +0300
In-Reply-To: Roland McGrath's message of "Sun, 6 Aug 2000 16:42:44 -0400 (EDT)"
Message-ID: <[EMAIL PROTECTED]>
X-Mailer: Gnus v5.7/Emacs 20.6
Resent-Message-ID: <"Hz9xV1.0.zb.qOHav"@mescaline.gnu.org>
Resent-From: bug-hurd@gnu.org
X-Mailing-List: <bug-hurd@gnu.org> archive/latest/2109
X-Loop: bug-hurd@gnu.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
X-UIDL: 54918785a3d6b1cbd0ecdd59f5f8acdc
Resent-Bcc:
Status: O
Content-Length: 1067
Lines: 23

Roland McGrath <[EMAIL PROTECTED]> writes:

> (As your example is written, it suggests that /dev/eth0 and
> /dev/ppp0 are devices that deliver IP packets, while I would
> expect them to deliver Ethernet and PPP frames respectively.

Well actually I thought they would deliver datagrams tagged with
some kind of type words.  I'm not familiar with PPP frames (yet).

> All it needs is an interface to the channelio
> devices to receive copies of packets going elsewhere.

The pfinet process will be talking directly to the Mach device.
Would such snooping be done in Mach or in libchannel?  In the
latter case, file_get_channel_info could take an extra port
parameter which says where to send snoop requests.  Libchannel
would set up such a port and listen to it.  This would allow a
treacherous program to circumvent snooping and send frames
directly to the device, but file_get_channel_info shouldn't give
device send rights to untrusted processes anyway.

If I were to run pfinet and pfipx at the same time, how would
incoming frames be delivered to the right place?



>From [EMAIL PROTECTED] Sun Aug 12 14:38:38 2001
Received: from porta.u64.de ([194.77.88.106])
        by fencepost.gnu.org with smtp (Exim 3.22 #1 (Debian))
        id 15VuVq-0000ls-00
        for <help-hurd@gnu.org>; Sun, 12 Aug 2001 08:38:38 -0400
Received: from (localhost) [212.23.136.22] (mail)
        by porta.u64.de with asmtp (Exim 3.12 #1 (Debian))
        id 15Vv2v-0007H6-00; Sun, 12 Aug 2001 15:12:50 +0200
Received: from marcus by localhost with local (Exim 3.31 #1 (Debian))
        id 15VuVj-0000a1-00; Sun, 12 Aug 2001 14:38:31 +0200
Date: Sun, 12 Aug 2001 14:38:31 +0200
From: Marcus Brinkmann <[EMAIL PROTECTED]>
To: Niels =?iso-8859-1?Q?M=F6ller?= <[EMAIL PROTECTED]>
Cc: Johan Rydberg <[EMAIL PROTECTED]>, help-hurd@gnu.org
Subject: Re: Where can I find /hurd/mouse ?
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <[EMAIL PROTECTED]>
User-Agent: Mutt/1.3.20i
Sender: [EMAIL PROTECTED]
Errors-To: [EMAIL PROTECTED]
X-BeenThere: help-hurd@gnu.org
X-Mailman-Version: 2.0.5
Precedence: bulk
List-Help: <mailto:[EMAIL PROTECTED]>
List-Post: <mailto:help-hurd@gnu.org>
List-Subscribe: <http://mail.gnu.org/mailman/listinfo/help-hurd>,
        <mailto:[EMAIL PROTECTED]>
List-Id: Users list for the GNU Hurd <help-hurd.gnu.org>
List-Unsubscribe: <http://mail.gnu.org/mailman/listinfo/help-hurd>,
        <mailto:[EMAIL PROTECTED]>
List-Archive: <http://mail.gnu.org/pipermail/help-hurd/>
Status: O
Content-Length: 1024
Lines: 24

On Sat, Aug 11, 2001 at 01:29:52PM +0200, Niels M?ller wrote:
> Marcus Brinkmann <[EMAIL PROTECTED]> writes:
> 
> > In the long term we want to have mouse and kbd integrated in
> > streamio/libchannel)
> 
> What is streamio/libchannel? IIRC it doesn't exist yet. Is there any
> design of it? Simply a list of what kinds of operations (rpc:s) it
> should offer would be a good thing to have, I think.

streamio exists.  libchannel should be to character streams what libstore is
to block oriented data media.  The idea was to have loadable modules to
provide the necessary ioctls etc for a device (as character devices usually
live and die not with their basic function of reading and writing data, but
the additional interface that controls the behvaiour and data stream).

Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org [EMAIL PROTECTED]
Marcus Brinkmann              GNU    http://www.gnu.org    [EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.marcus-brinkmann.de


>From [EMAIL PROTECTED] Fri Aug 31 20:08:42 2001
Received: from green.nl.gxn.net ([62.100.30.36])
        by fencepost.gnu.org with esmtp (Exim 3.22 #1 (Debian))
        id 15csig-0006Nr-00
        for <help-hurd@gnu.org>; Fri, 31 Aug 2001 14:08:42 -0400
Received: from prof.vaag(asd-tel-ap01-d07-115.dial.freesurf.nl[62.100.6.115]) 
(1667 bytes) by green.nl.gxn.net
        via sendmail with P:esmtp/R:inet_hosts/T:smtp
        (sender: <[EMAIL PROTECTED]>) 
        id <[EMAIL PROTECTED]>
        for <help-hurd@gnu.org>; Fri, 31 Aug 2001 20:08:39 +0200 (MET DST)
        (Smail-3.2.0.106-3 1999-Mar-31 #11 built DST-Sep-7)
Received: from gerhardm by prof.vaag with local (Exim 3.22 #1 (Debian))
        id 15cctK-0000yR-00
        for <help-hurd@gnu.org>; Fri, 31 Aug 2001 03:14:38 +0200
Date: Fri, 31 Aug 2001 03:14:38 +0200
To: help-hurd@gnu.org
Subject: Re: Where can I find /hurd/mouse ?
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL 
PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[EMAIL PROTECTED]>
User-Agent: Mutt/1.3.18i
From: Gerhard Muntingh <[EMAIL PROTECTED]>
Sender: [EMAIL PROTECTED]
Errors-To: [EMAIL PROTECTED]
X-BeenThere: help-hurd@gnu.org
X-Mailman-Version: 2.0.5
Precedence: bulk
List-Help: <mailto:[EMAIL PROTECTED]>
List-Post: <mailto:help-hurd@gnu.org>
List-Subscribe: <http://mail.gnu.org/mailman/listinfo/help-hurd>,
        <mailto:[EMAIL PROTECTED]>
List-Id: Users list for the GNU Hurd <help-hurd.gnu.org>
List-Unsubscribe: <http://mail.gnu.org/mailman/listinfo/help-hurd>,
        <mailto:[EMAIL PROTECTED]>
List-Archive: <http://mail.gnu.org/pipermail/help-hurd/>
Status: O
Content-Length: 840
Lines: 20

> > > In the long term we want to have mouse and kbd integrated in
> > > streamio/libchannel)
> > 
> > What is streamio/libchannel? IIRC it doesn't exist yet. Is there any
> > design of it? Simply a list of what kinds of operations (rpc:s) it
> > should offer would be a good thing to have, I think.
> 
> streamio exists.  libchannel should be to character streams what libstore is
> to block oriented data media.  The idea was to have loadable modules to
> provide the necessary ioctls etc for a device (as character devices usually
> live and die not with their basic function of reading and writing data, but
> the additional interface that controls the behvaiour and data stream).
> 

The loadable modules approach seems great, we might one day want audio/video
over such a channel.  User interface isn't limited to kbd/mouse.


smunt


>From [EMAIL PROTECTED] Wed Jan 30 18:40:48 2002
Return-path: <[EMAIL PROTECTED]>
Received: from murphy.debian.org [216.234.231.6] 
        by master.debian.org with smtp (Exim 3.12 1 (Debian))
        id 16Vyj2-0006mb-00; Wed, 30 Jan 2002 11:40:48 -0600
Received: (qmail 26355 invoked by uid 38); 30 Jan 2002 17:40:48 -0000
Resent-Date: 30 Jan 2002 17:40:48 -0000
Resent-Cc: recipient list not shown: ;
X-Envelope-Sender: [EMAIL PROTECTED]
Received: (qmail 26322 invoked from network); 30 Jan 2002 17:40:46 -0000
Received: from porta.u64.de (194.77.88.106)
  by murphy.debian.org with SMTP; 30 Jan 2002 17:40:46 -0000
Received: from (localhost) [212.23.136.22] 
        by porta.u64.de with asmtp (Exim 3.12 #1 (Debian))
        id 16Vz5z-00086b-00; Wed, 30 Jan 2002 19:04:32 +0100
Received: from marcus by localhost with local (Exim 3.34 #1 (Debian))
        id 16Vyik-0000NG-00; Wed, 30 Jan 2002 18:40:30 +0100
Date: Wed, 30 Jan 2002 18:40:30 +0100
From: Marcus Brinkmann <[EMAIL PROTECTED]>
To: Derek L Davies <[EMAIL PROTECTED]>
Cc: Neal H Walfield <[EMAIL PROTECTED]>, debian-hurd@lists.debian.org
Subject: Re: Not enough entropy in RNG
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL 
PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[EMAIL PROTECTED]>
User-Agent: Mutt/1.3.27i
Sender: Marcus Brinkmann <[EMAIL PROTECTED]>
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: debian-hurd@lists.debian.org
X-Mailing-List: <debian-hurd@lists.debian.org> archive/latest/10602
X-Loop: debian-hurd@lists.debian.org
Precedence: list
Resent-Sender: [EMAIL PROTECTED]
Delivered-To: [EMAIL PROTECTED]
Status: O
Content-Length: 1617
Lines: 37

On Wed, Jan 30, 2002 at 12:14:29PM -0500, Derek L Davies wrote:
> Has anyone sketched out an API for libchannel?

No, you have first go.  Dust off your drawing board ;)

> put /dev/random in an oskit driver and use libchannel to do
> I/O with it.  And this way the need for user space egd goes away.

Indeed.  Well, you can support it anyway by writing a special channel class
for it (or by just using some generic socket channel or whatever)
 
> The spirts seem to want me to work on libchannel ;-)  So I'll give it
> a try.  I'll search the archives for libchannel discussions, but if
> people have info that would help that isn't in the archvies please
> forward it to me.

Roland posted a bit about it, but it all boils down that it is to character
streams what libstore is to block data.

The one thing we need in libchannel we haven't equivalently in libstore is
some way for extending the API on a per-channel-class basis.  For example,
for a channel to a sound card raw audio device, you need some way to set the
sample bit rate.  For a mouse device you might want to set/clear dtr.  For a
keyboard you might want to set/clear raw mode.  Etc.  Some of this can be
done in the channel class, opaque to the user, but some things can not.  I
think the idea was to have dynamically loadable plugins that add this
functionality.  But you can probably leave this for later.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org [EMAIL PROTECTED]
Marcus Brinkmann              GNU    http://www.gnu.org    [EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.marcus-brinkmann.de


_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to