Subject: Re: icmp patches
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Kevin Lahey (by way of Kevin Lahey <kml@patheticgeek.net>
List: tech-net
Date: 07/09/2005 09:29:27
On Sun, 10 Jul 2005 01:13:00 +0900
YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp> wrote:

> > I ported the icmp patches from OpenBSD that fix the problems described in:
> > 
> >         http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html
> > 
> > Please let me know what you think.

> > +	if ((tp->t_flags & TF_PMTUD_PEND) && tp->t_inpcb &&
> > +	    SEQ_GEQ(tp->t_pmtud_th_seq, tp->snd_una) &&
> > +	    SEQ_LT(tp->t_pmtud_th_seq, (int)(tp->snd_una + tp->t_ourmss))) {
> > +		extern struct sockaddr_in icmpsrc;
> > +		struct icmp icmp;
> 
> it's in tcp_delack(), while openbsd does this in tcp_timer_rexmt().
> is it intended?

I was a little unclear on the utility of putting off processing an MTU
update via the PMTUD_PENDING, in any case.  What exactly is going on
there?  The draft's suggestions about waiting until you'd seen a
certain number of PMTUD messages to act seemed a little questionable.
After all, if I can generate one bogus ICMP message, why not generate
several?

Kevin
kml@patheticgeek.com