[Idr] Re: draft-decraene-idr-nlri-error-handling-00.txt

Robert Raszuk <robert@raszuk.net> Tue, 21 October 2025 09:39 UTC

Return-Path: <robert@raszuk.net>
X-Original-To: idr@mail2.ietf.org
Delivered-To: idr@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 1B9FB79655AA for <idr@mail2.ietf.org>; Tue, 21 Oct 2025 02:39:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=raszuk.net
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ru3U4uSMfi9e for <idr@mail2.ietf.org>; Tue, 21 Oct 2025 02:39:32 -0700 (PDT)
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 mail2.ietf.org (Postfix) with ESMTPS id A394D7965444 for <idr@ietf.org>; Tue, 21 Oct 2025 02:38:21 -0700 (PDT)
Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-63c2d72581fso6568051a12.0 for <idr@ietf.org>; Tue, 21 Oct 2025 02:38:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raszuk.net; s=google; t=1761039501; x=1761644301; 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=2WnOPXnmXnafdZSMP7DcYKuMc2mEaUwbDPitRaMh1ww=; b=NIDTsB6x4IJ7VCzWLfMCDtBXybM447lOTTf9M/MtbSyY4ZFzvPg37XSQlGR+T/eEji oyK/8A4Int+NDqrL04EOwnwLIKc1W170Jd9/LinynJrfHngmOvsDXDShqvo/4Dhz4xqe /STmyHWjZQu0RkqukOtCbth5FMxc2R9R+j2b1HT1ILoVdx6chCvsiz9UMJ2VUNKLtvFR cx9mpe7CCeCLzkAhPtfm47JlJa3lrRAqMUbekjUXF76b/LtBa6jgiCBWGLO9girq3UxC uS1jwkuJZxyDv12WwGeJIA6QGr1f+i19h/Ld46bAF9sQ3HD/rWiLFc3eryBVr1wWxdZ3 FtvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761039501; x=1761644301; 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=2WnOPXnmXnafdZSMP7DcYKuMc2mEaUwbDPitRaMh1ww=; b=k6PEWmgbYMEZklScBxG0WIKOqTkcm1VRax+qQ5w/91/XCPl7jUg7aK0RgoY2BT/NNl 0Xc3L+pe+AJ5eP25v8YbaZfNx2f6vPiCva7YPMXX8/EZunN1CQSLN8wSGMSLS6mJfHjq 0kT4AavUyEuc/BlyGLdlpZ/y8ouxUkkmPSk7+SuoysM97+9ktD6oTkOLDEragltzPTD8 HLp5iQ5IWz9Ucqy+j8MBaS8JDCH24vKBRNvKp9Qb0mYzomlwCB5Zfv6x+fvO6x39dUtX wuq19ouKc2bpYoWn2K1fXbNW6gb6V/Caip8DENrbUdaFBqFpo8Rc6GsidsZtPGrpQhGj a1SQ==
X-Forwarded-Encrypted: i=1; AJvYcCXJh0O7PYpGzuSrPFUH4iwbRdPN4HZNS2hhu6MtsFYH8c3PnlYh2mSD7l918pGot/lV6d0=@ietf.org
X-Gm-Message-State: AOJu0YzJvb53C+Zvahod64AB7i9qKq8c1sverqhgu69fnRH2u0hBsCCx zLocKawuIANuyUWWs30wNLgxAFzPQON+QDKc5HfWpdu9vYvrxAmHd8u5f6CLRkSiE7+oXR3PkMr 2BX4FH7FGcQeZA1WPGCVZo8S3ayUvBI5JEqCbRPHBjg==
X-Gm-Gg: ASbGncvXO0lRnofTsj7bHOvwJGGIo6hjaR3OTDI2umIAsoMMaEGiVv/a9WDhfBr6Unm EvMJEXxyyoifwGqvTHSEIysYbgr05NZShInj53Nuc0tAsNyoTqHluBzs/1OZo7CwZuP4+KH66V4 Jo2J7wZS4UnDwogtgCI4wlwfRH30ATXrbw1SlRc5UIDqaCRUxnARGsiY+BV1SLSBey++E7VBphn fhm7LUyz0ZCnBHPDOhaAqWfzKiLSBas0XGu9Vymx5ZRS1nEjUUpaH1ZUsNcc0PGw+DqPY8=
X-Google-Smtp-Source: AGHT+IHFDEh3rFHiEb4YzvxsCAUQTQFBlALtyVZegWDA6oJZQErxSjYAzwIwgXIJPPcRoQ57+nDQxU20fpvcLayOk8A=
X-Received: by 2002:a05:6402:5cb:b0:639:fca4:c471 with SMTP id 4fb4d7f45d1cf-63c1f6e04eemr15824548a12.28.1761039500121; Tue, 21 Oct 2025 02:38:20 -0700 (PDT)
MIME-Version: 1.0
References: <176053803383.1109285.4613858825382469856@dt-datatracker-84f8f646b-tg6mn> <MR1P264MB4354CE655479696D589F8050F0E8A@MR1P264MB4354.FRAP264.PROD.OUTLOOK.COM> <CAPF+HwVb_Mb9C79SfVtTP=rxMjNK8CTEKOAFsXbx__8FwJ+RLw@mail.gmail.com> <AB42F105-6FD2-40C6-88DB-FDD33EF8A9BA@juniper.net> <CAPF+HwX_D5_Y88MQrerY+bPRY_V4QB=LG7nZY75skzntfT0G2g@mail.gmail.com> <F93E64FE-DE2C-47C6-B69F-267A69503140@juniper.net> <CAPF+HwX9VVNk26E-6NFphy-FV6vtyDkVBFQNPdghGw4yJCudfw@mail.gmail.com> <5656EE4B-764B-46EF-BE6A-7D2E657DDA6F@juniper.net> <CAOj+MMFT3qOENbcJ5Ctp9PQxhsrgzPM852_sOZTUWq83kZqZ6g@mail.gmail.com> <MR1P264MB4354DE951D947A766EDBFE8FF0F6A@MR1P264MB4354.FRAP264.PROD.OUTLOOK.COM> <CAOj+MMGypHqRt5OHWW62P-_PEiGhAJ0DHNA33WNT2ZwUoN5-tg@mail.gmail.com> <MR1P264MB4354ECB1758B24F266A622ECF0F5A@MR1P264MB4354.FRAP264.PROD.OUTLOOK.COM> <CAOj+MMH1UaNQrVmJ5y_ACoJZU-+MT6_BF8R3PvUXK_474ub5jQ@mail.gmail.com> <CAKEJeo7EGkAqM8XdH4UkVq1gEE3wGZsUYKdvJ7Ouect=UvVDLw@mail.gmail.com>
In-Reply-To: <CAKEJeo7EGkAqM8XdH4UkVq1gEE3wGZsUYKdvJ7Ouect=UvVDLw@mail.gmail.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Tue, 21 Oct 2025 11:38:08 +0200
X-Gm-Features: AS18NWDJco7qWldpaCxMgrWCqkmW_KY6tCp99_lLWIh7HUCyw8UMhzh30KkKCSQ
Message-ID: <CAOj+MMHgvEVUWF=Wj4iK6B1CPNni7BfhaCA4AF5GbOofyguJ4Q@mail.gmail.com>
To: Nat Kao <pyxislx@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000d729830641a7f52f"
Message-ID-Hash: QK2RKTVHGBSFK74CKG7XI7SX3DYWZJOY
X-Message-ID-Hash: QK2RKTVHGBSFK74CKG7XI7SX3DYWZJOY
X-MailFrom: robert@raszuk.net
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: bruno.decraene@orange.com, idr <idr@ietf.org>, "draft-decraene-idr-nlri-error-handling@ietf.org" <draft-decraene-idr-nlri-error-handling@ietf.org>, John Scudder <jgs=40juniper.net@dmarc.ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Idr] Re: draft-decraene-idr-nlri-error-handling-00.txt
List-Id: Inter-Domain Routing <idr.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/fkZ4j-yw04oFfas878zSZysMUYM>
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>

Perfect !

On Tue, Oct 21, 2025 at 5:01 AM Nat Kao <pyxislx@gmail.com> wrote:

> Hi, Robert & Bruno.
>
> I believe the proposed text clarifies the key/non-key data definitions.
> To avoid possible conflict, would it be better to add some exceptions in
> 2nd sentence? For example:
> "If not defined explicitly by the address families, what this document
> considers as key data and what is expected to be placed into TAW attribute
> is what corresponding address families select from NLRI and place into
> MP_UNREACH_NLRI attributes today."
>
> Many Thanks!
> Nat
>
> On Tue, Oct 21, 2025 at 12:26 AM Robert Raszuk <robert@raszuk.net> wrote:
>
>> Hi Bruno,
>>
>> Proposed text is a good one - does help to add a few stones on the
>> positive side of the weight of the draft.
>>
>> My only concern with it is that you keep using a notion of key in
>> correspondence to documents which do not define them explicitly. Neither
>> RFC8277 nor CT draft define key - even if they are defining MP_UNREACH_NLRI
>> attributes in some form or shape.
>>
>> Therefore I would strongly advise that if you want to keep using the key
>> vs non-key  nomenclature you should up fronty define what are key vs
>> non-key parts of NLRIs. It could be as simple as saying:
>>
>> *NLRIs in some address families consist of key and non-key data. What
>> this document considers as key data and what is expected to be placed into
>> TAW attribute is what corresponding address families select from NLRI and
>> place into MP_UNREACH_NLRI attributes today. What is not expected to be
>> found in MP_UNREACH_NLRIs in this document we define as non-key data of the
>> NLRI(s). *
>>
>> Thx,
>> R.
>>
>> On Mon, Oct 20, 2025 at 5:31 PM <bruno.decraene@orange.com> wrote:
>>
>>> Hi Robert,
>>>
>>>
>>>
>>> *From:* Robert Raszuk <robert@raszuk.net>
>>> *Sent:* Friday, October 17, 2025 7:56 PM
>>>
>>> Hi Bruno,
>>>
>>>
>>>
>>> Ok I get your point that the issue may be on the receiver and not on the
>>> sender in parsing MP_REACH_NLRI. Indeed I was mainly talking about the
>>> issue on the sender side, badly composing the MP_REACH_NLRIs.
>>>
>>>
>>>
>>> Ack. Thanks for the clarification.
>>>
>>>
>>>
>>> Btw are you advocating to be sending TAW for all AFI/SAFIs ? Even those
>>> which do not contain next hop as part of MP_REACH ? If so what would be the
>>> rationale for doing such MP_REACH duplication ?
>>>
>>>
>>>
>>> One is free to use it when one wants, on a per AFI or even a per BGP
>>> UPDATE if needed.
>>>
>>> Current version of the draft (local version, not yet published) has the
>>> following “applicability” text
>>>
>>>
>>>
>>> The NLRI_KEY_LIST attribute is generally useful as its encoding is
>>> simpler than the encoding of the MP_REACH_NLRI, hence it maximizes the
>>> chances of handling an error in the MP_REACH_NLRI attribute using the
>>> treat-as-withdraw approach.
>>>
>>> In particular the NLRI_KEY_LIST attribute does not carry the variable
>>> length "Network Address of Next Hop" field nor the "Length of Next Hop
>>> Network Address" which, if erroneous, trigger a BGP session reset as per
>>> {{RFC7606}}.
>>>
>>> It is specifically useful for AFI/SAFI carrying non-key data in the NLRI
>>> such as {{RFC8277}}, {{I-D.ietf-idr-bgp-car}}, and {{I-D.ietf-idr-bgp-ct}}
>>> as these NLRI are longer and more complex, hence have a higher probability
>>> of error. In addition, in case of error, they have a lower probability of
>>> being able to parse the full list of NLRIs.
>>>
>>> It is less useful when the NLRI encoding is the same for MP_REACH_NLRI
>>> and MP_UNREACH_NLRI.
>>>
>>>
>>>
>>> Comments welcomed.
>>>
>>>
>>>
>>> As for myself, I think I would use it a priori for AFI/SAFI carrying a
>>> (significant) non-key data, especially for infrastructure routes which are
>>> critical, and with lower route scale (number of routes and number of
>>> updates/instability). E.g., BGP CAR, BGP CT, BGP LU. In particular if they
>>> are recent or known to have issues.
>>>
>>> And a posteriori for an AFI/SAFI which triggered an impactful session
>>> reset which could have been better handled by this proposal.
>>>
>>> My 2 cents.
>>>
>>>
>>>
>>> Thanks,
>>>
>>> --Bruno
>>>
>>>
>>>
>>> Example RFC8955.
>>>
>>>
>>>
>>> Thx,
>>>
>>> R.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Oct 17, 2025 at 3:38 PM <bruno.decraene@orange.com> wrote:
>>>
>>> Hi Robert,
>>>
>>>
>>>
>>> *From:* Robert Raszuk <robert@raszuk.net>
>>> *Sent:* Friday, October 17, 2025 12:32 AM
>>> *To:* John Scudder <jgs=40juniper.net@dmarc.ietf.org>
>>> *Cc:* Donatas Abraitis <donatas.abraitis@gmail.com>; DECRAENE Bruno
>>> INNOV/NET <bruno.decraene@orange.com>; idr <idr@ietf.org>;
>>> draft-decraene-idr-nlri-error-handling@ietf.org
>>> *Subject:* Re: [Idr] Re: draft-decraene-idr-nlri-error-handling-00.txt
>>>
>>>
>>>
>>> Hi John,
>>>
>>>
>>>
>>> So in your example you are pointing out that the sender can not
>>> correctly encode the next hop in the MP_REACH.
>>>
>>>
>>>
>>> Well sorry to say but this to me is good enough of a reason to drop a
>>> session with such a sender ASAP.
>>>
>>>
>>>
>>> Note that you and Bruno are taking a very myopic view on the network.
>>>
>>>
>>>
>>> [Bruno] Thanks ( 😉 )
>>>
>>>
>>>
>>> You think that dropping the session is a disaster and that it always
>>> impacts customers given the network is serving.
>>>
>>>
>>>
>>> [Bruno] No. I’m saying that dropping the session does sometimes impact
>>> customers. Sometimes a very large base.
>>>
>>> I’m assuming that you see the difference between both assertions.
>>>
>>>
>>>
>>> Well this is IMO quite wrong conclusion.
>>>
>>>
>>>
>>> Properly constructed network is usually not a single vendor shop and
>>> control plane information - especially BGP - is distributed over different
>>> vendor control plane nodes with multiple sessions in place. Hence you
>>> should have more than one way of getting your BGP overlay information
>>> between egress and ingress nodes to your domain.
>>>
>>>
>>>
>>> [Bruno] How does that help?
>>>
>>> You are considering one assumption: the BGP error I due to your BGP
>>> peer. (so a diverse one will help).
>>>
>>> There are other assumptions. E.g. the BGP update is valid and the
>>> receiver believes there is an error. E.g. A BGP LU route is advertised with
>>> a label stack of more than one label. The one seeing the error is the
>>> ingress node. Having diverse signaling does not help.
>>>
>>>
>>>
>>>
>>>
>>> With that bigger picture in mind please notice that dropping a single
>>> BGP session in the vast majority of modern implementations usually has zero
>>> (well cost of local pointer switch so single ms) negative effect on the
>>> data plane and on the customer transit/services offered.
>>>
>>>
>>>
>>> [Bruno] Again, I think you are considering a subset of the cases. See
>>> above.
>>>
>>>
>>>
>>> I think we need to take a look from this angle as well when considering
>>> adoption or not of this proposal.
>>>
>>>
>>>
>>> [Bruno] Let’s take a look from all angles. Not just “this angle”.
>>>
>>>
>>>
>>> We could discuss error handling considerations, but this is a large and
>>> complex topic, with different points of views. Usually tradeoffs are
>>> involved, so there is no easy answer (and whatever the choice taken, this
>>> can backfire)
>>>
>>>
>>>
>>> Example of two points of view:
>>>
>>> 1.      Box/BGP session centric: I’m receiving a wrong message. What a
>>> pathetic implementation is running  on my neighbor! Hopefully, I’m a smart
>>> implementation and  _*I*_ detected the error. Since the neighbor
>>> implementation is bad, and I can’t trust that session, let’s kill it. (the
>>> session)
>>>
>>> 2.      Global network centric. I’m receiving a wrong message. As a
>>> first reaction, I could indeed shut down that session (since a not so
>>> myopic operator probably configured redundant sessions with redundant
>>> codes, and the not so myopic customer is dual homed to another PE). But
>>> thinking a bit more: what makes me think that my redundant session will not
>>> receive the same message? That the redundant PE will not receive the same
>>> message? That all PE will not receive the same message (it’s an IBGP
>>> session, so even if it’s not a link state IGP, it’s likely a goal to
>>> simulate a full mesh where everyone receives all routes (with same
>>> attribute)). With this is mind, if I take the decision to shut down that
>>> session, all other PEs may equally take the same decision. Is that really
>>> such a smart move?
>>>
>>> On top of that, the incorrect message may come from an attacker. In such
>>> case, taking an action which increases the scope or consequences is
>>> debatable as it gives the attacker a bigger attack vector. Better try to
>>> ignore or minimize (even just creating local states, consuming/leaking
>>> memory… may be exploited).
>>>
>>>
>>>
>>>
>>>
>>> Hopefully, I’ve shared a different angle. Even if not, I hope it’s clear
>>> that I’ve not been convinced by your arguments to support your claim that
>>> [John and I]  “are taking a very myopic view on the network”
>>>
>>>
>>>
>>> Kind regards,
>>>
>>> --Bruno
>>>
>>>
>>>
>>>
>>>
>>> Kind regards,
>>>
>>> Robert
>>>
>>>
>>>
>>> On Thu, Oct 16, 2025 at 5:59 PM John Scudder <jgs=
>>> 40juniper.net@dmarc.ietf.org> wrote:
>>>
>>> Hi Donatas,
>>>
>>>
>>>
>>> If the MP_REACH_NLRI is fine, we do nothing with the TAW and process the
>>> MP_REACH_NLRI as normal.
>>>
>>>
>>>
>>> If, during processing of the MP_REACH_NLRI, we discover an error [1],
>>> then we extract the keys from the TAW and use them to drive
>>> treat-as-withdraw behavior [2], instead of resetting the session as RFC
>>> 7606 tells us to.
>>>
>>>
>>>
>>> In reviewing RFC 7606 just now, I see we can construct a rather
>>> straightforward example of a malformation that would be overcome by TAW.
>>> Let’s use Bruno’s diagrams, and fill in some of the fields:
>>>
>>>
>>>
>>> Multiprotocol Reachable NLRI - MP_REACH_NLRI (Type Code 14)
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Address Family Identifier (2 octets)             0x0002 |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Subsequent Address Family Identifier (1 octet)     0x01 |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Length of Next Hop Network Address (1 octet)       0xff |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Network Address of Next Hop (variable)                  |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Reserved (1 octet)                                      |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | NLRI1 (key1)                                            |
>>>
>>>         | NLRI2 (key2)                                            |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>
>>>
>>> Above, I have not filled in beyond the “Length of Next Hop Network
>>> Address” field, since that’s where the error occurs, and the rest is not
>>> reliably determinable (7606 Section 7.11). I removed the “non-key”
>>> notations since this example uses plain IPv6 unicast, mostly to keep the
>>> example simple.
>>>
>>>
>>>
>>> Treat-As-Withdraw  (Type Code TBD1)
>>>
>>>
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Address Family Identifier (2 octets)             0x0002 |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Subsequent Address Family Identifier (1 octet)     0x01 |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | NLRI1 (2001:DB8::/32)                                   |
>>>
>>>         | NLRI2 (3fff::/20)                                       |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>
>>>
>>> While we are trying to parse the MP_REACH_NLRI, we hit the absurd Length
>>> of Next Hop Network Address field, and therefore, RFC 7606 tells us we MUST
>>> reset the session. However, since we also have access to the TAW, we can
>>> confidently extract the two prefixes (“keys”) it carries, and proceed to
>>> apply treat-as-withdraw logic instead of resetting the session.
>>>
>>>
>>>
>>> I hope we don’t need to debate whether this particular example is likely
>>> to occur in the field — I concede it isn’t; as noted, I chose it because
>>> it’s simple, illustrates the point, and follows directly from unambiguous
>>> language in RFC 7606.
>>>
>>>
>>>
>>> HTH,
>>>
>>>
>>>
>>> —John
>>>
>>>
>>>
>>> [1] See RFC 7606 Sections 3.j, 5, and 7.11.
>>>
>>>
>>>
>>> [2] See RFC 7606 Section 2, third bullet.
>>>
>>>
>>>
>>> On Oct 16, 2025, at 9:45 AM, Donatas Abraitis <
>>> donatas.abraitis@gmail.com> wrote:
>>>
>>>
>>>
>>>
>>>
>>> *[External Email. Be cautious of content]*
>>>
>>>
>>>
>>>
>>>
>>> >It’s a sort of a duplicate MP_UNREACH attribute
>>>
>>>
>>>
>>> Okay, let's say we received this one (followed by MP_REACH_NLRI):
>>>
>>>
>>>
>>> Treat-As-Withdraw  (Type Code TBD1)
>>>
>>>
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Address Family Identifier (2 octets)                    |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | Subsequent Address Family Identifier (1 octet)          |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>         | NLRI1 (key1)                                            |
>>>
>>>         | NLRI2 (key2)                                            |
>>>
>>>         +---------------------------------------------------------+
>>>
>>>
>>>
>>> What should we do with MP_REACH_NLRI then? My question is, what problem
>>> solves the "duplication"? :)
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Oct 16, 2025 at 4:35 PM John Scudder <jgs@juniper.net> wrote:
>>>
>>> > On Oct 16, 2025, at 9:26 AM, Donatas Abraitis <
>>> donatas.abraitis@gmail.com> wrote:
>>> >
>>> > Correct me if I'm wrong... So, this TAW attribute is sort of a
>>> duplicate MP_REACH attribute,
>>>
>>> Almost, you left out the “UN". It’s a sort of a duplicate MP_UNREACH
>>> attribute:
>>>
>>>                 The format of the Treat-As-
>>>    Withdraw attribute is the same as the format of the MP_UNREACH_NLRI
>>>    as defined in Section 4 of [RFC4760].
>>>
>>> > or what actually? I still don't understand how it solves the parsing
>>> problem
>>>
>>> The problem it’s meant to solve is if the MP_REACH_NLRI can’t be parsed
>>> for some reason:
>>>
>>>    However, as indicated in Section 3 of [RFC7606], treat-as-withdraw
>>>    can only be used if the entire NLRI field of the MP_REACH_NLRI
>>>    attribute is successfully parsed.  This typically means parsing
>>>    errors in MP_REACH_NLRI cannot be handled by any means short of
>>>    session reset.
>>>
>>> In code bases I’m aware of, the MP_UNREACH_NLRI generation code path is
>>> simpler than the MP_REACH_NLRI code path, and of course we’ve already
>>> discussed that the MP_UNREACH_NLRI content is sometimes simpler than the
>>> MP_REACH_NRLI content. The hypothesis that underpins the draft is that
>>> simpler => less likely to contain an error. This generally seems like an
>>> uncontroversial assumption. There is of course no guarantee (the entire
>>> draft is essentially about how to handle bugs, so this is true by
>>> definition).
>>>
>>> > (I might be completely dumb) :)
>>>
>>> On the contrary, your comments, Robert’s, and others, illustrate that we
>>> need to work harder to be clear. (And also need to fix the bug that Robert
>>> called out!) So, thank you!
>>>
>>> —John
>>>
>>>
>>>
>>> --
>>>
>>> Donatas
>>>
>>>
>>>
>>> _______________________________________________
>>> Idr mailing list -- idr@ietf.org
>>> To unsubscribe send an email to idr-leave@ietf.org
>>>
>>> ____________________________________________________________________________________________________________
>>>
>>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>>>
>>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>>>
>>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>>>
>>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>>>
>>>
>>>
>>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>>>
>>> they should not be distributed, used or copied without authorisation.
>>>
>>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>>>
>>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>>>
>>> Thank you.
>>>
>>> ____________________________________________________________________________________________________________
>>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>>>
>>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>>> they should not be distributed, used or copied without authorisation.
>>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>>> Thank you.
>>>
>>> _______________________________________________
>> Idr mailing list -- idr@ietf.org
>> To unsubscribe send an email to idr-leave@ietf.org
>>
>