Re: [pim] John Scudder's No Objection on draft-ietf-pim-assert-packing-10: (with COMMENT)

Toerless Eckert <tte@cs.fau.de> Wed, 19 April 2023 14:57 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
X-Original-To: pim@ietfa.amsl.com
Delivered-To: pim@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B3F8C14CE5E; Wed, 19 Apr 2023 07:57:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.647
X-Spam-Level:
X-Spam-Status: No, score=-1.647 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KdMQGj3xWalH; Wed, 19 Apr 2023 07:57:16 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [IPv6:2001:638:a000:4134::ffff:40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9D0D8C137391; Wed, 19 Apr 2023 07:57:12 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [131.188.34.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 4Q1kQr1xKNznkgp; Wed, 19 Apr 2023 16:57:08 +0200 (CEST)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 4Q1kQr1PF0zkvds; Wed, 19 Apr 2023 16:57:08 +0200 (CEST)
Date: Wed, 19 Apr 2023 16:57:08 +0200
From: Toerless Eckert <tte@cs.fau.de>
To: John Scudder <jgs@juniper.net>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-pim-assert-packing@ietf.org" <draft-ietf-pim-assert-packing@ietf.org>, "pim-chairs@ietf.org" <pim-chairs@ietf.org>, "pim@ietf.org" <pim@ietf.org>, "stig@venaas.com" <stig@venaas.com>, Alvaro Retana <aretana.ietf@gmail.com>
Message-ID: <ZEABRBWPMi5aPCDf@faui48e.informatik.uni-erlangen.de>
References: <ZB+EVGcSEPMwNPgi@faui48e.informatik.uni-erlangen.de> <25C13CC3-D345-46B3-9AD7-4BB5D1E66F8D@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <25C13CC3-D345-46B3-9AD7-4BB5D1E66F8D@juniper.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/KtWOZhMR98IZr2AKI8DVsZprfGk>
Subject: Re: [pim] John Scudder's No Objection on draft-ietf-pim-assert-packing-10: (with COMMENT)
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Protocol Independent Multicast <pim.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pim>, <mailto:pim-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pim/>
List-Post: <mailto:pim@ietf.org>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Apr 2023 14:57:20 -0000

Nits from this email (and IANA assignments) fixed in just uploaded -12 version.
On to RFC editor.

Thanks!
    Toerless

On Sun, Mar 26, 2023 at 12:11:03AM +0000, John Scudder wrote:
> Hi Toerless,
> 
> The disappearing inline comments notwithstanding, I reviewed the diff, seems relatively straightforward. A last few comments top-posted here.
> 
> In response to this one:
> 
> > ### Section 3.3.1
> > 
> >   *  Implementations that introduce support for PackedAsserts after
> >      support for Asserts SHOULD support configuration that disables
> >      PackedAssert operations.
> > 
> > I get what you are trying to do here, mainly because you explained it in email.
> > Let me suggest some different wording. Maybe something like,
> > 
> >   *  A configuration option SHOULD be available to disable PackedAssert
> >      operations. An exception exists for implementations that do not
> >      have any native support for legacy Assert operations, these
> >      implementations MAY omit the configuration option.
> 
> You apparently picked both — kept the first, but added the second. Which, OK that’s good enough, but my meaning was really that the second would replace the first, i.e. to remove this one:
> 
> >   *  Implementations that introduce support for PackedAsserts after
> >      support for Asserts SHOULD support configuration that disables
> >      PackedAssert operations.
> 
> To be a little more specific, the problem I have with that one is that "introduce support for PackedAsserts after support for Asserts” is IMO not easy to understand for a reader who doesn’t already know that you mean to distinguish between newly-written implementations and legacy implementations. My goal was that the replacement text would cover your intent. But, anyway, if you want to keep both, I don’t think it’s a showstopper.
> 
> Nits:
> 
> - continueing -> continuing
> - wich -> which
> 
> And finally, what’s a “L5 subnet”? A session layer subnet?!? Should this be reverted to “L3"?
> 
> Otherwise, I’d say “good enough, ship it”, and thanks.
> 
> —John
> 
> > On Mar 26, 2023, at 8:31 AM, Toerless Eckert <tte@cs.fau.de> wrote:
> > 
> > [External Email. Be cautious of content]
> > 
> > 
> > reply to ballot position/details. Inline.
> > 
> > On Mon, Mar 20, 2023 at 02:18:24PM -0700, John Scudder via Datatracker wrote:
> >> John Scudder has entered the following ballot position for
> >> draft-ietf-pim-assert-packing-10: No Objection
> >> 
> >> When responding, please keep the subject line intact and reply to all
> >> email addresses included in the To and CC lines. (Feel free to cut this
> >> introductory paragraph, however.)
> >> 
> >> 
> >> Please refer to https://urldefense.com/v3/__https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/__;!!NEt6yMaO-gk!AamjbC1JDxyb8E4i9kuvcO7PGXay6ylzymujjZimtkQ08aQTy60N1bsPKHgIBGYbNu-lstVk4Q$
> >> for more information about how to handle DISCUSS and COMMENT positions.
> >> 
> >> 
> >> The document, along with other ballot positions, can be found here:
> >> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-ietf-pim-assert-packing/__;!!NEt6yMaO-gk!AamjbC1JDxyb8E4i9kuvcO7PGXay6ylzymujjZimtkQ08aQTy60N1bsPKHgIBGYbNu8pl3U8aQ$
> >> 
> >> 
> >> 
> >> ----------------------------------------------------------------------
> >> COMMENT:
> >> ----------------------------------------------------------------------
> >> 
> >> # John Scudder, RTG AD, comments for candidate draft-ietf-pim-assert-packing-11
> >> commit fc9d64f CC @jgscudder
> >> 
> >> ## COMMENTS
> >> 
> >> (And some nits mixed in, marked as such.)
> >> 
> >> Thanks for addressing my earlier DISCUSS! I have a few residual comments, only
> >> one of which I think is problematic (my comment on §3.3.1.1). Although I hope
> >> you'll address that comment, I'm not keeping it as a DISCUSS point.
> >> 
> >> ### Section 3.3.1
> >> 
> >>   When using assert packing, the regular [RFC7761] Assert message
> >>   encoding with A=0 and P=0 is still allowed to be sent.  Routers are
> >>   free to choose which PackedAssert message format they send.
> >> 
> >> Do you mean "free to choose which Assert message format they send"?
> >> 
> >> ### Section 3.3.1
> >> 
> >>   *  Implementations SHOULD be able to indicate to the operator (such
> >>      as through a YANG model) how many Assert and PackedAssert messages
> >>      were sent/received and how many assert records where sent/
> >>      received.
> >> 
> >> Nit: where -> were
> >> 
> >> ### Section 3.3.1
> >> 
> >>   *  Implementations that introduce support for PackedAsserts after
> >>      support for Asserts SHOULD support configuration that disables
> >>      PackedAssert operations.
> >> 
> >> I get what you are trying to do here, mainly because you explained it in email.
> >> Let me suggest some different wording. Maybe something like,
> >> 
> >>   *  A configuration option SHOULD be available to disable PackedAssert
> >>      operations. An exception exists for implementations that do not
> >>      have any native support for legacy Assert operations, these
> >>      implementations MAY omit the configuration option.
> >> 
> >> ### Section 3.3.1.1
> >> 
> >> I'm still having difficulty following this section, sorry.
> >> 
> >>   Asserts/PackedAsserts in this case are scheduled for serialization
> >>   with highest priority, such that they bypass any potentially earlier
> >>   scheduled other packets.
> >> 
> >> I guess this means, maintain a queue with at least two priority levels, with
> >> the high priority being reserved for reception-triggered assert records. (I
> >> know in your email you expressed allergy to the word "queue" but that's exactly
> >> what it seems like you're describing, without using the word.)
> >> 
> >>                             When there is no such Assert/PackedAssert
> >>   message scheduled for or being serialized,
> >> 
> >> The "such" is a point of difficulty here -- its referent seems to be "earlier
> >> scheduled other packets" which are eligible to be bypassed. Or does it mean
> >> reception-triggered asserts? I think you can fix this problem by spelling it
> >> out instead of indirecting through "such".
> >> 
> >>                                              the router immediately
> >>   serializes an Assert or PackedAssert message without further assert
> >>   packing.
> >> 
> >> I'm also wondering what exactly you intend by "immediately serializes". Control
> >> plane software I'm familiar with lives up in userspace and uses the socket
> >> interface to push stuff in the direction of the network; for the messages to
> >> get written out to the wire it's not uncommon for several additional layers to
> >> be involved, different processors, a router backplane which itself may look
> >> like a network interface, etc. I think/hope you just intend that the control
> >> plane software should manage the order in which it writes things to the socket
> >> interface, but your use of phrases like "the router... serializes" makes it
> >> smell a little like you think this tuning is going to be applied all the way
> >> down to writing the packet to the wire.
> >> 
> >>   If there are one or more reception triggered Assert/PackedAssert
> >>   messages already serializing and/or scheduled to be serialized on the
> >>   outgoing interface,
> >> 
> >> ... the concern continues with the above. In cases I'm familiar with, I don't
> >> have that level of detail available to me about the interface queues when I'm
> >> sitting up in the routing daemon.
> >> 
> >>                       then the router can use the time until the last
> >>   of those messages will have finished serializing for PIM processing
> >>   of further conditions that may result in additional reception
> >>   triggered assert records as well as packing of these assert records
> >>   without introducing additional delay.
> >> 
> >> But no matter what the paradigm is I still don't get what the fragment above is
> >> telling me. The best guess I have right now (but it is not a very strong guess)
> >> is that you're saying, during the time a message is being written to the wire,
> >> we can aggregate records, according to priority order, into the next-in-line
> >> message buffer. Although of course, I don't know the details of every control
> >> plane implementation, I find it somewhat difficult to believe that this level
> >> of optimization will ever see the light of day.
> >> 
> >> More colloquially, maybe what you're saying is, "please pack the buffers as
> >> full as can be done without inducing unnecessary latency"? And putting all my
> >> guesses on this point together, maybe what this subsection is saying is,
> >> "reception-triggered asserts should be prioritized above other asserts; when
> >> constructing messages to send, please pack the buffers as full as can be done
> >> without inducing unnecessary latency"?
> >> 
> >> Also, nit: I would use a hyphen in "reception-triggered" since the two words
> >> are being used together as an adjective. Similarly in 3.3.1.2, "timer
> >> expiry-triggered".
> >> 
> >> ### Section 3.3.1.3
> >> 
> >> Nit, subsectons -> subsections
> >> Nit, be achieve -> be achieved
> >> 
> >> ### Section 3.3.1.5
> >> 
> >> Nit, througput -> throughput
> >> 
> >> ### Section 6
> >> 
> >> I guess it may be so obvious as to not need spelling out, but greenfield
> >> PackedAssert-only implementations (bullet 5 of §3.1.1) would be rendered
> >> useless if placed on a LAN with a legacy Assert-only implementation, because of
> >> the MUST in the first bullet of §3.3.1:
> >> 
> >>   *  When any PIM routers on the LAN have not signaled support for
> >>      Assert Packing, implementations MUST send only Asserts and MUST
> >>      NOT send PackedAsserts under any condition.
> >> 
> >> I wonder if this (the ability to completely silence such an implementation by
> >> advertising non-support for PackedAssert) represents an interesting enough
> >> attack that it's worth calling out in the Security Considerations? Perhaps this
> >> is already captured in some of the underlying spec SecCons, but I'm not sure.
> >> 
> >> ## Notes
> >> 
> >> This review is in the ["IETF Comments" Markdown format][ICMF], You can use the
> >> [`ietf-comments` tool][ICT] to automatically convert this review into
> >> individual GitHub issues.
> >> 
> >> [ICMF]: https://urldefense.com/v3/__https://github.com/mnot/ietf-comments/blob/main/format.md__;!!NEt6yMaO-gk!AamjbC1JDxyb8E4i9kuvcO7PGXay6ylzymujjZimtkQ08aQTy60N1bsPKHgIBGYbNu98RlYpLQ$
> >> [ICT]: https://urldefense.com/v3/__https://github.com/mnot/ietf-comments__;!!NEt6yMaO-gk!AamjbC1JDxyb8E4i9kuvcO7PGXay6ylzymujjZimtkQ08aQTy60N1bsPKHgIBGYbNu_MNq4P4w$
> >> 
> 

-- 
---
tte@cs.fau.de