Re: [pim] AD Review of draft-ietf-pim-assert-packing-05
Alvaro Retana <aretana.ietf@gmail.com> Thu, 16 February 2023 01:52 UTC
Return-Path: <aretana.ietf@gmail.com>
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 CF507C13A04F; Wed, 15 Feb 2023 17:52:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nvk-EKRJiF-u; Wed, 15 Feb 2023 17:52:19 -0800 (PST)
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 AAD9EC14CE31; Wed, 15 Feb 2023 17:52:19 -0800 (PST)
Received: by mail-pl1-x630.google.com with SMTP id h4so556107pll.9; Wed, 15 Feb 2023 17:52:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:from:to:cc:subject:date :message-id:reply-to; bh=G0w+p6NmsEdgbYt88ytaMRbSfZ/gCuodq689DZFa3eU=; b=Xjt9gsZFsfB5shj5oeqDk2QhtIV8OAGQwk6Nl9xQApMJktkTjD45QsDwfi6rUUMi0a u+PGAz5P1s0lcQMo3Q5v446rGTWINh6DWUZZ+RBspoowmUpu2oTpPYFqiyHcZVpxsmKW eynYN01aNalLtsrrV6ooAjX7ik6jw61Gvyj8plGBOlh6m3j+5BnWXzhuSCnJWCS81Gbr bgz4wB1aoDCyyNRsi1qLnkAo+/+oRIdZUwNCUjCVSHtntH3MdVJwHoedDKGwzWoB2FIc D02OEUKnPVjuSTdL68ywrXUSUIoWGVRMQ8y+D3UMUHydgFGFxDsX0Une66mppUhKsyXN Hkvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=G0w+p6NmsEdgbYt88ytaMRbSfZ/gCuodq689DZFa3eU=; b=BV/EiDgFJg5Ee9sTYnttP9kF2wBpi6tYuRQFPcN5mG1DZtXRMyzsrKecPeLfOe6sII NwICY9+R05X4z+2+GGZjd2A/0DJkioYL7dn+ziTYCe/ELSQR/WjP2mZYxN1B+ud1ZpMx dkGR7mBSulHDD1Vyn/DaL9ap7UGCEJzhurwI6TC9q/7Q5zJ8lD/t1qkT9jjiNy4dZ0cr 8tx+04QL9bYpbCtuOxZKso0fZ9OvC/gj1b9SXt4x0SDIfvTW08rHex+o0gGRtBejFrHx 7JpzkTkYRK/GHMzEh27m4yM43ZetWWmPJ5vggpJIJMnoGibEkdqCkdyNZyJ7PwicXPhZ 71bg==
X-Gm-Message-State: AO0yUKX4VAiYIwSgrvnsJkTn+reI+JAl3wXqo08RlhiJAe7Uu0p0MIQG 9RBbWzsiBejNXDEJ7ObIzicG7p7WArYc9trN1co=
X-Google-Smtp-Source: AK7set8YqZlxqIbx+C+OJu5P5D7+4M2q0UY7WeOjOAqwXOT2JuAL73fLXHYhVEpuP1QSbJ2/7QTNMaSjMUGOsQDaUTY=
X-Received: by 2002:a17:90b:4b48:b0:233:f75c:b272 with SMTP id mi8-20020a17090b4b4800b00233f75cb272mr168813pjb.4.1676512338081; Wed, 15 Feb 2023 17:52:18 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Wed, 15 Feb 2023 19:52:16 -0600
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <Y+Z4YknJgc6XwbwB@faui48e.informatik.uni-erlangen.de>
References: <Y+Z4YknJgc6XwbwB@faui48e.informatik.uni-erlangen.de>
MIME-Version: 1.0
Date: Wed, 15 Feb 2023 19:52:16 -0600
Message-ID: <CAMMESsxdncmo1hmNnbZuTK9_OB8EYxcaQ=EwXEOJ=ZNJcbx=mw@mail.gmail.com>
To: Toerless Eckert <tte@cs.fau.de>
Cc: pim-chairs <pim-chairs@ietf.org>, draft-ietf-pim-assert-packing@ietf.org, Stig Venaas <stig@venaas.com>, pim@ietf.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/GsKq9bB2a6yDdM9DvAUGCWthdEI>
Subject: Re: [pim] AD Review of draft-ietf-pim-assert-packing-05
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: Thu, 16 Feb 2023 01:52:23 -0000
On February 10, 2023 at 12:01:26 PM, Toerless Eckert wrote: Toerless: Hi! > Please consider posted draft-ietf-pim-assert-packing-07 to be answering and > solving all your concerns. And thanks a lot for the thorough review! The update looks a lot clearer, thanks! I still have some comments inline for -07 (below). I provided text suggestions for most of them. To start the IETF Last Call, I need you to submit a new draft without the Updates tag and without references to RFC3973. To accelerate the process, you can consider all other points as last call comments. Thanks! Alvaro. [Line numbers from idnits.] 2 PIM Y. Liu, Ed. 3 Internet-Draft China Mobile 4 Updates: RFC7761, RFC3973 (if approved) M. McBride [major] No. This draft doesn't formally Update either. ... 193 3.1. PIM Hello Assert Packing Option 195 The PIM Assert Packing Hello Option (Section 4.1) is used to announce 196 support for the assert packing mechanisms specified in this document. 197 PackedAssert messages (Section 3.2) MUST only be sent when all PIM 198 routers in the same subnet announce this option. [major] "MUST only" I've never liked this construct because it seems to require an optional extension. In this case, the PackedAssert can only be used when the Option is announced by everyone -- but even then it is not required, right? IOW, even if everyone supports PackedAsserts a router may chose to send the old ones. Suggestion> PackedAssert messages (Section 3.2) MUST NOT be used unless all PIM routers in the same subnet announce this option. 200 3.2. Assert Packing Message Formats 202 The message body of an {RFC7761}}, Section 4.9.6, PIM Assert message, 203 except for its first four bytes of header, describes the parameters 204 of a (*,G) or (S,G) assert through the following information 205 elements: R(PT), Source Address, Group Address, Metric and Metric 206 Preference. This document calls this information an assert record. [] The "an {RFC7761}}, Section 4.9.6, PIM Assert message" formatting caught my attention... Suggestion> The PIM Assert message, as defined in Section 4.9.6 of [RFC7761], describes the parameters of a (*,G) or (S,G) assert through the following information elements: R(PT), Source Address, Group Address, Metric and Metric Preference. This document calls this information an assert record. Expand RPT. 208 Assert packing introduces two new PIM Assert message encodings 209 through the allocation and use of two [RFC8736] specified flags in 210 the PIM Assert message header, the P)acked and the A)ggregated flag. [] "two [RFC8736] specified flags in the PIM Assert message header" This sounds as if the new flags are specified in rfc8736. Also, I really don't like the notation "P)acked and the A)ggregated". Suggestion> Assert packing introduces two new PIM Assert message encodings through the allocation and use of two flags in the PIM Assert message header [RFC8736], the Packed (P) and the Aggregated (A) flags. 212 If the P)acked flag is 0, the message is a (non-packed) PIM Assert 213 message as specified in [RFC7761]. See Section 4.2. In this case, 214 the A)ggregated flag MUST be set to 0. If the P)acked flag is 1), 215 then the message is called a PackedAssert message and the type and 216 hence encoding format of the payload is determined by the A)ggregated 217 flag. [major] "A)ggregated flag MUST be set to 0" What should a receiver do if P=0 but A=1? I see two options: assume that A was set by mistake and parse only one record, or ignore the message. ... 246 RP Aggregation Records provide a more compact encoding than the 247 Simple PackedAssert message format for (*,G) flows. The Source 248 Address option is optionally used by [RFC7761] assert procedures to 249 indicate the source(s) that triggered the assert, otherwise it is 0. [] s/option is optionally/is optionally ... 258 3.3. PackedAssert Mechanism 260 PackedAsserts do not change the [RFC7761] PIM assert state machine 261 specification. Instead, sending and receiving of PackedAssert 262 messages as specified in the following subsections is logically a 263 layer in between sending/receiving of Assert messages and 264 serialization/deserialization of their respective packets. There is 265 no change in in the information elements of the transmitted 266 information elements constituting the assert records not their 267 semantics. Only the compactness of their encoding. [nit] s/in in/in [nit] s/not their/nor their 269 3.3.1. Sending PackedAssert messages 271 When using assert packing, the regular [RFC7761] Assert message 272 encoding with A=0 and P=0 is still allowed to be sent. Router are 273 free to choose which PackedAssert message type they send. If a 274 router chooses to send PacketAssert messages, then it MUST comply to 275 the requirements in the remainder of this section. Implementations 276 SHOULD NOT send only Asserts (but no PackedAsserts) in all cases when 277 all routers on the LAN do support Assert Packing. [nit] s/Router are/Routers are [major] "If a router chooses to send PacketAssert messages, then it MUST comply to the requirements in the remainder of this section." This sentence is not needed because otherwise we don't need this document. It is implicit that PackedAsserts are specified here. Please take it out. [major] "Implementations SHOULD NOT send only Asserts (but no PackedAsserts) in all cases when all routers on the LAN do support Assert Packing." I guess that you mean that (at least) there should be a mix of Asserts and PackedAsserts, right? If so, how do you normatively enforce that? IOW, if "Assert message encoding with A=0 and P=0 is still allowed to be sent" then this seems like a contradiction. This sentence should be removed, it should be made non-normative (s/SHOULD NOT/should not), or the exceptions should be explained. 279 Routers SHOULD specify in documentation and/or management interfaces 280 (such as a YANG model), which PackedAssert message types they can 281 send and under which conditions they do - such as for data-triggered 282 asserts or Assert Timer (AT) expiry based asserts. [major] "Routers SHOULD specify" Routers can't specify anything! Maybe: "Implementations are expected to specify..." [] In general, this paragraph says that several things are out of scope and that they are implementation-specific. Say that! Suggestion> The details of when PackedAssert messages are used are implementation-specific and out of scope of this document. Implementations are expected to describe the types of PackedAssert messages they can use and under which conditions, including considerations for data-triggered and AT expiration. 284 To send a PackedAssert message, when a PIM router has an assert 285 record ready to sent according to the pseudocode "send Assert(...)" 286 in [RFC7761], it will not immediately proceed in generating a PIM 287 Assert message from it. Instead, it will remember it for assert 288 packing and proceed with PIM assert processing for other (S,G) and 289 (*,G) flows that will result in further (S,G) or (*,G) assert records 290 until one or more of the following conditions is met and only then 291 send the PackedAssert message(s). [major] There is no "send Assert(...)" pseudocode in rfc7761. Instead "send Assert()" is used as an action. Suggestion> To send a PackedAssert message, following the pseudocode in Section 4.6 of [RFC7761], a PIM router MAY delay the "send Assert(...)" action and continue PIM assert processing for other flows that may result in additional (S,G) or (*,G) assert records. The following text discusses several considerations to be taken into account. 293 1. RECOMMENDED: Further processing would cause additional delay for 294 sending the PackedAssert message. 296 2. OPTIONAL: Further processing would cause "relevant"(*) delay for 297 sending the PackedAssert message. 299 3. OPTIONAL: The router has packed a "sufficient"(*) number of 300 assert records for a PackedAssert message. 302 4. There is no further space left in a possible PackedAssert message 303 or the implementation does not want to pack further assert 304 records. 306 (*) "relevant" and "sufficient" are defined in this section below. [] I don't specially like the bullets above because RECOMMENDED/OPTIONAL have specific Normative meaning and they point to some implementation and/or scenario-specific meaning. Instead, I think that the explanation below is much better in providing guidance -- it even includes some Normative language that could be in conflict (or at least hard to interpret) with the above. In summary, I suggest that you don't include the bullets and just jump in the the text below. 308 Avoiding additional relevant delay is most critical for asserts that 309 are triggered by reception of data or reception of asserts against 310 which this router is the assert winner, because it needs to send out 311 an assert to the (potential) assert looser(s) as soon as possible to 312 minimize the time in which duplicate IP multicast packets can occur. [] Suggestion> Avoiding delay is most critical for asserts that are triggered by reception of data or reception of asserts against which the router is in the "I am Assert Winner" state. In these cases the router SHOULD send out an assert as soon as possible to minimize the time in which duplicate IP multicast packets can occur. 314 To avoid additional delay in this case, the router SHOULD employ 315 appropriate assert packing and scheduling mechanisms, such as for 316 example the following. [major] "SHOULD employ appropriate assert packing and scheduling mechanisms, such as for example" SHOULD is a strong Normative keyword. In this case the mechanisms are not specified (making it really hard to verify compliance) and what follows are examples. s/SHOULD/should ... 336 An example mechanism to allows packing of AT expiry triggered assert 337 records on assert winners is to round the AT to an appropriate 338 granularity such as 100msec. This will cause AT for multiple (S,G) 339 and/or (*,G) states to expire at the same time, thus allowing them to 340 be easily packed without changes to the assert state machinery. [nit] s/to allows/to allow ... 363 When Asserts are sent, a single packet loss will result only in 364 continued or new duplicates from a single IP multicast flow. Loss of 365 (non AssertCancel) PackedAssert impacts duplicates for all flows 366 packed into the PackedAssert and may result in the need for re- 367 sending more than one Assert/PacketAssert, because of the possible 368 inability to pack them. Routers SHOULD therefore support mechanisms 369 allowing for PackedAsserts and Asserts to be sent with an appropriate 370 DSCP, such as Expedited Forwarding (EF), to minimize their loss, 371 especially when duplicate IP multicast packets could cause congestion 372 and loss. [] "result in the need for re-sending more than one Assert/PacketAssert, because of the possible inability to pack them." The last phrase (after the comma) seems to just be trailing and not needed. [] s/Routers SHOULD therefore support/Therefore, routers SHOULD support 374 Routers MAY support a configurable option for sending PackedAssert 375 messages twice in short order (such as 50msec apart), to overcome 376 possible loss, but only a) if the total size of the two PackedAsserts 377 is less than the total size of equivalent Assert messages, and b) if 378 the [RFC7761] conditions that caused the assert records in the 379 PackedAssert message make the router believe that reception of either 380 copies of the PackedAssert message will not trigger sending of 381 Assert/PackedAssert. [major] "Routers MAY support a configurable option...but only a)...and b)" The text sounds as if the support for the configuration depends on a and b. Perhaps split the sentence: (optional configuration) + (conditions under which the action may take place). [] Also, condition b seems unimplementable because it depends on it making "the router believe" (guessing!)... Please rephrase with something more specific. ... 398 Like "relevant", "sufficient" is highly implementation dependent and 399 hence only optional. [] This last sentence is not needed. ... 408 4. Packet Formats 410 This section describes the format of new PIM messages introduced by 411 this document. [nit] The first one is not a message. s/messages/extensions 413 4.1. PIM Assert Packing Hello Option [minor] Please add a note to indicate where the format of the Hello Options is defined (Section 4.9.2/rfc7761). ... 429 4.2. Assert Message Format 430 0 1 2 3 431 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 433 |PIM Ver| Type | Reserved |A|P| Checksum | 434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 435 | Group Address (Encoded-Group format) | 436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 437 | Source Address (Encoded-Unicast format) | 438 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 439 |R| Metric Preference | 440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 441 | Metric | 442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 444 Figure 2: Assert [major] Instead of copying the packet from rfc7761, you want to show it with the header from Figure 1/rfc8736: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |PIM Ver| Type | Flag Bits | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The same applies to the other headers. 446 When assert packing is used on a subnet, routers MUST send Assert 447 messages according to above format. This is exactly the same format 448 as the one defined in [RFC7761] but the A and P flags are not 449 reserved, but distinguish this Assert Message Format from those newly 450 defined in this document. [major] "MUST send Assert messages according to above format" This specification should require the use of the Assert message from rfc7761 *with* the bits set to 0...and not what someone may interpret as a new or potentially different message. Suggestion> Figure 2 shows a PIM Assert message as specified in Section 4.9.6 of [RFC7761] with the common header showing the Flag Bits [RFC8736] and the location of the P and A flags. As specified in Section 3.2, both flags in a (non-packed) PIM Assert message are required to be set to 0. [You can eliminate the rest of this section.] 452 * P)acked: MUST be 0. 454 * A)ggregated: MUST be 0. 456 All other field according to [RFC7761], Section 4.9.6. ... 720 5. Updates from RFC3973 and RFC7761 [] We don't need this section at all. The Introduction already "scopes" the work to PIM-SM. Please take it out. ... 733 [RFC-Editor: pls. remove this sentence: RFC3973 should be historic by 734 now, and it is only mentioned at all because of the fact that the 735 "PIM Message Type Registry" mentions it, and this document mentions 736 that registry. Depending on IETF/IESG review, the authors would 737 prefer if we could remove all mentioning of RFC3973 in this document, 738 because it may just confuse readers.] [] Please ask the WG to change the status of rfc3973. In this case we might need a document to clean up the registries. https://www.ietf.org/about/groups/iesg/statements/designating-rfcs-historic-2014-07-20/ 740 6. IANA Considerations [minor] Put the request before the table. 742 +======+========================+===============+ 743 | Type | Description | Reference | 744 +======+========================+===============+ 745 | TBD |Packed Assert Capability| This Document | 746 +======+========================+===============+ 748 Figure 9 [major] The registry includes 4 columns: Value, Length, Name, and Reference. https://www.iana.org/assignments/pim-parameters/pim-parameters.xhtml#pim-parameters-1 750 IANA is requested to allocate a new code points from the "PIM-Hello 751 Options" registry for TBD. [] Suggestion> IANA is requested to assign a new code point from the "PIM-Hello Options" registry for the Packed Assert Capability as follows: ... 763 IANA is asked to add the definition of the Aggregated and Packed 764 Flags Bits for the PIM Assert Message Type to the "PIM Message Types" 765 registry according to [RFC8736] IANA considerations, and as shown in 766 Figure 9. [] Suggestion> IANA is requested to assign two Flag Bits in the Assert message from the "PIM Message Types" registry as follows: [EoR -07]
- [pim] AD Review of draft-ietf-pim-assert-packing-… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- [pim] tools-discuss/gmail+ietf mail problems: Re:… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Yisong Liu
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Stig Venaas
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Stig Venaas
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Stig Venaas
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Stig Venaas
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Alvaro Retana
- Re: [pim] AD Review of draft-ietf-pim-assert-pack… Toerless Eckert