Re: Review of draft-ietf-6man-rfc1981bis-04

Bob Hinden <bob.hinden@gmail.com> Fri, 17 March 2017 21:56 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 27E9D12961E; Fri, 17 Mar 2017 14:56:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=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 xelQRPdz89TN; Fri, 17 Mar 2017 14:56:49 -0700 (PDT)
Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d::233]) (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 C54EF12962E; Fri, 17 Mar 2017 14:56:48 -0700 (PDT)
Received: by mail-qt0-x233.google.com with SMTP id x35so73256646qtc.2; Fri, 17 Mar 2017 14:56:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=VV/zRiqaKOTK3FoqUkNYsCUNj95vvTOF0DMGRtbeYD0=; b=j/GcySico+4veVdwWIKd1kEv994/CEmVPWESe1/m9Wt2Py0AoNR/NhgBp1o7Kz4QAB MDLqeIMssDpnwT/XCNHNgOZO1MSoGyo7bW6Sc7XHsOSoz6uRhkEmcN39oGc0afzcPTJM bMNB0ssy37BRJwaUABUNy1op6Bgze8LKAdDT8YkiC651NpJ9BgyZMBRLRKBlmbms9Job ui0T2HNvGaAe3zx/FG+PxzxQPEOrdLgFnGu1JlPMEBzyEEnBLUoyV92oLL/P+OoXTBVy GGsq5XMWRYZQbwplEvC3xi8QbzdllFLxbJj4xRy9pvzU7udXWQJK4QDNa46M1aqMCqOR u8/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=VV/zRiqaKOTK3FoqUkNYsCUNj95vvTOF0DMGRtbeYD0=; b=gSE2H0mwHROmZr4uHxfY1C/RlF9aMVr3L9nqVaSt8nMjgdKoj0m21LS4oZ0i9ausLc OQ8g1ZcPTN4C0xlIFbILvASMWjBSblcEQXmOfwSKsvvCA+SiEOy0izrUZDn74xgX/PMd 4jIHHpSiCd/PBABp1cFNg5IM0m8yub3jCG1ZZ+C8j9xb0/GiI5gXzF2pHR19wjElNpGk afB4MmzqpYwYLUibFc5oAZhQCMIqrHZjLEYt4S1YxZPEOG/WgfKbEelOVTRWRcYq6eRF Uch7GxfRVfUdTkYa25WJH9uheh9Ieww06hEVX+f/QlUU7BaO8S0urpTlqpHUg3tkVl1g bssg==
X-Gm-Message-State: AFeK/H3x2F9QT2Fwe3/VOrRX8rTw4HjbNhqOnaK1Pf9UMewk2ZK6ln8Trqj8+v+VdmEn2A==
X-Received: by 10.237.38.194 with SMTP id q60mr17076314qtd.84.1489787807709; Fri, 17 Mar 2017 14:56:47 -0700 (PDT)
Received: from [172.16.224.219] ([209.97.127.34]) by smtp.gmail.com with ESMTPSA id 44sm6840438qts.15.2017.03.17.14.56.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Mar 2017 14:56:46 -0700 (PDT)
From: Bob Hinden <bob.hinden@gmail.com>
Message-Id: <5BABA19D-58F8-44AE-BF18-9A0B9CCADED4@gmail.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_B4891142-9A32-490E-8AAE-8A8206A40649"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Subject: Re: Review of draft-ietf-6man-rfc1981bis-04
Date: Fri, 17 Mar 2017 14:56:45 -0700
In-Reply-To: <148665359396.20513.9749548375095869760.idtracker@ietfa.amsl.com>
Cc: Bob Hinden <bob.hinden@gmail.com>, gen-art@ietf.org, IPv6 List <ipv6@ietf.org>, IETF <ietf@ietf.org>, draft-ietf-6man-rfc1981bis.all@ietf.org
To: Stewart Bryant <stewart@g3ysx.org.uk>
References: <148665359396.20513.9749548375095869760.idtracker@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3259)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/XsWn8_ZApl4QNpClwYQWvUIcDvY>
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: Fri, 17 Mar 2017 21:57:02 -0000

Hi Stewart,

Thanks for the detailed review.  I am responding after reading the email thread that resulted, some issues were closed.

Several of the reviews have suggested significant changes to this document.  The working group was trying to make a few changes to bring it into alignment with some changes to rfc2460bis (based on updating documents).  It was not attempting a major rewrite when advancing it to Internet Standard.  The alternative that the working group discussed was to file errata on RFC1981 and leave it to a future document update.

I don’t think many of these changes can be done and still advance it to Internet Standard. If we can’t advance the current document, then the w.g. may want to just do the errata and withdraw the advancement request.  Of course, if people want to work on a revision of IPv6 Path MTU Discovery, it would be welcomed, but it won’t be able to advanced to Internet Standard.

Comments below.

Thanks,
Bob


> On Feb 9, 2017, at 7:19 AM, Stewart Bryant <stewart@g3ysx.org.uk> wrote:
> 
> Reviewer: Stewart Bryant
> Review result: Almost Ready
> 
> I am the assigned Gen-ART reviewer for this draft. The General Area
> Review Team (Gen-ART) reviews all IETF documents being processed
> by the IESG for the IETF Chair.  Please treat these comments just
> like any other last call comments.
> 
> For more information, please see the FAQ at
> 
> <https://trac.ietf.org/trac/gen/wiki/GenArtfaq>.
> 
> Document: draft-ietf-6man-rfc1981bis-04
> Reviewer: Stewart Bryant
> Review Date: 9/Feb/2017
> IETF LC End Date: 1/Mar/2017
> IESG Telechat date: unknown
> 
> Summary: This draft is on the right track but has open issues,
> described in the review.
> 
> This review together with the lengthy discussion on the IETF list
> suggest that this draft has a number of issues that need to be
> addressed  before publication.
> 
> I wonder if we would best serve both our future and our heritage
> if we declared RFC1981 as historic, and either left the idea there,
> or declared it as historic and wrote a new text from a clean start?
> 
> 

I think this was closed in the email thread.


> Major issues:
> 
> Nits points out a number of faults with the document, but the only
> one of substance is:
> 
> The text has a lot of RFC2119 language, but no RFC2119 declaration.
> 
> The document could use a thorough RFC2119 scrub

Based on in an earlier another review, our AD suggested an update to Shepard Writeup instead of adding something to the document.  It says:

   This document is an update to RFC1981 that was published prior to
   RFC2119 being published.  Consequently while it does use "should/must"
   style language in upper and lower case, the document does not cite the
   RFC2119 definitions.  Since the changes in this update were very
   limited, the w.g. concluded to not change any of this language.


> 
> The document lists the three original authors one with an affiliation
> 
> change, but no email addresses. Has this been agreed with the
> original
> authors, and have arrangements been put in place for the RFC editor
> to process auth48?

I contacted the original authors and they didn’t express any interest in being involved in this update.  They haven’t participated in the IETF for many years.  I can contact them during AUTH48, or the AD can override this requirement for this document.

> 
> It is concerning that the draft does not talk in any detail about
> how modern ECMP works, i.e. using the five tuple, and noting that
> the PMTU may be different depending on the transport layer port
> numbers.
> 

I think this is out of scope.


> Given that a very large fraction of packets will traverse an MPLS
> network at some point, I am surprised that there is no text talking
> about the importance of providing support for this feature in the
> MPLS domain. RFC3988 talks to this point, but is only experimental.
> 

I think this was closed in the email thread.

> ======
> 
>   If flows [I-D.ietf-6man-rfc2460bis] are in use, an implementation
>   could use the flow id as the local representation of a path.
> Packets
>   sent to a particular destination but belonging to different flows
> may
>   use different paths, with the choice of path depending on the flow
>   id.  This approach will result in the use of optimally sized
> packets
>   on a per-flow basis, providing finer granularity than PMTU values
>   maintained on a per-destination basis.
> 
> SB> How widely is flow-id supported in networks? I thought that the
> SB> current position was that it was unreliable as an ECMP indicator
> SB> and thus routers tended to glean information from the packet
> themselves.

I think this was closed in the email thread.

> 
> ======
> 
>      Note: if the original packet contained a Routing header, the
>      Routing header should be used to determine the location of the
>      destination address within the original packet.  If Segments
> Left
>      is equal to zero, the destination address is in the Destination
>      Address field in the IPv6 header.  If Segments Left is greater
>      than zero, the destination address is the last address
>      (Address[n]) in the Routing header.
> 
> SB> So this has the effect that a traffic engineered packet and
> SB> a non-traffic engineered packet will have the lower of the
> SB> two PMTUs. This was all harmless when source routing was a
> curiosity
> SB> as far as mainstream networking was concerned, but may be
> SB> more of a problem as a result of the SPRING work.

I think the onus is on SPRING to make sure it doesn’t break existing mechanisms.

> 
> =======
> 
> 
> 5.3.  Purging stale PMTU information
> 
>   Internetwork topology is dynamic; routes change over time.  While
> the
>   local representation of a path may remain constant, the actual
>   path(s) in use may change.  Thus, PMTU information cached by a
> node
>   can become stale.
> 
>   If the stale PMTU value is too large, this will be discovered
> almost
>   immediately once a large enough packet is sent on the path.  No
> such
>   mechanism exists for realizing that a stale PMTU value is too
> small,
>   so an implementation should "age" cached values.  When a PMTU
> value
>   has not been decreased for a while (on the order of 10 minutes),
> the
>   PMTU estimate should be set to the MTU of the first-hop link, and
> the
>   packetization layers should be notified of the change.  This will
>   cause the complete Path MTU Discovery process to take place again.
> 
> SB> Should that be an RFC2119 SHOULD?
> SB> The impact of this advice is going to be a disruption to what
> might
> SB> be a critical service every 10 mins.
> SB> Should there be some advice along the lines of noting the
> SB> importance of service delivery as part of deciding whether to
> SB> test for bigger PMTU vs improving efficiency?
> 
> =======
> 
> 
> Minor issues:
> 
>   IPv6 defines a standard mechanism for a node to discover the
>   PMTU of an arbitrary path.
> 
> SB> Do you mean "This document defines ....."? Otherwise this needs
> SB> a reference.

Will fix.

> 
> =======
> 
>   An extension to Path MTU Discovery defined in this document can be
>   found in [RFC4821].  It defines a method for Packetization Layer
> Path
> SB> Rather than have the reader figure out what "It" is, perhaps
> SB> s/It/RFC4821/

The w.g. noodled on this text for a long time.  I think the “it” is clear, but will change to RFC4821.


> =======
> 
> 
>   Upon receipt of such a
>   message, the source node reduces its assumed PMTU for the path
> based
>   on the MTU of the constricting hop as reported in the Packet Too
> Big
>   message.
> 
> SB> We should perhaps state up front that this procedure
> SB> hunts for the worst case of the ECMP set associated with the
> SB> ingress nodes PMTU classifier.

I think getting into ECMP is out of scope for moving this to IS.


> =======
> 
>   If a node receives a Packet Too Big message reporting a next-hop
> MTU
>   that is less than the IPv6 minimum link MTU, it should discard it.
> 
> SB> Should that be an RFC2119 SHOULD?

See note above.

> =======
> 
> 5.2.  Storing PMTU information
> 
>   Ideally, a PMTU value should be associated with a specific path
>   traversed by packets exchanged between the source and destination
>   nodes.  However, in most cases a node will not have enough
>   information to completely and accurately identify such a path.
>   Rather, a node must associate a PMTU value with some local
>   representation of a path.  It is left to the implementation to
> select
>   the local representation of a path.
> 
> SB> Is it worth noting the five tuple since that is how a lot of
> SB> load balancers work?

I think getting into ECMP is out of scope for moving this to IS.

> =======
> 
>   The set of paths in use to a
>   particular destination is expected to be small, in many cases
>   consisting of a single path.
> 
> SB> I am not sure that remains true in modern networks.

Do we have any data on this?  I wonder if there will be much difference in the PMTU in this case.

> =======
> 
>   One approach to implementing PMTU aging is to associate a
> timestamp
>   field with a PMTU value.  This field is initialized to a
> "reserved"
>   value, indicating that the PMTU is equal to the MTU of the first
> hop
>   link.  Whenever the PMTU is decreased in response to a Packet Too
> Big
>   message, the timestamp is set to the current time.
> 
>   Once a minute, a timer-driven procedure runs through all cached
> PMTU
>   values, and for each PMTU whose timestamp is not "reserved" and is
>   older than the timeout interval:
> 
>   -  The PMTU estimate is set to the MTU of the first hop link.
> 
>   -  The timestamp is set to the "reserved" value.
> 
>   -  Packetization layers using this path are notified of the
> increase.
> 
> 
> SB> Such detailed implementation advice is uncommon in modern RFCs. It
> has
> SB> the disadvantage of de-facto standardizing something that should
> be left to
> SB> the innovation of the implementer.

Can you point to any harm this has caused?  It is very widely implemented.

> 
> =======
> 
> 5.4.  TCP layer actions
> 
> SB> TCP implementations have moved on a lot since this section was
> SB> written. Is this still current best practise?
> 
> =======
> 
> 5.5.  Issues for other transport protocols
> 
>   Some transport protocols (such as ISO TP4 [ISOTP]) are not allowed
> to
>   repacketize when doing a retransmission.
> 
> SB> How much TP4 is there going over IPv6? Doesn't this example
> SB> show the IETF as not being in the modern age?


I have no information one way or another.  I have heard there is some TP4 on airplanes, may they will move it to IPv6 :-)

> 
> =======
> 
> Nits/editorial comments:
> 
>   upper layer         a protocol layer immediately above IPv6.
>                       Examples are transport protocols such as TCP
> and
>                       UDP, control protocols such as ICMP, routing
>                       protocols such as OSPF, and internet or lower-
>                       layer protocols being "tunneled" over (i.e.,
>                       encapsulated in) IPv6 such as IPX, AppleTalk,
> or
>                       IPv6 itself.
> 
> SB> Everything in the list above is in the well known list, except
> SB> IPX, so technically it needs expansion. However it might be nice
> SB> to use some modern example in common use.

I will add a reference to IPX.  The best reference I have found to IPX is:

       Novell, Inc., "Advanced NetWare V2.1 Internetwork Packet Exchange
       Protocol (IPX) with Asynchronous Event Scheduler (AES)", October
       1986.

Please suggest something better.


> =======
> 
>   link                a communication facility or medium over which
>                       nodes can communicate at the link layer, i.e.,
>                       the layer immediately below IPv6.  Examples
> are
>                       Ethernets (simple or bridged); PPP links;
> X.25,
>                       Frame Relay, or ATM networks; and internet (or
>                       higher) layer "tunnels", such as tunnels over
>                       IPv4 or IPv6 itself.
> 
> SB> Technically X.25 needs a reference, since it is not "well known”

Will add a reference, if you think it is necessary.

> =======
> 
>   path                the set of links traversed by a packet between
> a
>                       source node and a destination node.
> 
> SB> Is it a set of links, or a set of links and nodes?

I think the current text is OK.

> 
> ========
> 
>    the value of MMS_S, the "maximum send transport-message size".
> SB> The modern convention is full-name(abbreviation)

I don’t follow this.

> 
> ========
> 
>   The Sun Network File System (NFS) uses a Remote Procedure Call
> (RPC)
>   protocol [RPC] that, when used over UDP, in many cases will
> generate
>   payloads that must be fragmented even for the first-hop link.
> This
>   might improve performance in certain cases, but it is known to
> cause
>   reliability and performance problems, especially when the client
> and
>   server are separated by routers.
> 
> SB> Perhaps this should point to RFC7530 (the current NFS Spec),
> assuming
> SB> the behaviour description is still correct.

Will do.

> 
> =========
> 
>   The former can be accomplished by associating a flag with the
> path;
>   when a packet is sent on a path with this flag set, the IP layer
> does
>   not send packets larger than the IPv6 minimum link MTU.
> 
> SB> We do not normally give this level of implementation advice

I think it varies a lot.

> 
> ========================
> 
> 
>