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]
