Re: [Idr] BGP Message level ACKs

Claudio Jeker <cjeker@diehard.n-r-g.com> Fri, 10 March 2023 12:09 UTC

Return-Path: <cjeker@diehard.n-r-g.com>
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 E9A7DC1BE882 for <idr@ietfa.amsl.com>; Fri, 10 Mar 2023 04:09:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.895
X-Spam-Level:
X-Spam-Status: No, score=-6.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
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 PM_psQjD0U-c for <idr@ietfa.amsl.com>; Fri, 10 Mar 2023 04:09:09 -0800 (PST)
Received: from diehard.n-r-g.com (diehard.n-r-g.com [62.48.3.9]) (using TLSv1.3 with cipher TLS_CHACHA20_POLY1305_SHA256 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA512) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 361BFC1CAB32 for <idr@ietf.org>; Fri, 10 Mar 2023 04:09:08 -0800 (PST)
Received: (qmail 40798 invoked by uid 1000); 10 Mar 2023 12:09:06 -0000
Date: Fri, 10 Mar 2023 13:09:06 +0100
From: Claudio Jeker <cjeker@diehard.n-r-g.com>
To: Robert Raszuk <robert@raszuk.net>
Cc: Mikael Abrahamsson <swmike@swm.pp.se>, idr@ietf.org
Message-ID: <ZAsd4oBk+u0t1S3j@diehard.n-r-g.com>
References: <CA+wi2hMjjPepoPnqUu0aMH4OtkezrC+sEV7YsmO92NnG-8+Q8Q@mail.gmail.com> <CAOj+MMEjBfdVK_uJ_B4CHr5suG0Zf7CSukqywTofkDMbimFEcA@mail.gmail.com> <CA+wi2hO0e5b7R49j9giz0bxF6d1EWddH+rYG7cSjMM4aSri49g@mail.gmail.com> <CAOj+MMH_3nwoyDE7GxNSa+fLPO2VD+SWCiGxmCem0s74-E17Ww@mail.gmail.com> <ZAoIpXq8Z1vKU0g3@diehard.n-r-g.com> <CAOj+MMFQjc0K9dBji+Y2DSkZsuuEwgRxNYee+0pmKOzD9iL9pQ@mail.gmail.com> <alpine.DEB.2.20.2303101028540.2636@uplift.swm.pp.se> <CAOj+MMH9TjNm98p9k-5afGyQD=mxXVf17P2Jd6azhBq5zmdWDw@mail.gmail.com> <alpine.DEB.2.20.2303101205400.2636@uplift.swm.pp.se> <CAOj+MME5NTFf+FZhkNdwLsqbBqPM98_4dL_+a_JeqOviBCCU8Q@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAOj+MME5NTFf+FZhkNdwLsqbBqPM98_4dL_+a_JeqOviBCCU8Q@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/CUiOF0WG0FVmWZPeq4P4ATVY_U0>
Subject: Re: [Idr] BGP Message level ACKs
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.39
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, 10 Mar 2023 12:09:13 -0000

On Fri, Mar 10, 2023 at 12:34:08PM +0100, Robert Raszuk wrote:
> I don't really want to measure proposals in lines of code it takes to
> prototype it.
> 
> Your diff does not even expose any CLI or YANG model as an example :)

It is my diff everyone talks about. There was no need to add extra code
because both the last write time and the timers are already automatically
exposed. So there was no need to do any of that.
 
> In fact in respect to your draft you do not need a new per peer timer at
> all. What seems more than sufficient is just a simple counter to record how
> many messages BGP was not able to enqueue to a peer.
> 
> If it was not able to write 10 or 20 or 100 messages (KEEPALIVES or
> UPDATES) the effect would be the same as comparing each time message fails
> a timer value.

You realize that the output message queue of a BGP process grows to a
multiple 1000 messages during a full sync. So your suggestion will not
work. I don't understand this resistance against a new timer.
Every BGP implementation has some form of timer API implemented and
extending it should not be that complicated.

There is a reason why progress is measured as any byte sent during a
timeperiod. As I exlained already the goal here is not to have something as
precise as the HoldTimer which is re-triggered by any message. The goal is
to have something in place for the uncommon case that a system still sends
messages but refuses to accept messages. It is extra conservative to not
trigger too early (since that should happen via HoldTimer) or even worse
trigger when systems get busy because of larger network changes.
 
> See timer in HoldTime is needed as we need to send periodic keepalives and
> negotiate it with the peer. In your case you are not sending anything so no
> need for a timer based approach.

Not quite true, there are two timers running. The HoldTimer and the
KeepaliveTimer. One is to send KEEPALIVE packets and the other is used to
detect sessions that don't send any messages anymore.

-- 
:wq Claudio