Re: [tcpm] [Technical Errata Reported] RFC7413 (4239)

Matthew Luckie <mjl@caida.org> Sat, 24 January 2015 18:42 UTC

Return-Path: <mjl@luckie.org.nz>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27BFB1A3B9D for <tcpm@ietfa.amsl.com>; Sat, 24 Jan 2015 10:42:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vB5MdUbgcE20 for <tcpm@ietfa.amsl.com>; Sat, 24 Jan 2015 10:42:45 -0800 (PST)
Received: from cdptpa-oedge-vip.email.rr.com (cdptpa-outbound-snat.email.rr.com [107.14.166.230]) by ietfa.amsl.com (Postfix) with ESMTP id 80A031A1F00 for <tcpm@ietf.org>; Sat, 24 Jan 2015 10:42:45 -0800 (PST)
Received: from [76.167.133.166] ([76.167.133.166:28288] helo=spandex.luckie.org.nz) by cdptpa-oedge01 (envelope-from <mjl@luckie.org.nz>) (ecelerity 3.5.0.35861 r(Momo-dev:tip)) with ESMTP id 42/D3-08653-1A7E3C45; Sat, 24 Jan 2015 18:42:44 +0000
Received: from mjl by spandex.luckie.org.nz with local (Exim 4.85 (FreeBSD)) (envelope-from <mjl@luckie.org.nz>) id 1YF5fN-0006HH-3j; Sat, 24 Jan 2015 10:42:41 -0800
Date: Sat, 24 Jan 2015 10:42:41 -0800
From: Matthew Luckie <mjl@caida.org>
To: Joe Touch <touch@isi.edu>
Message-ID: <20150124184240.GA23985@spandex.luckie.org.nz>
References: <20150122232420.282F5187A98@rfc-editor.org> <54C2DE6E.2010505@isi.edu> <20150124035751.GA32450@spandex.luckie.org.nz> <54C3D063.5000500@isi.edu>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="TB36FDmn/VVEgNH/"
Content-Disposition: inline
In-Reply-To: <54C3D063.5000500@isi.edu>
User-Agent: Mutt/1.5.23 (2014-03-12)
Sender: Matthew Luckie <mjl@luckie.org.nz>
X-RR-Connecting-IP: 107.14.168.118:25
X-Cloudmark-Score: 0
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/1NTYvESkPxWAqB03R00xrUcuAYI>
X-Mailman-Approved-At: Sun, 25 Jan 2015 10:42:24 -0800
Cc: tcpm@ietf.org, mls.ietf@gmail.com, RFC Errata System <rfc-editor@rfc-editor.org>
Subject: Re: [tcpm] [Technical Errata Reported] RFC7413 (4239)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 24 Jan 2015 18:42:47 -0000

> >>>A length field of zero would mean an invalid TCP option.
> >>
> >>Disagree. The correct reason is, IMO:
> >>
> >>	The Nil option has no bytes beyond the Kind and Length
> >>	fields required in all TCP options, and the Length field
> >>	includes the space used for Kind and Length.
> >>
> >>The interpretation of an option with a 0 length should not be discussed
> >>in the errata or future updates to this doc; it is out of scope.
> >>
> >>(AFAICT, if it were observed, the entire segment would have to be deemed
> >>invalid, not just that individual option. But that's not germane to this
> >>errata).
> >
> >I do not think that the reasoning behind this errata needs to be
> >discussed in future updates to the RFC (I put my reasoning in the
> >Notes field of the errata form) but I absolutely believe that a TCP
> >option defined after RFC793 with a length of zero is an invalid option
> >that will cause a TCP receiver to stop processing the options.
> 
> It should be interpreted as a malformed segment, not simply stop the
> processing of the options.

OK.  I took a more careful read of your responses and I think we are
somewhat in agreement, about L<2 being malformed.  But, the source of
two TCP stacks (Linux tcp_parse_options() and FreeBSD tcp_doptions())
show that they just stop processing the options when they get a TLV
option with a L < 2, rather than discard the segment.