Proposed revised Extension Header text for rfc2460bis

Bob Hinden <bob.hinden@gmail.com> Mon, 24 April 2017 22:52 UTC

Return-Path: <bob.hinden@gmail.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 66BC4131443 for <ipv6@ietfa.amsl.com>; Mon, 24 Apr 2017 15:52:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 7vZ0sN5fRk9l for <ipv6@ietfa.amsl.com>; Mon, 24 Apr 2017 15:52:53 -0700 (PDT)
Received: from mail-qt0-x22b.google.com (mail-qt0-x22b.google.com [IPv6:2607:f8b0:400d:c0d::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C0B5712706D for <ipv6@ietf.org>; Mon, 24 Apr 2017 15:52:52 -0700 (PDT)
Received: by mail-qt0-x22b.google.com with SMTP id y33so126884089qta.2 for <ipv6@ietf.org>; Mon, 24 Apr 2017 15:52:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:cc:to; bh=tLiimiduXqsd8p9aCF2kayOJHhsVaMSsr0WXFHLYKoQ=; b=Ywcf0N7exZRZ69+PMBSt279l7Nwwu9eixEFD9L+1Ff01Gz0hIVy1Xs1uDriGDnkv4q v9iEsXfrFg2tZHmVMpdNi1r6vGHcUZgHmbp5Kfapn08gLrmtvtyiAxRxuunL2dLWTld0 Qv1K9Sz+UXjNr6tCPDfUwIS28jZ/bXy7IRE7AO77MspFWZtmzr2DJW8Tb3A4HTLKRwhW f/mhBe1b2Wx+JSD0WJu6QE1k5Dc7YanFdVZS//OwHiJA5Tt6n3SdkBXP1lTIxvGpvYF9 /pfGBn4U1/hV1gOASK1wEff5SnhM0NFnTJyfyxG58g4WGwf/xBfh9VHVc+o4j66agoiS YEkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:cc:to; bh=tLiimiduXqsd8p9aCF2kayOJHhsVaMSsr0WXFHLYKoQ=; b=GgLmgPtF5rCCU6K7gGI59N5A46D6twDLzoPb7OCc/H36YsOXRvyt/UeXVWu6EL84WP ytv3Y+dvyHv3CRZ1nwrg6mK+yAy+/88l5tigplKuOxcccta4BAXnnkFSYWlOc5lSReqW 3yy8/00iLaI8GGz1A/ON1F74+I0Zi/LC1WH9gfd1piXT3mRSiMoxxAC08m1yAtbOhWeh 7FIMPSW3fhvujq8/6eA/e/qWxI5XhaXxB5/Qmg8cIk5bfTA6AMd/RgifyyPXmDTQbrE6 bAXeJEXYJXnFhsRzFXD/E9OV6QHQU8PRJpj8C51DyN8jSg1qCPXyrrHTdJm+jFuyHqn6 qJgw==
X-Gm-Message-State: AN3rC/6ZO5s/wAdHJXOjuJEBb0hBMZ86LPGWCDbAHUIqtQ6ZH4oTW1HD nm4BtLEdU414B0oFXUs=
X-Received: by 10.237.37.106 with SMTP id w39mr30663345qtc.14.1493074371636; Mon, 24 Apr 2017 15:52:51 -0700 (PDT)
Received: from [172.16.224.219] ([209.97.127.34]) by smtp.gmail.com with ESMTPSA id o41sm13940357qto.3.2017.04.24.15.52.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Apr 2017 15:52:49 -0700 (PDT)
From: Bob Hinden <bob.hinden@gmail.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_274C8DA2-BD43-4E4E-9DC0-B61A1562C39C"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Proposed revised Extension Header text for rfc2460bis
Message-Id: <9A6886D9-20BD-438F-B2FD-F497958F5D12@gmail.com>
Date: Mon, 24 Apr 2017 15:52:47 -0700
Cc: Bob Hinden <bob.hinden@gmail.com>
To: IPv6 List <ipv6@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/e68H1Z8Q1IvlRDvtD_8JbqOdpeE>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 24 Apr 2017 22:52:55 -0000

Hi,

After reading through the discussion about this text in Section 4, I have some new text to propose.  I think this is significantly improved and should resolve many of the issued raised.

Changes include separate description of behaviors extension headers and the hop-by-hop option header, remove “examine” from the first paragraph.  I removed “examine” because I am convinced it’s not sustainable to say a node can’t examine extension given how widespread this behavior is.  I also removed the reference to RFC7045 because examine is removed.  RFC7045 is referenced in the recently updated Security Considerations section.

I removed the “including the source and destination nodes” text from the paragraph on the hop-by-hop options header because I don’t think we need to mention the source, and there is a whole paragraph describe what happens at the destination node.  I also added the text about from the first paragraph about reaching the destination to the hop-by-hop header paragraph.

I also moved (without change) the “At the Destination node...” text from the first paragraph to a new third paragraph.  It applies to all extension headers.

CURRENT and NEW text below.  Please review and comment.

Bob


   CURRENT

   With one exception, extension headers are not examined, processed,
   inserted, or deleted by any node along a packet's delivery path,
   until the packet reaches the node (or each of the set of nodes, in
   the case of multicast) identified in the Destination Address field of
   the IPv6 header.  Note: If an intermediate forwarding node examines
   an extension header for any reason, it must do so in accordance with
   the provisions of [RFC7045].  At the Destination node, normal
   demultiplexing on the Next Header field of the IPv6 header invokes
   the module to process the first extension header, or the upper-layer
   header if no extension header is present.  The contents and semantics
   of each extension header determine whether or not to proceed to the
   next header.  Therefore, extension headers must be processed strictly
   in the order they appear in the packet; a receiver must not, for
   example, scan through a packet looking for a particular kind of
   extension header and process that header prior to processing all
   preceding ones.

   The exception referred to in the preceding paragraph is the Hop-by-
   Hop Options header, which carries information that may be examined
   and processed by every node along a packet's delivery path, including
   the source and destination nodes.  The Hop-by-Hop Options header,
   when present, must immediately follow the IPv6 header.  Its presence
   is indicated by the value zero in the Next Header field of the IPv6
   header.

   NEW

   Extension headers (except for the Hop-by-Hop Options header) are not
   processed, inserted, or deleted by any node along a packet's delivery
   path, until the packet reaches the node (or each of the set of nodes,
   in the case of multicast) identified in the Destination Address field
   of the IPv6 header.

   The Hop-by-Hop Options header is not inserted or deleted, but may be
   examined and processed by every node along a packet's delivery path,
   until the packet reaches the node (or each of the set of nodes, in
   the case of multicast) identified in the Destination Address field of
   the IPv6 header.  The Hop-by-Hop Options header, when present, must
   immediately follow the IPv6 header.  Its presence is indicated by the
   value zero in the Next Header field of the IPv6 header.

   At the Destination node, normal demultiplexing on the Next Header
   field of the IPv6 header invokes the module to process the first
   extension header, or the upper-layer header if no extension header is
   present.  The contents and semantics of each extension header
   determine whether or not to proceed to the next header.  Therefore,
   extension headers must be processed strictly in the order they appear
   in the packet; a receiver must not, for example, scan through a
   packet looking for a particular kind of extension header and process
   that header prior to processing all preceding ones.

   END NEW