On Fri, May 22, 2009 at 12:53:02PM -0400, James Carlson wrote:
> Jonathan Adams writes:
> > On Fri, May 22, 2009 at 10:14:01AM -0400, James Carlson wrote:
> > > where session-SAP and discovery-SAP are used to set the SAP values for
> > > sppptun.  The problem described in the original bug report could now
> > > be handled by using:
> > > 
> > >   e1000g0 3c13 3c12
> > 
> > Why are there two SAPs here, but only one on the sppptun command line?
> 
> sppptun plumbs one stream at a time.  PPPoE uses two Ethertypes -- one
> for the 'discovery' traffic, and one for the 'session' traffic.  The
> boot-time /etc/init.d/pppd script invokes sppptun twice for each entry
> in /etc/ppp/pppoe.if -- it plumbs both the 'pppoe' (session) and
> 'pppoed' discovery protocols.
> 
> The packet headers on both types of traffic are exactly the same, and
> the message types used on each are distinct, so they could easily
> share a single Ethertype -- and indeed the kernel module shovels them
> through a single dispatch function -- but since RFC 2516 was developed
> outside the IETF standards process, and was dropped in as an
> "Informational" track document, there are _many_ such oddities with
> it.
> 
> Doing just one stream at a time is for simplicity of design for
> sppptun, which is rarely used directly by users, and which (at least
> in theory) could be used in some cases for plumbing only one type of
> message.  For example, you could just plumb the 'pppoed' discovery
> stream, if you wanted to use /usr/lib/inet/pppoec -i to check for
> servers without actually running any traffic.  (An NWAM-like automatic
> configuration mechanism might do this.)
> 
> At the time I designed it, sppptun was going to serve for more than
> just PPPoE, but those follow-on projects were never funded.  Doing one
> plumb at a time is part of that modular design.

Makes sense.  Thanks.

Cheers,
- jonathan


Reply via email to