Re: [Sidrops] rfc8210bis further review - question 1

Job Snijders <job@fastly.com> Sat, 09 March 2024 16:40 UTC

Return-Path: <jsnijders@fastly.com>
X-Original-To: sidrops@ietfa.amsl.com
Delivered-To: sidrops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE28CC14F60E for <sidrops@ietfa.amsl.com>; Sat, 9 Mar 2024 08:40:44 -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, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 (1024-bit key) header.d=fastly.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 wBb3aE2DAzZX for <sidrops@ietfa.amsl.com>; Sat, 9 Mar 2024 08:40:41 -0800 (PST)
Received: from mail-oa1-x2a.google.com (mail-oa1-x2a.google.com [IPv6:2001:4860:4864:20::2a]) (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 1C333C14F5EA for <sidrops@ietf.org>; Sat, 9 Mar 2024 08:40:40 -0800 (PST)
Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-221960e3edcso1069547fac.0 for <sidrops@ietf.org>; Sat, 09 Mar 2024 08:40:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastly.com; s=google; t=1710002440; x=1710607240; 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=LpytnXPxDVWhPUEcMGfsQdg0tJxavsxC2oJMhZqxXtk=; b=Sk+c4VLG6o5jIkV6LsMwgRcMyNqA7KFbRjMOzUa+Lv+7lS6TwpUSdstdlBmQv7nZiB W2rSkPWZwZJRR4A75TmVff5orM7taTHfzKEb4/D6r0Q01KFSTRZO4HsuPawxKGbMW0qT Ph9TYsOsTulFC/AeCgUi5KyETuZS5fcrZzJh4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710002440; x=1710607240; 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=LpytnXPxDVWhPUEcMGfsQdg0tJxavsxC2oJMhZqxXtk=; b=N2sv2ILvOpOFPmf7wjTQ5EKuRIs3cTWhkd1KBFYcR+akM30xmuQQ7o0kye6l8dOUws kTsffYF3pQKqopslZaAZyfjpgKPkdqZrS2WGhykrANDb3V40fJX0ZGscUU879sXTl+TH V3oypkOthYd+9t5mdGh0U8/RNwWGJi3v5LHCruMqFKyXRWB0CYJFNZdLvLSFbrle+xhU h9J6zgSZMwuap/0z8OKshipzNJanHBtrMKasEg/wwYu259SfiIpJmtmdEI26Kz2VTEkm VxWMFw6bIFGUwSoqODHesyckdF6KlhBro5gf9wPOGptU4HFn/D3XpsrU9Ixjc/XaIsOm NKRA==
X-Gm-Message-State: AOJu0YwZieH9ROmDHMXLuYjiGrddvVHTqdSgArpmxf1Jl2k7vn3t1yd7 jynJlyi/pYnAXExd0XjYYvlMW+QSAMgliauesYIS2LC3eJ2O5fn4qZs3/IQDiDh8Eg/XQSN23wb 7WHLAk9uKo0OK/1q5faY+2Ap8R+diTdaRrVZAz5UjeEiigQ2SYew=
X-Google-Smtp-Source: AGHT+IGm5g+of1LdeebuxBvPGsx2OB+op436+OhLzZtn0z4URAJ182BxRR/UzCsWvAk8JqRa5WSZz5og7RYDGGd+gPA=
X-Received: by 2002:a05:6871:112:b0:21e:b4d0:9961 with SMTP id y18-20020a056871011200b0021eb4d09961mr1881601oab.55.1710002439740; Sat, 09 Mar 2024 08:40:39 -0800 (PST)
MIME-Version: 1.0
References: <ZexJxZYsgNGth_Q7@snel> <ZeyPxXlKwdlqupBq@diehard.n-r-g.com>
In-Reply-To: <ZeyPxXlKwdlqupBq@diehard.n-r-g.com>
From: Job Snijders <job@fastly.com>
Date: Sat, 09 Mar 2024 17:40:29 +0100
Message-ID: <CAMFGGcAQb1Ax8dL64cFZFcNnBjR8XXp9-WoF4FrKc7-cbatMqw@mail.gmail.com>
To: Claudio Jeker <cjeker@diehard.n-r-g.com>
Cc: sidrops@ietf.org
Content-Type: multipart/alternative; boundary="000000000000fc7ccc06133cf7be"
Archived-At: <https://mailarchive.ietf.org/arch/msg/sidrops/N5NCRhEdlj3g93aNCDimF0FxjPs>
Subject: Re: [Sidrops] rfc8210bis further review - question 1
X-BeenThere: sidrops@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: A list for the SIDR Operations WG <sidrops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sidrops>, <mailto:sidrops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sidrops/>
List-Post: <mailto:sidrops@ietf.org>
List-Help: <mailto:sidrops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sidrops>, <mailto:sidrops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Mar 2024 16:40:45 -0000

On Sat, 9 Mar 2024 at 17:35, Claudio Jeker <cjeker@diehard.n-r-g.com> wrote:

> On Sat, Mar 09, 2024 at 12:36:37PM +0100, Job Snijders wrote:
> > Dear all,
> >
> > I have some questions about rfc8210bis
> >
> > Question #1
> > ===========
> >
> > In Section 8.2:
> >
> >     Cache                         Router
> >       ~                             ~
> >       | -------- Notify ----------> |  (optional)
> >       |                             |
> >       | <----- Serial Query ------- | R requests data
> >       |                             |
> >       | ----- Cache Response -----> | C confirms request
> >       | ------- Payload PDU ------> | C sends zero or more
> >       | ------- Payload PDU ------> |   IPv4 Prefix, IPv6 Prefix,
> >       | ------- Payload PDU ------> |   ASPA. or Router Key PDUs
> >       | ------- End of Data ------> | C sends End of Data
> >       |                             |   and sends new serial
> >
> > and section 5.6 "IPv4 Prefix" states
> >
> >     """
> >     The cache server MUST ensure that it has told the router client to
> have one
> >     and only one IPvX PDU for a unique {Prefix, Len, Max-Len, ASN} at
> any one
> >     point in time.  Should the router client receive an IPvX PDU with a
> >     {Prefix, Len, Max-Len, ASN} identical to one it already has active,
> it
> >     SHOULD raise a Duplicate Announcement Received error.
> >     """
> >
> > Imagine the cache emits the following sequence of PDUs:
> >
> >    Cache                                   Router
> >    ~                                       ~
> >      <-- Serial Query
> >    Cache response                      -->
> >    Announce 2001:db8::/32 Origin 65535 -->
> >    Withdraw 2001:db8::/32 Origin 65535 -->
> >    Announce 2001:db8::/32 Origin 65535 -->
> >    End of Data w/ new serial           -->
> >
> > A VRP for 2001:db8::/32 is announced, withdrawn, and announced again.
> >
> > Should the above sequence of PDUs trigger the 'Duplicate Announcement
> > Received' error?
> >
> > I'd take "only and only at any one point in time" where 'point in time'
> > is the window between the last serial and the next serial? To what
> > extend can routers expect caches to provide a consistent view within a
> > single Cache Response?
>
> This is covered in section 5.3 Serial Query:
>
>    When replying to a Serial Query, the cache MUST return the minimum
>    set of changes needed to bring the router into sync with the cache.
>    That is, if a particular prefix or router key underwent multiple
>    changes between the Serial Number specified by the router and the
>    cache's current Serial Number, the cache MUST merge those changes to
>    present the simplest possible view of those changes to the router.
>    In general, this means that, for any particular prefix or router key,
>    the data stream will include at most one withdrawal followed by at
>    most one announcement, and if all of the changes cancel out, the data
>    stream will not mention the prefix or router key at all.



The friction here can be resolved if the cache imposes total ordering, and
the router checks for the order (doable in a single pass). Imposing total
ordering also helps with potential for some race conditions.


So the above violates the MUST in the first sentence.
>
> Now OpenBGPD as a RTR client does not try to track down such issues. It
> requires a to complex data structure and in the end as long as the per-RTR
> state is consisten we do not care. As mentioned in an other mail the
> per-RTR state is atomically applied to the global config once the End of
> Data PDU is received.



So if the MUST is violated, what’s the appropriate error code?

Kind regards,

Job