netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Ostrowski <mostrows@watson.ibm.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: "David S. Miller" <davem@redhat.com>,
	Paul MacKerras <paulus@samba.org>,
	netdev@oss.sgi.com, fcusack@samba.org, carlson@workingcode.com
Subject: Re: [PATCH, untested] Support for PPPOE on SMP
Date: 26 Jun 2003 07:37:16 -0400	[thread overview]
Message-ID: <1056627436.27295.42.camel@brick.watson.ibm.com> (raw)
In-Reply-To: <20030626035824.D68B62C147@lists.samba.org>

On Wed, 2003-06-25 at 23:57, Rusty Russell wrote:
> In message <20030625.143334.85380461.davem@redhat.com> you write:
> > 
> > Why don't you just queue the payload packets in a "resolution queue"
> > until the socket is created?  Just make the resolution queue packets
> > timeout using a value that will easily exceed any reasonable PPP
> > negotiation time.
> 
> Sure, that works in this case, where you know when you get the packet
> that it's out of order.  But I wanted to see how ugly it got to do it
> generally: a protocol where you can't tell until later that things
> were in the wrong order can't use this technique.  Paul tells me that
> multilink PPP assumes this (moral: don't do multilink PPPoE).
> 
> Anyway, my patch is fundamentally flawed: you can't do
> cpu_raise_softirq() on another CPU, it's racy (*bad* *bad* interface).
> 
> > All this ordered packet arrival shit is just beyond stupid.
> 
> I want to know how often this is happening (Michal?), because if
> protocols need ordering and can't tell, it becomes effectively a
> packet drop somewhere down in the protocol.  If it's 1 in a million,
> OK.  If it's 1 in a thousand, that's bad.
> 
> Frankly, I'm amazed anyone sees reordering in real life...



I have observed (very, very rarely) a situation where interrupt
sequences for two CPUs allowed this to happen (but not that it did
necessarily happen).  When these races do occur, it probably hits TCP
traffic which deals with it, otherwise any hiccups it causes are
probably lost in the noise.

For PPPoE (non multilink) the worst case scenario would appear to be a
packet drop with a retransmit delay imposed on or by higher-level
protocols.  That being said, I don't think PPPoE provides any
justification for any modifications to the core networking code to deal
with this.

Continuing on with PPPoE, I would like to get people's opinions on
whether or not mechanisms should be put in (as outlined in David's
suggestion above) to handle races between payload packets and socket
creation.   These races are, I think, quite rare and at worst may impose
a delay of a couple of seconds on session creation.  I'm not entirely
comfortable with the idea of saving incoming packets that I can't match
to existing sessions in case a matching session comes into existence in
the near future (DOS), especially if not handling this case is
non-fatal.  I'd like to get a consensus on this "policy" issue.

-- 
Michal Ostrowski <mostrows@watson.ibm.com>

  parent reply	other threads:[~2003-06-26 11:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-25  7:24 [PATCH, untested] Support for PPPOE on SMP Rusty Russell
2003-06-25 11:19 ` Jamal Hadi
2003-06-25 13:21 ` Michal Ostrowski
2003-06-25 13:42   ` Michal Ostrowski
2003-06-25 15:45     ` Jamal Hadi
2003-06-25 17:27       ` Michal Ostrowski
2003-06-25 22:17         ` Paul Mackerras
2003-06-25 22:56           ` Michal Ostrowski
2003-06-25 16:15   ` Stephen Hemminger
2003-06-25 16:22     ` Jamal Hadi
2003-06-25 16:39       ` Stephen Hemminger
2003-06-25 17:07         ` Jamal Hadi
2003-06-25 17:40           ` Stephen Hemminger
2003-06-25 18:00             ` Michal Ostrowski
2003-06-25 22:22           ` Paul Mackerras
2003-06-25 22:53             ` Ben Greear
2003-06-25 21:33   ` David S. Miller
2003-06-25 22:06     ` Michal Ostrowski
2003-06-26  1:04       ` David S. Miller
2003-06-26  3:57     ` Rusty Russell
2003-06-26  3:59       ` David S. Miller
2003-06-26  8:17         ` Rusty Russell
2003-06-26  8:55           ` David S. Miller
2003-06-26 10:47             ` James Carlson
2003-06-26 10:51         ` James Carlson
2003-06-26 23:18           ` Jamal Hadi
2003-06-27 11:39             ` James Carlson
2003-06-27 12:12               ` Paul Mackerras
2003-06-27 13:19                 ` James Carlson
2003-06-27 14:59                 ` Stephen Hemminger
2003-06-27 15:27                   ` James Carlson
2003-06-28  2:21               ` Jamal Hadi
2003-06-28 22:51                 ` Frank Cusack
2003-06-26 11:37       ` Michal Ostrowski [this message]
2003-06-25 16:01 ` Jason Lunz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1056627436.27295.42.camel@brick.watson.ibm.com \
    --to=mostrows@watson.ibm.com \
    --cc=carlson@workingcode.com \
    --cc=davem@redhat.com \
    --cc=fcusack@samba.org \
    --cc=netdev@oss.sgi.com \
    --cc=paulus@samba.org \
    --cc=rusty@rustcorp.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).