[Idr] Re: AD review of draft-ietf-idr-bgp-car-10

Dhananjaya Rao <dhananjaya.rao@gmail.com> Tue, 21 January 2025 14:38 UTC

Return-Path: <dhananjaya.rao@gmail.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD404C180B77; Tue, 21 Jan 2025 06:38:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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 wNZvoCJb9QbO; Tue, 21 Jan 2025 06:38:21 -0800 (PST)
Received: from mail-il1-x136.google.com (mail-il1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A47A3C151539; Tue, 21 Jan 2025 06:38:21 -0800 (PST)
Received: by mail-il1-x136.google.com with SMTP id e9e14a558f8ab-3cfa9272c14so2037035ab.3; Tue, 21 Jan 2025 06:38:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737470301; x=1738075101; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FyzcqSQYu4GX6kjCpalkvHr43p3A7jPANfM9goTBkLQ=; b=mFMvgy6WRjJz1ao7muXc9FjtNtlsi26iPJAYSZcLA8ohzYsSMoUnmyHTdeFWxAMcdb T+NXP1fUyYI8pbvt5PBn7INDEL0F2w5bhMLH31L1eBIMSdjQXBVcuSP1hk6PZ3ech4xG gqCcusnVEboxWyJvYxo4643qIxeZrZBOvUf9JIJnNM61aNTsDn2FnxNup40FlpmX4GO+ 7qlNxq4lGV/gDmYy3iz2MR9OZb7GyWmx3H3XgMSdOZZ29+j9dp9RoMBWJH/odAmWe+d9 Qd8/ME+Gkl3nW3/OvOjbhGd2TxBD7auZjBFwIbbdbyJFlfdwoEt6kl911MQGZ4Fu0dZ8 Dgkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737470301; x=1738075101; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FyzcqSQYu4GX6kjCpalkvHr43p3A7jPANfM9goTBkLQ=; b=VmwFikF7ZwoKU1J4/tVwiKZ+mJMeHC3yn7CVb1l5GkJsFeosuBuKFffSNRxqAeNQnG 2fl/2fTwUZZWlsgkddBeBJ4WaPleBonDUthDgdFyh9zFsGLzdP3Se4KDKooqten4+S9d A3jmoBF6gT3NnyyTskwfL9o8vA0aTDEVCmb9DURSSx5KncO2AvWL+Dg0RQApu3IAGpPO UJmv5g25dkY9tCkhMNc+sG38XktHqVd4CHMJx8fgkpl+nYfHFs8jooCi9rbXO6OppDJ4 WE9zlDgiqAhuzzQt2btVslxumOm7QeTkY662oJVZGkf0edTH2MzNMh+GnOWSpwGRU8Ay tK1A==
X-Forwarded-Encrypted: i=1; AJvYcCVuhWG0wePDUsXwkpMWfGnzpHjlIo90O4QQqlVM+Ar2Z2Nyf/e+CiZxlGmzuJYXTpaVdEk=@ietf.org
X-Gm-Message-State: AOJu0Yyq3XCqswsyPlHRuvRfAh4JA8f0A1Gxhru/DIng6FGU7ql/IFpx UQ6PLR0+XJGBBvv8YY3GchouUCfzP97wCjreiNwn2PBt7SfA6mV0th4Do4uvxVI6yDdcFHA4Xl6 0gZYyqFz+BBizPqzi9PdbuggbwjQ9zSR/
X-Gm-Gg: ASbGnctKqnF03L9By0YXF3/fjgx2eCsofuxw1YmFJbAHS13Lx7hAxKkOm4TFNUkcz98 9tme0VMgkWz2IRRn6hfp8yE8bFHKAsoxHOC5s8U6fmvFwrdY4hRo=
X-Google-Smtp-Source: AGHT+IHwIY/KlfIJM+nPr5FoIVIM63veyHOcsX9nysjN9wfdEm09BeNbgxWiXmh+4C26DHkWAj3h/mchg4d//elGu/E=
X-Received: by 2002:a05:6e02:1f85:b0:3cf:b08e:7e91 with SMTP id e9e14a558f8ab-3cfb08e7f5bmr1827315ab.13.1737470300607; Tue, 21 Jan 2025 06:38:20 -0800 (PST)
MIME-Version: 1.0
References: <277A6369-0F6C-472D-923F-C160A501390B@juniper.net>
In-Reply-To: <277A6369-0F6C-472D-923F-C160A501390B@juniper.net>
From: Dhananjaya Rao <dhananjaya.rao@gmail.com>
Date: Tue, 21 Jan 2025 06:38:09 -0800
X-Gm-Features: AbW1kvaEuy8NmQnSccJdZhQ-NEOu4RNJxLnWvYhmeiHwoeaSXwz6tWBRDr2aHQ4
Message-ID: <CALvZiSyo-eq1dctpO54mJNhwegEcdKtS8QiAk9eCr3xQ5ZBcTA@mail.gmail.com>
To: John Scudder <jgs@juniper.net>
Content-Type: multipart/alternative; boundary="000000000000135c4b062c38542e"
Message-ID-Hash: OPLV6K7WWGW5VNKVDDZICC4HAOJCKB43
X-Message-ID-Hash: OPLV6K7WWGW5VNKVDDZICC4HAOJCKB43
X-MailFrom: dhananjaya.rao@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-idr.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "draft-ietf-idr-bgp-car@ietf.org" <draft-ietf-idr-bgp-car@ietf.org>, "idr@ietf.org" <idr@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Idr] Re: AD review of draft-ietf-idr-bgp-car-10
List-Id: Inter-Domain Routing <idr.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/0QzVi1KUATc16yEBpPPO9fl7L1w>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Owner: <mailto:idr-owner@ietf.org>
List-Post: <mailto:idr@ietf.org>
List-Subscribe: <mailto:idr-join@ietf.org>
List-Unsubscribe: <mailto:idr-leave@ietf.org>

Hi John,

Thank you for your detailed review and feedback. We will check the comments
and respond/update the draft.

Regards,
-Dhananjaya

On Mon, Jan 20, 2025 at 6:24 PM John Scudder <jgs@juniper.net> wrote:

> Hi Authors, WG,
>
> Thanks for your patience as I mostly completed this review. I say “mostly”
> because I haven’t reviewed the appendices yet. These may clear up some of
> the questions I’ve asked, and it’s also possible I may have further
> questions about the appendices, but I thought it better to get the review
> of the main body shipped off now without further delay.
>
> I’ve supplied my questions and comments in the form of an edited copy of
> the draft. Minor editorial suggestions I’ve made in place without further
> comment, more substantive questions and comments are done in-line and
> prefixed with “jgs:”. You can use your favorite diff tool to review them;
> I’ve attached the iddiff output for your convenience if you’d like to use
> it. I’ve also pasted a traditional diff below in case you want to use it
> for in-line reply.
>
> Thanks,
>
> —John
>
> --- draft-ietf-idr-bgp-car-10.txt       2025-01-20 19:28:43
> +++ draft-ietf-idr-bgp-car-10-jgs-comments.txt  2025-01-20 21:18:34
> @@ -7,6 +7,19 @@
>  Intended status: Experimental                              Cisco Systems
>  Expires: 28 October 2024                                      Co-authors
>                                                                Section 13
> ++--
> +jgs: While I applaud your creativity, please stick with the accepted
> +practice of listing additional contributors in the "Contributors"
> +section, and don't invent a new category of back-page "co-authors".
> +
> +If you'd like, you can follow the example of
> +https://www.rfc-editor.org/rfc/rfc9681.html#name-contributors
> +and include a statement such as,
> +
> +   The following people gave substantial contributions to the content of
> +   this document and should be considered as coauthors:
> +
> ++--
>                                                             26 April 2024
>
>
> @@ -17,6 +30,15 @@
>
>     This document describes a BGP based routing solution to establish
>     end-to-end intent-aware paths across a multi-domain transport
> ++--
> +jgs: I think it would be useful to state someplace early on what
> +"transport" means in the context of this document, since it will
> +also be reviewed by people who think "transport" means UDP, TCP,
> +and QUIC. This goes double for "transport layer" which is more
> +commonly understood to mean OSI reference model layer 4. That one
> +at least, I think should go in the Terminology section, I'll add
> +a stub.
> ++--
>     network.  The transport network can span multiple service provider
>     and customer network domains.  The BGP intent-aware paths can be used
>     to steer traffic flows for service routes that need a specific
> @@ -282,9 +304,16 @@
>  Internet-Draft        BGP Color-Aware Routing (CAR)           April 2024
>
>
> -    |             | concept w.r.t. routing beyond best-effort,        |
> +    |             | concept with respect to routing beyond best-effort,
>       |
>      |             | compared to intent as declarative abstraction in  |
>      |             | [RFC9315].                                        |
> ++--
> +jgs: I take it the definition is deliberately limiting. I can't
> +immediately think of something else that wouldn't be covered by
> +a combination of path, service insertion, and PHB, but I wanted
> +to check that you intend and prefer that any other (hypothetical?)
> +thing would be out of scope.
> ++--
>      +-------------+---------------------------------------------------+
>      +-------------+---------------------------------------------------+
>      | Color       | A 32-bit numerical value associated with an       |
> @@ -373,6 +402,11 @@
>      |             | IGP Flex-Algo, BGP CAR) or traditional routing/TE |
>      |             | path (e.g.  RSVP-TE, IGP/LDP, BGP-LU).            |
>      +-------------+---------------------------------------------------+
> ++--
> +jgs: Transport
> +     Transport Network
> +     Transport Layer
> ++--
>
>                                    Table 1
>
> @@ -574,7 +608,20 @@
>           for an intent (i.e, IP Prefix == Intent or Color) distinguishes
>           the color-aware route.  Color is not needed in NLRI key as a
>           distinguisher.
> ++--
> +jgs: The use of non-descriptive names is a particular bugaboo of mine.
> +E.g., I always have to go back and look up what the differences are
> +between Options A, B, and C. And let's not even start on all the
> +different BESS NLRI variants all named Type-foo.
>
> +I don't insist, but please consider whether you could use meaningful
> +names for these throughout your document and not name them after their
> +code points, which names will have no meaning to anyone not immersed in
> +the document. I acknowledge it would be a large diff set, but it's
> +potentially a straightforward search-and-replace job so not that much
> +labor.
> ++--
> +
>     *  NLRI non-key encapsulation data: Data such as MPLS label stack,
>        Label Index and SRv6 SID list associated with NLRI.  Contained in
>        TLVs as described in section 2.9.2.1 - 2.9.2.3.
> @@ -624,6 +671,10 @@
>     *  Key length field: specifies the key length.  It allows new NLRI
>        types to be handled opaquely, which permits transitivity of new
>        route types through BGP speakers such as Route Reflectors.
> ++--
> +jgs: See my comments later in the doc about needing to cover garbage
> +bits.
> ++--
>
>     *  TLV-based encoding of non-key part of NLRI: This allows the
>        inclusion of additional non-key fields for a prefix to support
> @@ -787,14 +838,21 @@
>
>
>     Additional AIGP extensions may be defined to signal state for
> -   specific use-cases: MSD along the BGP CAR route advertisement,
> +   specific use-cases: Maximum SID Depth (MSD) along the BGP CAR route
> advertisement,
>     Minimum MTU along the BGP CAR advertisement.  This is out of scope
>     for this document.
> ++--
> +jgs: One of your use cases is "along the BGP CAR route advertisement"
> +whereas the other is "along the BGP CAR advertisement". Is there some
> +subtle difference between these that led you to omit the word "route" in
> +the second? If so, please help me understand. If not, please make
> +consistent.
> ++--
>
>  2.7.  Native MultiPath Capability
>
>     The (E, C) route definition inherently provides availability of
> -   redundant paths at every BGP hop, identical to BGP-LU or BGP IP.  For
> +   redundant paths at every BGP hop identical to BGP-LU or BGP IP.  For
>     instance, BGP CAR routes originated by two or more egress ABRs in a
>     domain are advertised as multiple paths to ingress ABRs in the
>     domain, where they become equal-cost or primary-backup paths.  A
> @@ -802,6 +860,20 @@
>     locally within the domain for faster convergence, without any
>     necessity to propagate the event to upstream nodes for traffic
>     restoration.
> ++--
> +jgs: I removed a comma above, to change the shade of meaning. I think it
> +brings the paragraph closer to reality. With the comma, the impression
> +given is that vanilla BGP "inherently provides availability of redundant
> +paths at every BGP hop", which isn't true -- as we know, one of BGP's
> +core functions is path hiding.
> +
> +It would likely be good to be even clearer, as in,
> +
> +NEW:
> +   The (E, C) route definition has the same characteristics as
> +   BGP-LU or BGP IP concerning whether redundant paths are
> +   available.
> ++--
>
>     BGP ADD-PATH [RFC7911] SHOULD be enabled for BGP CAR to signal
>     multiple next hops through a transport RR.
> @@ -817,7 +889,11 @@
>     (i.e., they belong to different color domains).  Low-delay in domain
>     2 is color C2, while it is C1 in domain 1 (C1 <> C2).
>
> -   The BGP CAR solution seamlessly supports this rare scenario while
> +   The BGP CAR solution seamlessly supports this scenario while
> ++--
> +jgs: I removed "rare", it appears to be unnecessary and invites the
> +distraction of asking what data you rely on in stating it to be rare.
> ++--
>     maintaining the separation and independence of the administrative
>     authority in different color domains.
>
> @@ -829,6 +905,12 @@
>        Color-Mapping-Extended-Community (LCM-EC) of color C2.
>
>     *  A is aware (as per classic peering agreement) of the intent-to-
> ++--
> +jgs: I think you need more and different words than "classic peering
> +agreement". Probably you mean something like, "(through some out-of-band
> +means not specified here, for example, determined during the business
> +negotiation of a peering agreement)"
> ++--
>        color mapping within domain 2 ("low-delay" in domain 2 is C2).
>
>     *  A maps C2 in LCM-EC to C1 and signals within domain 1 the received
> @@ -872,8 +954,12 @@
>
>     *  In the vast majority of the cases, the color of the NLRI is used
>        for resolution and steering
> ++--
> +jgs: Similar to my comment above, maybe drop the claim of "vast majority".
> +For example, "When colors are congruent, ..."
> ++---
>
> -   *  In the rare case of color incongruence, the local color encoded in
> +   *  In the case of color incongruence, the local color encoded in
>        LCM-EC takes precedence
>
>     Operational consideratons are in Section 11.  Further illustrations
> @@ -946,9 +1032,22 @@
>
>     A route (NLRI) can carry more than one non-key TLV (of different
>     types).
> ++--
> +jgs: Your bullet above calls the trailing data "non-key fields". But
> +the sentence directly above talks about TLVs. Do you intend that
> +all NLRI, both current and future, should use a uniform TLV system
> +for extra data? If so, the trailing data should be called "non-key
> +TLVs". On the other hand if you do intend complete freedom for each
> +variant NLRI, then the sentence above needs to be revised.
>
> +Also, if you intend a uniform TLV system (and that seems like a good
> +idea to me) then consider breaking out the TLV format description
> +into its own subsection, instead of redefining it per NLRI. I'll re-
> +flag this where relevant.
> ++--
>
>
> +
>  Rao, et al.              Expires 28 October 2024               [Page 17]
>
>  Internet-Draft        BGP Color-Aware Routing (CAR)           April 2024
> @@ -967,7 +1066,20 @@
>     in an opaque manner for handling of unknown or unsupported NLRI
>     types.  This can help deployed Route Reflectors (RR) to propagate
>     NLRI types introduced in the future in a transparent manner.
> ++--
> +jgs: The problem with the way you've specified this is that with NLRI
> +formats that can have unused bits, for example all the formats you
> +have in this document, where for example a /9 prefix has 7 unused bits,
> +the values of the unused bits are uninteresting to implementations that
> +understand the format, but are very interesting to implementations
> +treating the NLRI as opaque.
>
> +So I think if you want to deliver on the promise of opaque NLRI, you
> +have to state that all bits covered by the key length MUST be
> +specified, even if it's to say that unused bits must be zero. I'll flag
> +this again later.
> ++--
> +
>     The key length also helps error handling be more resilient and
>     minimally disruptive.  The use of key length in error handling is
>     described in Section 2.11.
> @@ -1021,7 +1133,12 @@
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
>     Followed by optional TLVs encoded as below:
> ++--
> +jgs: as noted above, I suggest you specify TLV encoding once instead
> +of per NLRI type. Then you'd say "encoded as per Section foo"
> ++--
>
> +
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     |     Type      |    Length     |    Value (variable)          //
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> @@ -1072,6 +1189,11 @@
>        -  The last octet has enough trailing bits to make the end of the
>           field fall on an octet boundary.  Note that the value of the
>           trailing bits is irrelevant.  The size of the field MUST be
> ++--
> +jgs: nope, see comment above. Probably go with "trailing bits MUST be set
> +to zero" although if you want to say something about how they need not be
> +inspected by the receiver you can.
> ++--
>           less than or equal to 4 for IPv4 (AFI=1) and less than or equal
>           to 16 for IPv6 (AFI=2).
>
> @@ -1216,7 +1338,7 @@
>     provides much better packing efficiency by carrying Label Index in
>     NLRI instead of in the BGP Prefix-SID Attribute (Appendix D).
>
> -   Label Index TLV MUST not be carried in the Prefix-SID attribute for
> +   Label Index TLV MUST NOT be carried in the Prefix-SID attribute for
>     BGP CAR routes.  If a speaker receives a CAR route with Label Index
>     TLV in the Prefix-SID attribute, it SHOULD ignore it.  The BGP
>     Prefix-SID Attribute SHOULD NOT be sent with the labeled color-aware
> @@ -1244,6 +1366,13 @@
>     connectivity using Segment Routing over IPv6 (SRv6) [RFC8402].
>     [RFC8986] specifies the SRv6 Endpoint behaviors (e.g.  End PSP) which
>     MAY be leveraged for BGP CAR with SRv6.  The SRv6 SID TLV is used for
> ++--
> +jgs: The use of the RFC 2119-style MAY implies that any other endpoint
> +behaviors that may be defined elsewhere MUST NOT be leveraged. I bet you
> +don't mean that. If you don't mean to be limiting, change to "may" or
> +better still, "can". If you do mean it to be limiting, make that clear
> +with a MUST NOT clause.
> ++--
>     advertisement of color-aware routes along with their SRv6 SIDs and
>     has the following format:
>
> @@ -1261,7 +1390,7 @@
>        multiple of 16.
>
>     *  SRv6 SID Information: field of size as indicated by the length
> -      that either carries the SRv6 SID(s) for the advertised color-aware
> +      that carries the SRv6 SID(s) for the advertised color-aware
>        route as one of the following:
>
>        -  A single 128-bit SRv6 SID or a stack of 128-bit SRv6 SIDs.
> @@ -1311,6 +1440,10 @@
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
>     Followed by optional TLVs encoded as below:
> ++--
> +jgs: as noted above, I suggest you specify TLV encoding once instead
> +of per NLRI type. Then you'd say "encoded as per Section foo"
> ++--
>
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     |R|T|   Type    |    Length     |    Value (variable)          //
> @@ -1362,6 +1495,9 @@
>        -  The last octet has enough trailing bits to make the end of the
>           field fall on an octet boundary.  Note that the value of the
>           trailing bits is irrelevant.  The size of the field MUST be
> ++--
> +jgs: Again, something like "trailing bits MUST be set to zero."
> ++--
>           less than or equal to 4 for IPv4 (AFI=1) and less than or equal
>           to 16 for IPv6 (AFI=2).
>
> @@ -1371,7 +1507,18 @@
>        IP Prefix NLRI type.
>
>  2.9.4.  Local-Color-Mapping (LCM) Extended-Community
> ++--
> +jgs: Your Color-Aware Route NLRI Type ("Type-1") encodes Color as
> +part of the NLRI... presumably to optimize for packing. But by
> +carrying this mapping thingy in a path attribute, you eliminate
> +any packing advantage you created, for any route that needs to
> +carry an LCM. Hopefully it's self-evident why I say this.
>
> +Why is it both so important to protect packing that you make color
> +a first-class part of the NLRI, but yet also so unimportant that
> +you abandon it when the route crosses an AS boundary?
> ++--
> +
>     This document defines a new BGP Extended-Community called "LCM".  The
>     LCM is a Transitive Opaque Extended-Community with the following
>     encoding:
> @@ -1418,7 +1565,32 @@
>     If two BGP paths for a route have different LCM values, it is
>     considered an error and the route is not considered for bestpath
>     selection.
> ++--
> +jgs: I think you mean "... routes for a prefix" or "... routes for a
> +destination". As a reminder, "route" has a well-defined meaning in BGP.
> +From RFC 4271:
>
> +   Route
> +      A unit of information that pairs a set of destinations with the
> +      attributes of a path to those destinations.  The set of
> +      destinations are systems whose IP addresses are contained in one
> +      IP address prefix carried in the Network Layer Reachability
> +      Information (NLRI) field of an UPDATE message.  The path is the
> +      information reported in the path attributes field of the same
> +      UPDATE message.
> +
> +That also implies it should be "... the destination is not considered".
> +
> +But apart from getting the terminology right, I am also concerned with
> +the dynamics this implies. If I understand you right, if I have route A
> +for destination D with LCM blue, that's fine and it's installed. If
> +route B for destination D with LCM green comes along, now neither route
> +can be considered and I have to uninstall route A. If route A is later
> +withdrawn, now I can install route B. Is that right? If so, why shouldn't
> +that be concerning to me? For that matter, does it open a new security
> +implication that should be reported in the Security Considerations?
> ++--
> +
>     If present, LCM-EC contains the intent of a BGP CAR route.  LCM-EC
>     Color is used instead of the Color in CAR route NLRI for procedures
>     described in earlier sections such as route validation (Section 2.4),
> @@ -1464,7 +1636,7 @@
>     in Section 2.8, and an example is given in Appendix B.3.
>
>     Both LCM-EC and BGP Color-EC may be present at the same time with a
> -   BGP CAR route.  For axample, a BGP CAR route (E, C1) from color
> +   BGP CAR route.  For example, a BGP CAR route (E, C1) from color
>     domain D1, with LCM-EC C2 in color domain D2, may also carry Color-EC
>     C3 and next hop N in a transit network domain within D2 where C2 is
>     being resolved via an available intra-domain intent C3 (See the
> @@ -1576,6 +1748,9 @@
>        considered invalid and not eligible for best path selection.
>        Treat-as-withdraw may be used, though it is recommended to keep
>        the NLRI for debugging purposes.
> ++--
> +jgs: Can you help me understand why the T bit is crucial here?
> ++--
>
>  3.  Service Route Automated Steering on Color-Aware Path
>
> @@ -1589,6 +1764,15 @@
>
>     An egress PE may request intent through the transport for service
>     routes using the BGP Color-EC [RFC9012].  An ingress PE steers
> ++--
> +jgs: The phrasing of the first sentence is ambiguous. This is because
> +of the overloading of the word "transport". Even ignoring the OSI Layer 4
> +meaning, this document uses it to mean *at least* two things, one being
> +a layer in the packet forwarding virtualization hierarchy, and the other
> +being the control plane. If you could rewrite the sentence without using
> +the word "transport" that would probably fix it, or anyway, please
> +help me understand what you mean.
> ++--
>     service traffic over a CAR Type-1 route using the service route's
>     next hop and BGP Color-EC.
>
> @@ -1597,6 +1781,10 @@
>     [RFC9256].  All the steering variations described in [RFC9256] are
>     applicable to BGP CAR color-aware path: on-demand steering, per-
>     destination, per-flow, CO-only.  For brevity, please refer to
> ++--
> +jgs: What's "CO-only"? You haven't defined "CO" anywhere, and it's also
> +not defined in RFC 9256.
> ++--
>     [RFC9256] Section 8.
>
>     Appendix A provides illustrations of service route automated steering
> @@ -1604,6 +1792,9 @@
>
>     An egress PE may request intent through the transport for service
>     routes by allocating the SRv6 Service SID from a routed intent-aware
> ++--
> +jgs: see my comment above.
> ++--
>     locator prefix (Section 3.3 of [RFC8986]).  Steering at an ingress PE
>     is via resolution of the Service SID over a CAR Type-2 IP Prefix
>     route.  Service Steering over BGP CAR SRv6 transport is described in
> @@ -1627,6 +1818,9 @@
>
>
>     RTC [RFC4684] may also be applied to the CAR SAFI, where Route Target
> ++--
> +jgs: please expand "RTC"
> ++--
>     ECs [RFC4360] can be used to constrain distribution of CAR routes.
>     RT assignment may be via user policy, for example an RT value can be
>     assigned to all routes of a specific color.
> @@ -1663,7 +1857,16 @@
>
>     On-demand subscription and filtering procedures are outside the scope
>     of this document.
> ++--
> +jgs: I'm bamboozled by this section. If it's out of scope, why have the
> +section at all?
>
> +On the other hand, if you do want to keep the section, it seems to be
> +not up to snuff -- it doesn't provide enough detail, by a long chalk.
> +So I'd say either remove the section (easy, quick) or let's have a
> +conversation about how to fix it (not easy, not quick).
> ++--
> +
>  5.  Scaling
>
>     This section analyses the key scale requirement of
> @@ -1750,7 +1953,10 @@
>
>     *  When a transport RR is used within the domain or across domains,
>        ADD-PATH is enabled to advertise paths from both egress BRs to
> -      it's clients.
> +      its clients.
> ++--
> +jgs: What's a "transport RR"? Define or reword.
> ++--
>
>     *  Egress PE E2 advertises a VPN route RD:V/v with BGP Color extended
>        community C1 that propagates via service RRs to ingress PE E1.
> @@ -2140,6 +2346,10 @@
>        most complex data-plane option for the ingress PE.
>
>  5.4.  Scaling Benefits of the (E, C) BGP Subscription and Filtering
> ++--
> +jgs: per my comments on Section 4.1, either remove this section, or
> +let's do the work to fix Section 4.1.
> ++--
>
>     The (E, C) subscription scheme from Section 4.1 provides the
>     following theoretical scaling benefits for the models in Section 5.2
> @@ -2262,6 +2472,9 @@
>        PEs.
>
>     *  An IP Prefix CAR route (Type-2) is defined to distribute SRv6
> ++--
> +jgs: Thank you for using a meaningful name here!
> ++--
>        locator prefixes and described in Section 2.9.3 and Section 8.
>
>     *  A BGP CAR advertised SRv6 locator prefix may also be used for
> @@ -2559,6 +2772,13 @@
>     route/NLRI.  When traversing network domain(s) where a different
>     intent/color is used for next-hop resolution, BGP Color-EC may
>     additionally be used as in Section 2.10.
> ++--
> +jgs: This reminder actually reminds me that I find the overlap (not to
> +say conflict) between LCM-EC and Color-EC to be confusing. For now I'm
> +suspending judgment so I can ship this review, but TBH I'm still trying
> +to make sense of it and hoping the appendices (not yet reviewed) will
> +help me.
> ++--
>
>     A special case of intent is best-effort which may be represented by a
>     color and follow above procedures.  But to be compatible with
> @@ -2676,7 +2896,10 @@
>     different customers being advertised by the PE.
>
>  9.1.  Format and Encoding
> -
> ++--
> +jgs: Is it true that in all cases RD has to be zero? If so, why
> +are we burning 8 bytes for sending constant zero?
> ++--
>     BGP VPN CAR SAFI leverages the BGP multi-protocol extensions
>     [RFC4760] and uses the MP_REACH_NLRI and MP_UNREACH_NLRI attributes
>     for route updates by using the SAFI value 84 along with AFI 1 for
> @@ -2721,7 +2944,12 @@
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
>     Followed by optional TLVs encoded as below:
> ++--
> +jgs: as noted above, I suggest you specify TLV encoding once instead
> +of per NLRI type. Then you'd say "encoded as per Section foo"
> ++--
>
> +
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     |R|T|  Type     |    Length     |    Value (variable)          //
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> @@ -2736,6 +2964,11 @@
>
>     *  Route Distinguisher: An 8-octet field encoded according to
>        [RFC4364].
> ++--
> +jgs: per my question above, if RD really is always zero in this
> +application, then state MBZ here. (But then I still want to know why
> +we even have this field.)
> ++--
>
>
>
> @@ -2766,7 +2999,12 @@
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
>     Followed by optional TLVs encoded as below:
> ++--
> +jgs: as noted above, I suggest you specify TLV encoding once instead
> +of per NLRI type. Then you'd say "encoded as per Section foo"
> ++--
>
> +
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>     |R|T|   Type    |    Length     |    Value (variable)          //
>     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> @@ -2780,6 +3018,9 @@
>        the RD, Prefix Length field and IP Prefix field.
>
>     *  Route Distinguisher: 8 octet field encoded according to [RFC4364].
> ++--
> +jgs: Same question as earlier.
> ++--
>
>     *  Type-Specific Non-Key Fields: Encoded as per Type-Specific Non-Key
>        Fields of IP Prefix NLRI Type in Section 2.9.3.  Label TLV, Label
> @@ -2806,8 +3047,8 @@
>
>     IANA has assigned SAFI value 83 (BGP CAR) and SAFI value 84 (BGP VPN
>     CAR) from the "SAFI Values" sub-registry under the "Subsequent
> -   Address Family Identifiers (SAFI) Parameters" registry with this
> -   document as a reference.
> +   Address Family Identifiers (SAFI) Parameters" registry. IANA is
> requested
> +   to update the reference to this document.
>
>  10.2.  BGP CAR NLRI Types Registry
>
> @@ -2896,13 +3137,21 @@
>
>     *  Check IDR implementation reports for two implementation of new
>        non-Key TLV type.
> +
> ++--
> +jgs: For both of the above I suggest adding something like,
>
> +   *  Check that all bits of the key portion are defined, unused
> +      subfields MUST have required values (e.g. must be zero).
> ++--
> +
>  10.5.  BGP Extended-Community Registry
>
>     IANA has assigned the sub-type 0x1b for "Local Color Mapping (LCM)"
>     in the "Transitive Opaque Extended Community Sub-Types" registry
>     located in the "Border Gateway Protocol (BGP) Extended Communities"
> -   registry group.
> +   registry group. IANA is requested to update the referent to this
> +   document.
>
>
>
> @@ -2941,7 +3190,7 @@
>     conflicts in either network (Appendix A.7).
>
>     It should be noted that the color assignments coordination are only
> -   necessary for routes specific to the shared service IP.  Colors used
> +   necessary for routes specific to the shared service IP address.
> Colors used
>     for intra-domain or for inter-domain intents associated with unique
>     IP addresses do not need any coordination.
>
> @@ -2989,6 +3238,14 @@
>     routing information carried within a new SAFI, BGP origin validation
>     [RFC6811] and BGPsec [RFC8205] could be used as means to increase
>     assurance that the information has not been falsified.
> ++--
> +jgs: I don't think BGPsec does what you think it does. BGPsec signs the
> +AS path, period. It doesn't protect anything else carried within the
> +message. Similarly, origin validation only tells me that the origin AS
> +is the one that matches the prefix in the NLRI. Can you help me
> +understand how these would "mitigate any risk of manipulating the
> +routing information carried within a new SAFI"?
> ++--
>
>     Since CAR SAFI is a separate BGP SAFI that carries transport or
>     infrastructure routes for routers in the operator network, it
> @@ -3031,8 +3288,18 @@
>     Furthermore, as long as the filtering and appropriate configuration
>     mechanisms discussed above are applied diligently, risk of the
>     diversion of the traffic is eliminated.
> ++--
> +jgs: It's awfully daring to say a "risk ... is eliminated", especially
> when
> +the "elimination" is through the hard crunchy exterior, completely trusted
> +interior security model. I would suggest deleting the "furthermore"
> sentence
> +which is likely to draw fire and doesn't seem needed.
> ++--
>
>  13.  Co-authors
> ++--
> +jgs: As noted up top, please make this part of your Contributors section,
> +optionally inserting a statement such as I provided.
> ++--
>
>     Clarence Filsfils
>     Cisco Systems
> @@ -3113,6 +3380,16 @@
>
>     The authors would like to acknowledge the review and inputs from many
>     people.TBD
> ++--
> +jgs: There can't be any TBD in a document I take for IESG review (other
> than
> +placeholders for code point allocations). Please finish.
> +
> +BTW I noticed that the final paragraph of your Security Considerations is
> +almost verbatim identical to the final paragraph of
> draft-ietf-idr-bgp-ct-33.
> +I have no idea who cribbed from whom, or if the paragraph came from a
> third
> +party, but take this as a suggestion to consider acknowledging sources of
> +things like that. (I'll also make this suggestion to the authors of
> bgp-ct.)
> ++--
>
>  16.  References
>
>
>
>
>