Re: [Rift] Discussion on draft-cheng-rift-srv6-extensions-01

Tony Przygienda <tonysietf@gmail.com> Wed, 02 August 2023 14:35 UTC

Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F109BC15171B for <rift@ietfa.amsl.com>; Wed, 2 Aug 2023 07:35:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 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_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 fmmZWlYcDM4E for <rift@ietfa.amsl.com>; Wed, 2 Aug 2023 07:35:02 -0700 (PDT)
Received: from mail-vs1-xe2a.google.com (mail-vs1-xe2a.google.com [IPv6:2607:f8b0:4864:20::e2a]) (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 75BA2C15171E for <rift@ietf.org>; Wed, 2 Aug 2023 07:35:02 -0700 (PDT)
Received: by mail-vs1-xe2a.google.com with SMTP id ada2fe7eead31-447be69ae43so182070137.0 for <rift@ietf.org>; Wed, 02 Aug 2023 07:35:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690986901; x=1691591701; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VRXBpGf+NSK8SscTx0ELKJTDsw1tJsmPfvK43WCyDN8=; b=k1pqxvhCqIUBScsKjipEWay0HusgM2BZseElazE3BS2dIwpggpJv5ZUYzwGkKDY2br 8iOgTLw79EpeorcdP95Lu4piv/mOHcIPtJwEQwyQe0TJzr464ZhZP9lfifhoNL3lI8EJ Mq59/yzlSONGlA4N9100WXUSpQ6aCW9HLmGIbrv6YwS8cMMT/WBYgUykVruKs2G12EzK VMw03fo9DKX2Lx9sQxSFCdQ+zM1UxsDpHUlL8fJ636G9c4A70QiXzFQihDLAM/Xl/7S4 r+F/wOF1Ad1PM3TEG2zbgeWnsfOHYjUozSs9NfjiUxP2we/6mNTFUta9U7JxJkwbhtnq cWyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690986901; x=1691591701; 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=VRXBpGf+NSK8SscTx0ELKJTDsw1tJsmPfvK43WCyDN8=; b=XJPxDpfdkxXSsYP7mopyBj9g1NjSMhyDJ28T5EDAcfUZnbBJHc9RjF+8uslGJsjUxH yncgEp8PMzvI2KxxoVHzKb1bi2E046BnBzz2RyYAW1DnQHPeP26kdy5zt5XEzLbC+LBj z84vwr0AuQsiDdjTGpy7HjhAebJ4mn8zkKBco32IoIftQD7OzY4EIbdyXTzzRJ8A8K+r fC7vUPMz1ktCVphFFsY2f0Uur93tkL7cdpU8jiraxxGDHi7BjImFNK16saWu4IovlezK voT8JNAjHvEU6SzSD84iYo5rksJ58dCPTu4bfXnbLj4Gahjdn0sN2Zkmpg0zO0pxKGpm 0gYw==
X-Gm-Message-State: ABy/qLZT8w0dRCUxIDzAB8LH7/tk0DsoCa2kNPNcJfVwImpo/4YFALV6 CG1jx1EBWxJqW9QBaU9EchfeFiGHAKcfl64Bq/b3WYMe67M=
X-Google-Smtp-Source: APBJJlG8tCBKPy9BxbokiL0YgDGYwDzRXVff8G5/c+Isr5jso2W8Yufegn/GWSyFTTL3EmidlDG0lzjoGbxUg70gZqU=
X-Received: by 2002:a67:fb1a:0:b0:444:c7fa:15e6 with SMTP id d26-20020a67fb1a000000b00444c7fa15e6mr3306782vsr.9.1690986900979; Wed, 02 Aug 2023 07:35:00 -0700 (PDT)
MIME-Version: 1.0
References: <BL0PR05MB536297D978D1C8A91EB9AEEDB605A@BL0PR05MB5362.namprd05.prod.outlook.com>
In-Reply-To: <BL0PR05MB536297D978D1C8A91EB9AEEDB605A@BL0PR05MB5362.namprd05.prod.outlook.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Wed, 02 Aug 2023 16:34:24 +0200
Message-ID: <CA+wi2hNhpGVsGyhWDAOmtNwYKLM_O1sF9R6LT-MBY5tZZRywkA@mail.gmail.com>
To: Jordan Head <jhead=40juniper.net@dmarc.ietf.org>
Cc: "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000008d84e70601f1918d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/qLtt3IaHAfeJwt0RxW2N8MGb_pY>
Subject: Re: [Rift] Discussion on draft-cheng-rift-srv6-extensions-01
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Aug 2023 14:35:05 -0000

very fair summary here. Easiest support will be by adding a key type that
has a longer key basically allowing to put targeted system ID into it. So
something like this

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       X       |             Prefix Key Identifier             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|        Targeted   System ID                                   |
+---------------------------------------------------------------+


and define for this key type that the targeted system ID is integral
part of key comparison _and_ can be used to filter southbound.


Variants with bloom filter are also thinkable.


This leads us into an interesting corner where we have variable key
lengths on the KV store and hence nodes not implementing X would
tie-break on 3 bytes only.


I'm not even against radical reword of the KV registry draft where we
do the following
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       2       |   Key Length  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               Well-Known Key Identifier.      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

which will make us future proof, i.e. nodes not implementing a KV key
can always compare the key, no matter how complex

or even indicate that there is a targeted system ID in southbound KV
that can be filtered on and all 0s is basically "anyone" though I
think this is superfluous. Nodes not understasnding the key type will
flood to all southbound and anyone understanding it will filter

bear discussion since this draft is independent of rift which
describes tie breaking in generic sense only so rift rfc should be
able to progress ahead

-- tony


On Wed, Aug 2, 2023 at 2:36 PM Jordan Head <jhead=
40juniper.net@dmarc.ietf.org> wrote:

> All,
>
>
>
> I think we had quite a meaningful discussion during the meeting in San
> Francisco last week. I’ve compiled the main points regarding
> https://datatracker.ietf.org/doc/draft-cheng-rift-srv6-extensions/01/ and
> how we can perhaps find a more generic mechanism to solve what is outlined
> in the draft as well as other similar problems.
>
>
>
>
>
>    1. First a quick side note. There is no need for new negative/positive
>    TIEs for SIDs, after all they are just IPv6 prefixes and they will be
>    handled by existing disaggregation functions. To indicate relevance to SR,
>    we can simply tag those prefixes as a “SID” using prefix attributes
>    (similar to how we tag if a prefixes metric (distance)).
>
>
>
>    1. This problem is similar to the one we have with performing
>    distributed derivation of IPv4 loopback addresses in
>    https://datatracker.ietf.org/doc/draft-head-rift-auto-fr/ in that
>    there are simply not enough bits to avoid collisions.
>
>
>
>    1. Putting the configuration for all nodes in the fabric into the same
>    Key-Value TIE won't work either. You'll exceed the MTU and end up with
>    issues that cannot be managed by most silicon (i.e. commodity silicon).
>    While RIFT does allow fragmentation to some degree, this will still not
>    scale. Things need to be broken into reasonable pieces, e.g. System ID.
>    However, since the Key-Value TIEs reserve 1 byte to indicate Well-Known and
>    only an additional 3 bytes to hash and encode the System ID into. This
>    isn't enough space and you'll end up with collisions and Southbound TIE
>    breaking rules will eventually cause information to be thrown away.
>
>
>
> Ultimately, we can add new tie breaking rules. Which could be indicated
> via a new well-known Key-Type, new code point entirely, or a new TIE type.
> The result being that we tie break on System ID southbound (as northbound
> would be pointless) and allow for targeted KV-TIE distribution.
>
>
>
> This assumes that every leaf node DOES NOT need to know about every other
> leaf. If that is the goal, it's better to just create an over the top
> tunnel and push information directly from the controller/ToF to the leaf,
> no IGP would be capable of handling it at scale.
>
>
>
>
>
> This e-mail should serve as a starting point for more detailed discussion,
> so additional observations are very much welcome.
>
>
>
> Thank you
>
> Jordan
>
>
>
>
>
> Juniper Business Use Only
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>