On Wed, 2003-06-25 at 13:40, Stephen Hemminger wrote:
> For PPPoE, the session management needs to be in kernel space, with the policy
> in user space. What if the kernel, initialized the session when it saw
> the discovery and notified the pppd, session would not be established
> until ppd accepted the connection. This would be more like a socket
> protocol without auto-accept like TCP. Any data for the session would
> then stay queued until it was accepted or rejected.
Regardless of the solution take for the session-initiation race, any
solution would fall apart if SMP softIRQ's can reorder packets (that is
it would result in dropped packets). Only once there is a solution for
this reordering problem does it make sense to consider the options for
handling this race.
PPPoE also doesn't exactly cleanly fit nicely into the standard
bind()/listen()/accept()/connect() mould. I've been convinced that
negotiation/discovery belongs in pppd and so would like to avoid adding
connection detection logic into the kernel.
Finally, please keep in mind that with PPPoE when we do hit this problem
the effect is that PPP session establishment takes a bit longer since we
have to wait for an LCP timeout and retransmit. I am much more curious
about how other protocols may be affected by packet reordering.
Michal Ostrowski <mostrows@xxxxxxxxxxxxxx>