Re: [Rift] [RIFT] spine-tof links break => spine-leaf adjacencies go down?
Bruno Rijsman <brunorijsman@gmail.com> Thu, 23 April 2020 21:36 UTC
Return-Path: <brunorijsman@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 A69DD3A1420 for <rift@ietfa.amsl.com>; Thu, 23 Apr 2020 14:36:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, SPF_HELO_NONE=0.001, SPF_PASS=-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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kHCG5c5c4-bV for <rift@ietfa.amsl.com>; Thu, 23 Apr 2020 14:36:31 -0700 (PDT)
Received: from mail-vk1-xa2b.google.com (mail-vk1-xa2b.google.com [IPv6:2607:f8b0:4864:20::a2b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2B0D3A141D for <rift@ietf.org>; Thu, 23 Apr 2020 14:36:30 -0700 (PDT)
Received: by mail-vk1-xa2b.google.com with SMTP id w188so785797vkf.0 for <rift@ietf.org>; Thu, 23 Apr 2020 14:36:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=A6rn1Ew5AcDg7xxANk6Xm8dMZs39UGiu4HMyQYhgmK8=; b=FLccUuPt//2VUmxr1uYROFjI5leCf/BcCT7FN1hCIdTdWskgJkocXp8mmFtLFPC3oZ b/nbRgg3f9VDhZ93MN7UpRZUAV3vMdc/IzK9wx+FrYWmk3P9pnz/DNpT0lyz1QFPG0g7 wTYN7mkBwWW7pXiM6GA7Wwt+pw4JieWIzbLWabChqBlnbRKLo+v+O+zWBbRUwViZG8DH SUcPnw6mhkBeT/xKqZ0XScNzDdn1pxMOp4CCKWsVtQHCUkySQMGsfS7bAmFsg3J3r9KE /kcYksrzRzKmlNH4VZcJgAtfOC7wNr9nX2kJkGNzVrhgzAimmzvysnEsai9LwDoTXRUf jJkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=A6rn1Ew5AcDg7xxANk6Xm8dMZs39UGiu4HMyQYhgmK8=; b=uIUbURWMAJxVXooywKt60vk0u7q36GWX8x8Bu6tVw5er0wn4aDH+GCBbeIhapHicy2 39SlzHenOBYHUoqxJynjo+htMcj3QE9wbYd0cpj9rgBTMwGaEpR5n0a+YNIsTgrSuQp8 GRE+YAz89HQqucUlnShkngXonvzNZ+9/dtfE1nhvOLUwyqK94iKTwcJIZC10kX3MQBSF vOgvxDRe6bskVNSxO1EC9TV5AQZ7YsZp0H5g8mYFVpgl3eLRKKhwYJ5kdHwQp1w4+/us lkdT8zjORln4/+vMC923VbJsldYIEgZDYVq7ZWyesteWIYcAKf6pufHUPH+W3PynID6Z LLLA==
X-Gm-Message-State: AGi0PuapnpqsVo1vIOHy0HFNYUv5igM3lE6hhy8d/yu6fkBBLPF/zP3D Kzh6c4ZFTfw/N+5u/n3j+io=
X-Google-Smtp-Source: APiQypJucHFam0wBamTSj5KnyLLSfyEDVfvNKwXWbIYFiA/2gB+r0+v3caOMeuSnM7bYdx5L88uwYQ==
X-Received: by 2002:a1f:9ac7:: with SMTP id c190mr5501824vke.39.1587677789735; Thu, 23 Apr 2020 14:36:29 -0700 (PDT)
Received: from [192.168.30.24] ([181.174.102.214]) by smtp.gmail.com with ESMTPSA id k124sm1051199vkb.40.2020.04.23.14.36.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Apr 2020 14:36:29 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <5D3DCA2D-F5E8-4B11-A27E-188ADFA043C8@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_EED51E21-32BE-4610-AA80-E60BBF39D225"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Thu, 23 Apr 2020 15:36:25 -0600
In-Reply-To: <CA+wi2hO1zcsCebDjvHKgO8vdHtwJJCY2C4vUWBVC9xsjBGYvWg@mail.gmail.com>
Cc: "rift@ietf.org" <rift@ietf.org>, Tommaso Caiazzi <tommasocaiazzi@gmail.com>, "Pascal Thubert (pthubert)" <pthubert@cisco.com>, Mariano Scazzariello <mscazzariello@os.uniroma3.it>, Leonardo Alberro Zimmermann <lalberro@fing.edu.uy>, Jeff Tantsura <jefftant.ietf@gmail.com>
To: Tony Przygienda <tonysietf@gmail.com>
References: <5e909790.1c69fb81.e9d94.cb7e@mx.google.com> <d72ecfbd-3fe0-4eb7-94e9-dbecd0b8610f@Spark> <EC67D4C2-CEFF-46C9-866F-D0F32547CC64@gmail.com> <CA+wi2hO1zcsCebDjvHKgO8vdHtwJJCY2C4vUWBVC9xsjBGYvWg@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/zGLnispMv630LWq0ALRgGs7dLJI>
Subject: Re: [Rift] [RIFT] spine-tof links break => spine-leaf adjacencies go down?
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 23 Apr 2020 21:36:34 -0000
Gotcha. Thanks for confirming. PS: It turned out that the issue we were seeing was caused by the fact that Travis CI/CD *still* does not support IPv6 in this day and age. > On Apr 23, 2020, at 3:27 PM, Tony Przygienda <tonysietf@gmail.com> wrote: > > Absolutely intendend and expected behavior ;-) You can't figure out topology from spine down basically without a ToF. ToFs are the only source of truth where north is and if that isn't around no'one knows which way is up ... > > It's actually easy to put some code in that watches for the condition on a node & complains that there are no valid offers. > > Alternative would be to "store" offers and use them even if a node went away. Think through that, it's impossible to converge the protocol correctly then without having something like flooding of offers with seqnr# and so on ... > > --- tony > > On Thu, Apr 23, 2020 at 11:13 AM Bruno Rijsman <brunorijsman@gmail.com <mailto:brunorijsman@gmail.com>> wrote: > While testing negative disaggregation with Mariano, I discovered an "interesting" behavior in RIFT and I would like to check whether this behavior is expected or not. I am not saying the behavior is wrong, I was just surprised to see it and wanted to check whether this was intended when the protocol was designed. > > Consider the following topology: > > TOF1 TOF2 > \ / > \ / > \ / > SPINE > / \ > / \ > / \ > LEAF1 LEAF2 > > All adjacencies are 3way. > > The TOFs have top-of-fabric level 24. > > The leaves have level 0. > > The spine uses ZTP to derive a level, so it ends up with level 23. > > Now we break all links between the spine and its TOFs: > > TOF1 TOF2 > \ / > X X <<< These adj go down (as expected) > \ / > SPINE > / \ > / \ <<< Surprise: these adj also go down > / \ > LEAF1 LEAF2 > > At this point the spine node does not have any Valid Offered Levels (VOLs) because (see [1]): > (1) The levels from the TOFs are not valid because the adjacencies are down > (2) The levels from leaves are never accepted as valid offers > > Hence, the derived level for the spine becomes "undefined". > > Once the level of the spine becomes undefined, it stops accepting LIE messages from the leaves because a node whose level is undefined never accepts LIEs (see [2] below). > > Since the spine stops accepting LIEs from the leaves, the old LIEs time out and the adjacencies go down. > > My question is: it is normal and expected that breaking the links from the spine to the TOFs *also* causes the adjacencies between th spine and the leaves to go down? > > [1] On page [86] of draft-11 it says: > > Valid Offered Level (VOL): A neighbor’s level received on a valid > LIE (i.e. passing all checks for adjacency formation while > disregarding all clauses involving level values) persisting for > the duration of the holdtime interval on the LIE. Observe that > offers from nodes offering level value of 0 do not constitute VOLs > (since no valid DERIVED_LEVEL can be obtained from those and > consequently ‘not_a_ztp_offer‘ MUST be ignored). Offers from LIEs > with ‘not_a_ztp_offer‘ being true are not VOLs either. If a node > maintains parallel adjacencies to the neighbor, VOL on each > adjacency is considered as equivalent, i.e. the newest VOL from > any such adjacency updates the VOL received from the same node. > > [2] On page [45] of draft -11 it says: > > 4. PROCESS_LIE: > 1. if lie has wrong major version OR our own system ID or > invalid system ID then CLEANUP else > 2. if lie has non matching MTUs then CLEANUP, PUSH > UpdateZTPOffer, PUSH MTUMismatch else > 3. if PoD rules do not allow adjacency forming then CLEANUP, > PUSH PODMismatch, PUSH MTUMismatch else > 4. if lie has undefined level OR my level is undefined OR this > node is leaf and remote level lower than HAT OR (lie’s level > is not leaf AND its difference is more than one from my > level) then CLEANUP, PUSH UpdateZTPOffer, PUSH > UnacceptableHeader else >
- [Rift] R: Re: Negative Disaggregation Tommaso Caiazzi
- Re: [Rift] Negative Disaggregation Bruno Rijsman
- Re: [Rift] Negative Disaggregation Tony Przygienda
- Re: [Rift] Negative Disaggregation Pascal Thubert (pthubert)
- Re: [Rift] R: Re: Negative Disaggregation Jeff Tantsura
- [Rift] [RIFT] spine-tof links break => spine-leaf… Bruno Rijsman
- Re: [Rift] [RIFT] spine-tof links break => spine-… Bruno Rijsman
- Re: [Rift] [RIFT] spine-tof links break => spine-… Tony Przygienda
- [Rift] Negative disaggregation implemented Bruno Rijsman
- Re: [Rift] Negative disaggregation implemented Tony Przygienda
- Re: [Rift] Negative disaggregation implemented Bruno Rijsman