Subject: pppoe device
To: None <port-mac68k@netbsd.org>
From: Edvard Lauman <elauman@interlynx.net>
List: port-mac68k
Date: 06/26/2000 11:50:04
This is a multi-part message in MIME format.

------=_NextPart_000_000F_01BFDF64.AAF6FC20
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

After reviewing the current solutions for pppoe, I thought I'd try and =
write a kernel based version. Here's my idea: create a new device (ex: =
pppoe0) whose driver basically opens an ethernet port (some versions use =
two ports, I'm not sure this is necessary) and then any packets sent to =
this device are encoded for pppoe (this gets rid of the problem of =
having to encode and unencode the packets to and from ppp the way most =
current pppoe packages do). Packets received on the ethernet port are =
unpppoe'ed and passed to the next protocol level. The device would =
autoconfigure itself based on some options in a pppoe.config file. This =
places all of the code in the kernel, and should therefore improve =
speed. Any feedback on the feasibility/practicality of this idea as well =
as any improvements would be welcome.
Along the same lines: I have never programmed for netbsd however, or any =
other *nix platform, so I'm going to need some pointers. Where can I =
find some info about the networking model for NetBSD? I've been looking =
at the kernel code, and I'm a little confused as to how the networking =
stuff works: how does the lower level code (card drivers such as ae or =
sn) interact with the higherlevel stuff? For instance: say we want to =
use my pppoe device for TCP/IP (most people's situation) - How does the =
TCP/IP stack get "bound" to my device? If you have two ethernet cards, =
can you access one of them as a pppoe device and the other as straight =
ethernet? How does this work? Any documentation, or other info would be =
much appreciated. My device makes sense to me from a programmatical =
point of view, but I don't know how exactly I coud "fit" it into the =
netbsd kernel. Thanx, Ed Lauman

------=_NextPart_000_000F_01BFDF64.AAF6FC20
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>After reviewing the current solutions =
for pppoe, I=20
thought I'd try and write a kernel based version. Here's my idea: create =
a new=20
device (ex: pppoe0) whose driver basically opens an ethernet port (some =
versions=20
use two ports, I'm not sure this is necessary) and then any packets sent =
to this=20
device are encoded for pppoe (this gets rid of the problem of having to =
encode=20
and unencode the packets to and from ppp the way most current pppoe =
packages=20
do). Packets received on the ethernet port are unpppoe'ed and passed to =
the next=20
protocol level. The device would autoconfigure itself based on some =
options in a=20
pppoe.config file. This places all of the code in the kernel, and should =

therefore improve speed. Any feedback on the feasibility/practicality of =
this=20
idea as well as any improvements would be welcome.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Along the same lines: I have never =
programmed for=20
netbsd however, or any other *nix platform, so I'm going to need some =
pointers.=20
Where can I find some info about the networking model for NetBSD? I've =
been=20
looking at the kernel code, and I'm a little confused as to how the =
networking=20
stuff works: how does the lower level code (card drivers such as ae or =
sn)=20
interact with the higherlevel stuff? For instance: say we want to use my =
pppoe=20
device for TCP/IP (most people's situation) - How does the TCP/IP stack =
get=20
"bound" to my device? If you have two ethernet cards, can you access one =
of them=20
as a pppoe device and the other as straight ethernet? How does this =
work? Any=20
documentation, or other info would be much appreciated. My device makes =
sense to=20
me from a programmatical point of view, but I don't know how exactly I =
coud=20
"fit" it into the netbsd kernel. Thanx, Ed =
Lauman</FONT></DIV></BODY></HTML>

------=_NextPart_000_000F_01BFDF64.AAF6FC20--