Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Martin Husemann <martin@netbsd.org>
List: source-changes
Date: 04/29/2001 12:50:37
Module Name:	syssrc
Committed By:	martin
Date:		Sun Apr 29 09:50:37 UTC 2001

Modified Files:
	syssrc/sys/conf: files
	syssrc/sys/net: Makefile dlt.h if_ethersubr.c
Added Files:
	syssrc/sys/net: if_pppoe.c if_pppoe.h

Log Message:
Add an in-kernel PPPoE (ppp over ethernet, RFC 2516) implementation,
based on the existing net/if_spppsubr.c stuff.

While there are completely userland (bpf based) implementations available,
those have a vastly larger per packet overhead thus causing major CPU
overhead and higher latency. On an i386 base router, running a 486DX at 50MHz
my line (768kBit/s downstream) was limited to something (varying) between 10
and 20 kByte/s effective download rate. With this implementation I get full
bandwidth (~85kByte/s).

This is client side only. Arguably the right way to add full PPPoE support
(including server side) would be a variation of the ppp line discipline and
appropriate modifications to pppd. I promise every help I can give to anyone
doing that - but I needed this realy fast. Besids, on low memory NAT boxes
with typically a single PPPoE connection, this implementation is more
lightweight than a pppd based one, which nicely fits my needs.


To generate a diff of this commit:
cvs rdiff -r1.434 -r1.435 syssrc/sys/conf/files
cvs rdiff -r1.9 -r1.10 syssrc/sys/net/Makefile
cvs rdiff -r1.1 -r1.2 syssrc/sys/net/dlt.h
cvs rdiff -r1.80 -r1.81 syssrc/sys/net/if_ethersubr.c
cvs rdiff -r0 -r1.1 syssrc/sys/net/if_pppoe.c syssrc/sys/net/if_pppoe.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.