After some hacking I've created several patches which add support for 
PPP over Ethernet (RFC 2516) to the Linux kernel.  These patches 
require kernel 2.3.16 and ppp 2.3.9 since they make use of the new ppp  
channels facilities in the kernel. 
 
In writing this code , I came across some problems , which are
probably appropriate to mention right now:

In ppp-generic.c , the code makes an assumption that the header length
that will be used will always match the length of the PPP header
(PPP_HDRLEN).  The problem with this is that the higher level network
layers account for "dev->hard_header_len" space when allocating and
reserving space in the skb's that they create.  When the PPP network
layer passes down an skb to the PPPoE layer, there's no room in the
skb to tack on an ethernet and PPPoE header at the front.

The proper way of solving this is to have the PPP network layer not
assume that the header length is PPP_HDRLEN (that is replace
references to PPP_HDRLEN with "dev->hard_header_len", and provide a
means by which a PPP channel can set the hard_header_len.  The code in
ppp_generic.c that interfaces with the compressor modules appears to
me to be making some assumptions about how the data in the skb is
arranged --- I'd like to fix this, but think that this is something
that somebody with better knowledge of the code can do quicker and
better.

 
The relevant patches and a README can be found at  
http://www.math.uwaterloo.ca/~mostrows/pppoe.tgz 
 
 
Michal Ostrowski 
[EMAIL PROTECTED] 
 

-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to [EMAIL PROTECTED]

Reply via email to