(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