[Idr] WKLC transitivity considerations (was Re: Adoption call for draft-heitz-idr-wklc-02 (3/9 to 3/23))

Jeffrey Haas <jhaas@pfrc.org> Fri, 19 March 2021 16:08 UTC

Return-Path: <jhaas@slice.pfrc.org>
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 B5D493A195C for <idr@ietfa.amsl.com>; Fri, 19 Mar 2021 09:08:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HjoVQQcrUvuP for <idr@ietfa.amsl.com>; Fri, 19 Mar 2021 09:08:23 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 91DB43A195B for <idr@ietf.org>; Fri, 19 Mar 2021 09:08:23 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 89EE81E446; Fri, 19 Mar 2021 12:29:53 -0400 (EDT)
Date: Fri, 19 Mar 2021 12:29:53 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: idr@ietf.org
Message-ID: <20210319162953.GR29692@pfrc.org>
References: <BYAPR11MB3207CF86CF2FBD56CA3EAD66C0919@BYAPR11MB3207.namprd11.prod.outlook.com> <CBFDE565-E501-4344-BF6C-53A541D50391@tsinghua.org.cn> <012b01d7170f$7ec90310$7c5b0930$@tsinghua.org.cn> <BYAPR11MB3207D4E973EE9ED170687E1EC06F9@BYAPR11MB3207.namprd11.prod.outlook.com> <015601d7171a$036be470$0a43ad50$@tsinghua.org.cn> <CAH1iCiqy3uu0SF2i9TyTRwCdt2d2Ud9+nUCtRG+vc2E-gwfLPQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAH1iCiqy3uu0SF2i9TyTRwCdt2d2Ud9+nUCtRG+vc2E-gwfLPQ@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/z73Xv10Q8SD8qfyVd1t7VCodJoY>
Subject: [Idr] WKLC transitivity considerations (was Re: Adoption call for draft-heitz-idr-wklc-02 (3/9 to 3/23))
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Mar 2021 16:08:26 -0000

WKLC authors,

Let me use Brian's text here as a starting point to raise issues about
interpreting WKLC with regard to their transitivity bits.  I don't believe
the issue here is irreconcilable, but it does play to a point Brian was
illustrating and that it somewhat dilutes the deployed feeature argument.

On Fri, Mar 12, 2021 at 10:13:31AM -0800, Brian Dickson wrote:
> However, the router implementations, for the most part, permit filtering of
> LCs on the basis of 3 32-bit values, where either literal values or
> wildcards can be used.
> Having the elements be aligned on the 32-bit boundary, and having TBD1 and
> TBD2 be fixed values, permits LC matching using a patterns of either
> TBD1:TBD2:* (wild-card), or TBD1:TBD2:ASN (explicit ASN match).
> In other words, this structure choice is forced by router implementations,
> and really not appropriate to second-guess. It isn't up for negotiation, as
> this is a necessary requirement for the first use case.

For reference, the layout of a WKLC from the draft is:

:       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
:      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:      |1 1 1 1 0 1| T |    WKLC ID    |          Data 1               |
:      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:      |                             Data 2                            |
:      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:      |                             Data 3                            |
:      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

A property that extended communities had as a result of how the authors
designed the feature, and later firmed up by Eric Rosen as part of registry
work was that a given extended community did NOT have a guarantee of the
same semantics when you had a transitive vs. a non-transitive version.

If it did, using link-bandwidth as an example, one's code would treat the
transitivity bit as a "don't care" for purposes of comparison.  I'm not
aware of any implementation that does this.[1]

The behavior of the transitivity bits for WKLC isn't directly discussed in
the document in terms of whether they have "don't care" semantics or not.

WKLC in particular discusses changing transitivity flags:

:         3 - One-time Transitive: The WKLC is transitive across ASes
:             under the same administration and into an AS under the
:             neighboring administration, but not into an AS under a
:             further administration.  A BGP speaker that receives a WKLC
:             with transitivity 3 on an external BGP session on an
:             administrative boundary SHOULD change the transitivity to 2.

The implication here leans toward this meaning they're "don't care", but
that may be my interpretation.

This primarily is an issue for "singleton" communities, like link-bandwidth.
While that may not be the target for the first use cases of the draft, it
should be part of the considerations for the feature's definition.

Related nit: Define your transitivity behavior for BGP confederations.

-- Jeff

[1] In the early 2000's when the extended community feature was being
disussed in IDR and I was a junior BGP dev, I did try to push the authors
toward treating transitivity as a don't care, and the sub-type field as a
"format field" for generic parsing.  Clearly my opinion didn't win out.
This results in extended community parsing being a snake's nest of special
cases with some generic patterns in use.