Re: [Gen-art] [Rift] Genart early review of draft-ietf-rift-rift-08

Robert Sparks <rjsparks@nostrum.com> Mon, 28 October 2019 21:16 UTC

Return-Path: <rjsparks@nostrum.com>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C854120088; Mon, 28 Oct 2019 14:16:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level:
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nostrum.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 EHheXvzqvOWg; Mon, 28 Oct 2019 14:16:12 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 25E8F120072; Mon, 28 Oct 2019 14:16:12 -0700 (PDT)
Received: from unescapeable.local ([47.186.30.41]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id x9SLG77O028225 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 28 Oct 2019 16:16:08 -0500 (CDT) (envelope-from rjsparks@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1572297369; bh=hUSrmTxLjK2QHDr8cyaqXYcRMFiKR+V1Ei7+vGzsix4=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=mD0mSDoDVSiUzbnOxJqOQNhaVQJlKtx6IC+WKoZiGyjQj0iyc9s9LY2fBZRfeCBr0 skKd8+S7FJs9G1614dGVbIuW5q8VcLeE5GPXZCNOP1Eiw/sOYCzmat+7W3r5vykrt2 lw/SRcv5hUrikKO6atK+DGO2lOIUVwoK6o2vNV4s=
X-Authentication-Warning: raven.nostrum.com: Host [47.186.30.41] claimed to be unescapeable.local
To: Tony Przygienda <tonysietf@gmail.com>
Cc: gen-art@ietf.org, draft-ietf-rift-rift.all@ietf.org, rift@ietf.org
References: <157228915192.16080.15649375711620871809@ietfa.amsl.com> <CA+wi2hOJM7F5Xi7oEmh+81EwpzLCW4q-VEXa4UTpNMyYhgjzXQ@mail.gmail.com>
From: Robert Sparks <rjsparks@nostrum.com>
Message-ID: <15b2c084-ec76-4b5b-016a-39333867d625@nostrum.com>
Date: Mon, 28 Oct 2019 16:16:07 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <CA+wi2hOJM7F5Xi7oEmh+81EwpzLCW4q-VEXa4UTpNMyYhgjzXQ@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------48B572D66093E714BDB5A63D"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/5-05qvgXeLh8Za3RxnWH8akwXE4>
Subject: Re: [Gen-art] [Rift] Genart early review of draft-ietf-rift-rift-08
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 Oct 2019 21:16:16 -0000

On 10/28/19 3:51 PM, Tony Przygienda wrote:
> Robert, reacting as editor here
>
> thanks for your detailed review, answers inline
>
> I'm raising couple questions myself in the answers, if you'd care to 
> clarify those further I can try to make the
> draft cut-off for an updated version
>
> On Mon, Oct 28, 2019 at 12:00 PM Robert Sparks via Datatracker 
> <noreply@ietf.org <mailto:noreply@ietf.org>> wrote:
>
>     Reviewer: Robert Sparks
>     Review result: Not Ready
>
>     Summary: Not ready for publication as a Proposed Standard
>
>     I found this document very difficult to read. On my first past
>     through, I was
>     fairly certain it didn't specify the protocol well enough to
>     actually implement
>     it, until I got deep into the appendices. Even after a second
>     pass, I am not
>     comfortable that a implementation could be produced without having
>     guess at
>     some behavior, which will lead to interoperability problems.
>
>     I strongly suggest restructuring the draft to pull the actual
>     definition of the
>     protocol from the appendix and into the early part of the document
>     text. You
>     may also want to use the new v3 format so that you can take
>     advantage of its
>     support for SVG to help convey your state diagrams.
>
>
> As first observation, we have two interoperable implementations since 
> a bit, one completely open source which has been produced based on the 
> spec. It was in fact open source work that helped to refine the 
> document content to make sure we can have an implementation produced 
> based on the text without further "guessing things". As example the 
> LIE FSM has been implemented initially in open source without 
> consulting authors of the spec and interoperat'ed without a single 
> defect (but discovered a protocol underspecification in case of 
> misconfiguration that was subsequently added). Please refer to IETF 
> proceedings for the according presentations if necessary. We have a 
> third implemenation progressing now where all questions the 
> implementor asked so far could be answered by pointing directly @  the 
> specification as written. This seems to answer to me the "suspicion of 
> specification maybe not being good enough to implement" as an 
> objective measuring stick as far I can imagine one.
>
> As second observation regarding your comments, the majority of readers 
> seemed to prefer a format where the protocol is "described" in 
> narrative and the tight procedure appendices are left to people 
> implementing the protocol but I have no issue to pull the appendices 
> directly into the document under the according sections. I would 
> simply add something along the lines of "this section of interest to a 
> reader implementing the spec".
>
> I will try the v3 format again but last time we tried couple months 
> ago it wasn't workable. I see first RFC havs been just published using 
> it (albeit I don't see it using any drawings).
>
>
>     At the very least, the document needs a strong editorial scrub.
>     There are many
>     sentences that are missing important articles. There are many
>     sentences that
>     are very complex and would be better written as two or three
>     sentences. There
>     are many sections that too deeply assume the reader already
>     understands the
>     problem space.
>
>
> Point taken and a scrub will be performed along the lines you suggest.
>
>
>     In the remainder of the review, I'm not going to call out each
>     overly-complex
>     sentence individually, but will attempt to point at a few that
>     also had other
>     issues.
>
>
> yes, thank you. that should suffice for a scrub.
>
>
>     Some high-level points before going into a document-order set of
>     comments:
>
>     ** The IANA considerations section does not provide a clear set of
>     instructions
>     for IANA to follow.
>
>
> Ok, could you be a little bit more specific

You can get AD help here. See section 2.2 of 
https://datatracker.ietf.org/doc/rfc8126/.

9.2 is where I am concerned.

Please add an explicit statement that you are asking IANA to create a 
new top-level registry named RIFT with the following subregistries under it.

>
> 9.1.  Requested Multicast and Port Numbers  seems to describe the allocation points and registries.
> 9.2.  Requested Registries with Suggested Values requests new registries with pre-allocated entries, maybe it's not clear that each subsection is a new registry? I can point that out.
>
>
>     * The notion of a "three-way adjacency" is not made clear in the
>     document. It
>     really takes looking at a rendering of the dot for the state
>     machines before
>     this term becomes well-defined.
>
>
> good catch, will be pulled up into "terminology" section and defined.
>
>
>     * There are a few places where there are internal references in
>     the document
>     that are not clear. These center around the word "Paragraph". For
>     instance, in
>     Req4, there is a reference to "Paragraph 17". Does that mean "Req
>     17"?
>
>
> anomaly of rfc2txt, when referencing a list no matter what the prefix 
> it will always generate
> "paragraph" in the reference. I will see how I can fix that.
>
>
>     * K_LEAF suddently appears without support or definition in 5.1.2.
>     That and
>     the other K_ terms should be discussed in the terminology section.
>
>
> the section 5.1.2. was written more as a narrative but no problem, I 
> will add a special terminology section and define the variables.
>
>
>     * It's unclear whether HH symbol means one or two RJ45 jacks. The
>     diagrams
>     appear to use the symbol inconsistently.
>
>
> The document says verbatim /"we have chosen to use the "HH" symbol as 
> ASCII visualisation of a RJ45 jack." /I will add "single" to it.
>
> Figure 9 may cause confusing since a single H is used to visualize the 
> jack.  I also see possible inconsistency in Figure 13, will correct, 
> probably replacing the "HH" with "X"
>
>
>
>     === Issues in document order ===
>
>     In the introduction:
>
>     "The incumbent protocols precondition normally extensive
>     configuration or
>     provisioning during bring up and re-dimensioning which is only
>     viable for a set
>     of organizations with according networking operations skills and
>     budgets." did
>     not parse for me until my second read-through, where I realized
>     "precondition
>     normally" was intended to mean "normally require". "bring up" and
>     "re-dimensioning" are almost jargon in this context.
>
>
> will try to simplify language where it looks possible.
>
>
>     In the Terminology section:
>
>     It would be good to introduce S-TIE and N-TIE as top level terms
>     in this
>     section.
>
>
> terminology section already says:
>
> TIE:  This is an acronym for a "Topology Information Element".  TIEs
>     are exchanged between RIFT nodes to describe parts of a network
>     such as links and address prefixes, in a fashion similar to ISIS
>     LSPs or OSPF LSAs.*We will talk about N-TIEs when talking about TIEs in the northbound 
> representation and S-TIEs for the southbound equivalent.*
> but sure, I will break that out and define more explicitly
>
>
>     The words for Adjacency are not really a definition, but taken as
>     such they are
>     circular.
>
>
> correct, we failed to root the defintions of interface/link/adjacency 
> since in p2p link-state
> protocols they are pretty much equivalent (modulo tunnels). 
> suggestions?  I'll introduce
> 3-way as clear defintion and define adjacency as "3-way state on a link"
>
>
>     The definition for Metric is not useful.
>
>
> ok, will be removed
>
>
>     In the first paragraph of 5.1.1, The construction of 'never ...
>     (we'll talk
>     about exceptions later)' is awkward. It's also unclear where the
>     the "later" is
>     pointing. The last sentence is grammatically incorrect ("We omit
>     ... out"), and
>     talks of omimitting discussion "for the moment". Please make it
>     clear where you
>     return to the discussion.
>
>
> ok, I'll list the exceptions in detail here
>
>
>     The third paragraph of 5.1.2 does not parse. I suspect there is a
>     missing word
>     somewhere in "the introduced Section 3.1".
>
>
> word missing
>
>
>     The nested numbered lists in section 5.2.3.9 are perhaps not the
>     best tool for
>     describing the algorithms you want to convey. On page 46, steps
>     4.3.3 and 4.4
>     are comments, not actions. Numbering them as you number actions is
>     confusing.
>
>
> any better suggestions? (I will move from numbering to 
> number.latin.other and so on). This is
> an old technique in protocol specs to allow implementors to discuss 
> very, very precise statement
> and their meaning (e.g. ISIS spec is all written like that). Otherwise 
> people start to talk about
> "4th line in the algorithm X" which is far more confusing.
number.latin.other will help.
>
> rfc2txt does not have a mechanism to "skip numbering for this item" 
> when genreeating
> lists unless I'm oblivious to it so I'm limited by the tools IETF 
> provides to render documents.
Do you mean xml2rfc when you say rfc2txt?
>
>
>     The last Step 7 in section 5.2.3.9 speaks of "sine flooding
>     reduction". What is
>     that?
>
>
> some editorial slip on find/replace I assume, was "such" AFAIR, seems 
> slipped -04 or -05. missed by
> good amount of readers ;-)
>
>
>     The reference in 5.2.7.2's first paragraph to [EUI64] looks like a
>     normative
>     reference to me.
>
>
> I wasn't sure since the EUI64 is kind of a "side implementation note 
> in IEEE". Can move to normative.
>
>
>     Something is wrong at the bottom of page 68. One branch of the
>     sentence reduces
>     to "we have to decide whether node Y is ... at the same level as Y".
>
>
> correct, sentence is illogical. I will correct
>
>
>     In 5.3.4.1 rule 1, you only consider nodes to which the reciever has a
>     bi-directional adjacency. As opposed to what? Does this mean
>     adjacencies in
>     TwoWay or ThreeWay state? Or something else?
>
>
> I will define "bi-directional adjacency", it cannot hurt.
> But the term is kind of well understood by anyone who
> implemented OSPF/ISIS or is intimately familiar with the specs normally.
>
>
>     There is a dangling reference to [PGP reference] at the end of 5.3.11.
>
>
> slipped. PGP has been folded out the main document and this got 
> missed. I probably remove the reference
> since we cannot publish standard with reference to a draft while PGP 
> work is going slowly.
>
>
>     Section 7.3 is really not useful for the protocol specification.
>     Consider
>     removing it.
>
>
> This question/observation/doubt was coming up many, many times and 
> that's why the document
> introduced this section. I prefer to retain it to prevent the question 
> being asked over and over again
> on the reading of the spec.
>
>
>     In section 8.4 the sentence "The attack vector packet number
>     present is
>     relatively benign." does not parse.
>
>
> yes
>
>
>     It's particularly unclear what you are trying to achive with the
>     "DirectionMaxValue" registry entry defined in 9.2.11.1 Are you
>     trying to say
>     the registry is not allowed any more values? If so, just say that
>     in the
>     instructions to IANA. I don't see where the codepoint is used by
>     the protocol,
>     so I suggest it not be added to the registry.
>
>
> implementation specific basically. Can be removed but allows in 
> implementation to
> use the codepoint to scale arrays for example.
>
> If the registry takes
> DirectionMaxValue
>
> for e.g. version 3.0 schema this value could move. Alternately we 
> could split a registry _per schema version_ but that seems a huge 
> proliferation and replication.
> I'm agnostic either way and would like to hear an opinion here
I'll punt this to the group/AD.
>
>
>     It's a leap to get from the description of Sequence Number Binary
>     Arithmetic in
>     Appendix A to the "rollover" mechanic the paragraphs that
>     reference Appendix A
>     are looking for. Please clarify.
>
>
> ok, will explain rollover in relation to Appendix albeit it's a 
> well-known technique
> since many years in link-state protocols (explained e.g. in depth in 
> John Moy's book) though
> lacking a rigorous implementation description such as Appendix A 
> provides.
>
>
>     Also in Appendix A, I question the sentence "The >: relationship
>     is symmetric
>     but not transitive". Symmetric says "if A>:B then B>:A".
>
>
> yes, symmetric means "if A>:B then B>:A" precisely what you say and the
> relation holds.
>
> non transitive means obviously that
>
> A>:B and B>:C does NOT imply A>:C
>
> Obvious example of the 3-bit arithmetic is
>
> 4 >: 2 & 2 >: 0 does NOT follow in 4 >: 0
I will reread. 4 >: 2 and 2 >: 4 surprises me.
>
> That seems quite clear to me so I don't see easily what you question 
> unless you
> care to explain more.
>
>
>     === Nits ===
>
>     The document has many lines that exceed the maximum line width for txt
>     formatted RFCs.
>
>
> ack, will correct
>
>
>     The definition section uses terms before it defines them. For
>     those that are
>     acronyms (see the first use of PoD and ZTP for example) an
>     expansion would
>     help. The short-hand "E-W" isn't saving much over "East-West" and
>     the latter
>     would be much clearer in the terminology section.
>
>
> will correct
>
>
>     In section 3.2 at " We will use topology in Figure 2 (called
>     commonly a fat
>     tree/network in modern IP fabric considerations [VAHDAT08] as
>     homonym to the
>     original definition of the term [FATTREE]) in all further
>     considerations.".
>     This would better be conveyed as two seperate sentences. I don't think
>     "homonym" (same spelling or pronunciation, but different meanings)
>     is really
>     the word you are looking for.
>
>
> "homonym" is precisely what is meant hear, the term has been 
> overloaded to
> mean two different things over time.
>
> Will split into shorter sentences.
>
>
>     On page 17, you have a block labelled "Following list represents
>     non-requirements", followed by a single PEND requirement, and then
>     "Finally,
>     following are the non-requirements" before the NONREQs. The
>     description of the
>     first block is incorrect?
>
>
> yes, sorry, slipped. we had pending? requirements which slid into non 
> requirements or has
> been removed. this one is a left over.
>
>
>     The last sentence in the paragraph immediately following Figure 10
>     has no verb.
>
>
> correct, thanks
>
>
>     The second paragraph after Figure 10 includes a sentence that
>     begins "If proves
>     convenient". I suspect it meant to be "It proves convenient"
>
>
> correct
>
>     In section 5.2.2 the phrase "if a link has entered three way IPv4
>     and/or IPv6
>     with a neighbor on an adjacency" should be reconstructed. I
>     _think_ you mean
>     has an adjacency with a neighbor that is in the three-way state"?
>
>
>
> yes, should clarify via crisp definition of 3-way.
>
>
>     In section 5.2.3.5, the pronouns in "It should only set it" can become
>     confused.Please rework the sentence to avoid the pronouns.
>
>
> ack
>
>
>     There is a stray double-quote at the end of the first sentence in
>     5.2.7.2
>
>
> ack
>
>
>     At 5.2.8 "(with some finer distinctions not explained further)"
>     adds no useful
>     information to the document. Please remove it.
>
>
> ack
>
>
>     At section 6.1, please explicitly point to figure 2 when
>     mentioning the example
>     topology.
>
>
> ack
>
>
>     The term "ToRs" appears without definition or reference at section 7.1
>
>
> ack