Re: [Idr] BGP Message level ACKs
Alejandro Acosta <alejandroacostaalamo@gmail.com> Sun, 12 March 2023 12:57 UTC
Return-Path: <alejandroacostaalamo@gmail.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 4C805C14F748 for <idr@ietfa.amsl.com>; Sun, 12 Mar 2023 05:57:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 3-c46PMJJroq for <idr@ietfa.amsl.com>; Sun, 12 Mar 2023 05:57:49 -0700 (PDT)
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) (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 60A36C14EB1E for <idr@ietf.org>; Sun, 12 Mar 2023 05:57:49 -0700 (PDT)
Received: by mail-qt1-x836.google.com with SMTP id z6so10719182qtv.0 for <idr@ietf.org>; Sun, 12 Mar 2023 05:57:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678625868; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=iS69HvoJsvrSQQ5bamDHqPDixJN/cWvgJzKWK6Yh4XI=; b=pGouxqF4vgXWBhzCU7lp30IVCEv02Yn+hwsCQcRGTsCJw5Vfns+qRHrQOwfEXT2xdL eDDTma/AhiZ9DCcaxPvszfwfYxtqOkuX2d5RuKpXozxBW44ICiuQUY1nrvxNeTNzH2OQ Ssi73RWAN6P8Nw5G+T+afDA+eZSTiyPw2TbMd8H3WZMOhrBIntMSq0MwruGi1v5SOJ1m WsptJkzcCH7SuFd2D0MSJsRAfbpfB+wyYqMNXrLKzEuGsS5GG01Se3fBDka9T7T7tIVS fL5kNbcZ69iYXtqDLtzHu4BafaXx4TrwpX4RFQtRTs/8xVz3QGBjlNfrSgTRrcuEAWiY k+Tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678625868; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=iS69HvoJsvrSQQ5bamDHqPDixJN/cWvgJzKWK6Yh4XI=; b=YA2yT/1s+6DMzzm8gkIbAQmRrhbnsUsnd40JF5/U5WAQF0dc6RDa95Ue0Hkz5NRp/8 7UZh78D2qX8IyPC95MVLDoM07Tr+ajA32wiTaFPTktL2Ww7VWIV0FgMDJobg4lkfFHGP /ymz9RoFUgEcfYrIOFQsWkyzdXdOF2MKDr0gFZM5f8mTtr98z6xIr0udEQHYFPc6oDDv Pm5Asklxat6kT7R6TtE/mTJKhzX1Th9r6Vk7oqX/pIA3ot+eqimLb6yYcNQW4JIIed+D FGJgER+ghGUJtdy9Cr3PS3/r73iAAeL7Q9bzgtX3xs0ukgWgtyO7U+rM9nL2E2KrVT+4 7Zwg==
X-Gm-Message-State: AO0yUKWOIcPdopLr5PbX0yAgvVp8TXIKK30YtqoXhHc7zXWGb9QRJBkj sOcZb1jRtpk3xFiwdbQPnKWxKAuIe9/UavaO
X-Google-Smtp-Source: AK7set85RqpoOSr+7lSTjZYBEDpM7V2mCxokKwq/Xez+UBGbwizGEY0kuLWohuIA3Uu0qV/zpXqXVQ==
X-Received: by 2002:a05:622a:450:b0:3c0:3d68:540c with SMTP id o16-20020a05622a045000b003c03d68540cmr20356386qtx.65.1678625867731; Sun, 12 Mar 2023 05:57:47 -0700 (PDT)
Received: from ?IPV6:2001:470:5:592:80b:64f2:ad68:81ac? ([2001:470:5:592:80b:64f2:ad68:81ac]) by smtp.gmail.com with ESMTPSA id 29-20020a05620a049d00b007430494ab92sm3493950qkr.67.2023.03.12.05.57.46 for <idr@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Mar 2023 05:57:47 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------hwlQVcGMHD72wtpNwVkSJxup"
Message-ID: <679a80eb-1395-26bd-02a1-4d796879c247@gmail.com>
Date: Sun, 12 Mar 2023 08:57:45 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0
Content-Language: en-US
To: idr@ietf.org
References: <CAOj+MME+xOzrA3e1CKmHR2JC+fiWkV4LinuL5ovA3L0tRWORRg@mail.gmail.com> <45816498-6F09-4135-ACB4-6E51683001C7@pfrc.org> <CAOj+MMFaJViRnRqwaLXHsBbcm6g5XtUuc5kh71ScZ9OKSoBNZw@mail.gmail.com> <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> <CA+wi2hNoG0Rt=06E7DC9DXGxiEZCvoD1JzKxJsiiyec17h8LYg@mail.gmail.com> <CAOj+MMHeV0jeDUSFVBQdzuS_BSC_z8+vTsFWzoEiXju15t+R0g@mail.gmail.com>
From: Alejandro Acosta <alejandroacostaalamo@gmail.com>
In-Reply-To: <CAOj+MMHeV0jeDUSFVBQdzuS_BSC_z8+vTsFWzoEiXju15t+R0g@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/97thZsM4KNUCRTSXOOMnW-UXPNc>
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: Sun, 12 Mar 2023 12:57:53 -0000
Hello, it can be also added as a new BGP Capability On 9/3/23 11:58 AM, Robert Raszuk wrote: > > Well it can not be put in KEEPALIVE thread as by definition it would > be event triggered not periodic. So hardly would fit that thread. > > Cheers, > R. > > On Thu, Mar 9, 2023 at 4:54 PM Tony Przygienda <tonysietf@gmail.com> > wrote: > > aha, ok, yeah, and that problem is real as we know ... you should > have mentioned it. > > yes, anything that reflects a token will do fine here ... unless > developers optimize and put that processing into the same bgp > keepalive thread. Then we are where we started ;-) > > -- tony > > > On Thu, Mar 9, 2023 at 4:48 PM Robert Raszuk <robert@raszuk.net> > wrote: > > Tony, > > > But I lost track frankly WHAT we're solving here with this > ACK you suggest ... > > The reported problem is: > > "The remote peer is not reading my BGP messages while TCP > works fine." > > So if a remote peer can ACK that it got messages I send to it > (last 10 or last 100 etc ..) it solves the problem as defined. > In fact it solves it better then current proposal of using > single side socket buffer full timer. > > I should have not thrown into this UDP as it changes the > objective - from informational nice to have ACK to something > much more complicated to provide transport reliability. That > was not the original aim. > > Best, > R. > > PS. If you like lets talk more about it face to face :) > > > > > > > On Thu, Mar 9, 2023 at 4:36 PM Tony Przygienda > <tonysietf@gmail.com> wrote: > > simple update message "counter" does not change much of > anything really since the sender has to keep this > "counter" on the NLRI at which an update was sent to > understand which prefixes have been processed by the peer. > and all very amusing if you start to overlap with newer > updates containing the newer version of the same prefix. > Unless you think of "keeping all the updates stored on the > outbound until they 'acked" which would be a fantastic > attack vector by intentional or unintentional slow peers + > double with the TCP buffering already. With the > interesting stuff on top of when you give up on the peer > if it doesn't ACK in timely manner/at all ... > > So, if you want to know what the peer on the other side > "processed" you will have no other choice but keep per > NLRI _something_ and possibly per peer (as I explained > with lots cleverness you can get away without per peer > possibly). Unless we're talking unreliable transport under > BGP which as I said seems to be solving wrong problems in > wrong layers. But I lost track frankly WHAT we're solving > here with this ACK you suggest ... > > I still don't understand what "application consuymed the > data" _really_ means in terms of assurances the remote > system is giving you in terms of forwarding > behavior/convergence with other peers/whatever and hence > this "assurance" seems to be to have no semantics. > > So, I chime out. Either this all has no real semantics and > possibly conflates multiple issues together or I don't > grok what it's all about. > > motivation for having seq# on enhanced GR draft I get. we > do mark/sweeping kind of thingies on session re-establish > (which GR really is) and we have to sync up on versions of > state held (as optimization vs. re-sending e'thing). And > having the other side "confirming" really means > somethjing, namely FIB/RIB is programmed to this version > so no updates are needed. It's kind of simplified version > of the refresh-options (since it basically assumes there > is no GR-over-GR or endless updating on sender that makes > the process never stop?) but it burns basically 8 bits per > NLRI as well (assuming most likely there is never more > than one peer GR'ing either or maybe just one version for > all peers work, I didn't think that through yet). But > yeah, no free lunch ... > > --- tony > > On Thu, Mar 9, 2023 at 9:48 AM Robert Raszuk > <robert@raszuk.net> wrote: > > Tony, > > I think you are looking at this in a different way. > > So what you are likely considering is a very fine and > detailed sequence number like approach. That's a lot > of work indeed to accommodate it into current BGP > outbound code - with tons of optimizations. > > I on the other hand was just thinking of reusing > simple UPDATE message counter per peer. Some (I would > say most) implementations I think have it already. > > The only sort of open issue is to synchronize the > counters or at least clocks. Alternative would be to > inject periodically a sequenced BGP MARKER message to > tag local counter with remote counter and have the > ACKs being MARKER triggered. Quite popular solution in > completely asynchronous systems :) > > So to spec this out should be pretty straightforward. > But again this email is to just probe the topic not > volunteer to do it. > > Many thx, > Robert. > > > On Thu, Mar 9, 2023 at 8:45 AM Tony Przygienda > <tonysietf@gmail.com> wrote: > > The problem is on the sender side. it has to keep > track of whether an update has been ack'ed by a > peer and that's in simple terms per peer per NLRI > (modulo group discussion as usual). It can be > tricked into per NLRI only but since NLRIs get > packed differently, in different sequence towards > different peers a high scale implementation will > end up with at least per prefix. This is _very_ > expensive, particularly memory wise. Tricks can be > played with rollovers like in > https://datatracker.ietf.org/doc/draft-idr-bgp-route-refresh-options/ > but the logic isn't simple by any means and > ultimately any solution may force implementations > into structures to support this that are very > inefficient for other parts of the implementation. > > Generally, shoving reliability of the transport > into BGP is basically solving the wrong problem at > the wrong layer just like shortcutting BGP to run > on a user transport protocol brought nothing but > lots of technical debt grief over the years. Real > problem is lack of control session layer that > realizes underneath that transport went away and > notifies up and/or allows transport for the > session to come up again. It's only when a new > session needs be established AFAIS that we need > state sync which lands us in possibly GR corners > or refresh corners again rather than trying to > reinvent TCP on top of UDP in BGP by ACKs (I > wonder when the first window size proposal starts > to come in ;-) > > -- tony > > On Wed, Mar 8, 2023 at 11:52 PM Robert Raszuk > <robert@raszuk.net> wrote: > > Hi Jeff, > > A fundamental challenge for bgp > implementations is efficiently keeping > versioning across peer-groups.* Some > implementations are friendlier to that > idea than others, but the inconsistency in > the ability to do that is one of the > things that prevented this idea from > progressing. > > > I did not mean that it should touch update > generation and replication. The ACKs which I > had in mind would be operating way above this > and simply periodically indicate to the sender > that last N number of UPDATE messages got > received by remote BGP process. > > N-being configured and possibly negotiated on > the session bootstrap. > > Critical part of this is the time scale. If we > are talking about the last 10 min or last 20 > min this would not be sufficient for helping > to achieve reliable transport, but could be > IMO more than sufficient to make sure UPDATE > got to remote BGP I/O. > > So I am not sure if this is real distraction > to the topic. I would rather call it > exploration of alternative approaches. Just > like punting the "issue" to telemetry ... > avoiding need for any BGP code or FSM state > machine change needed. > > Many thx, > R. > > _______________________________________________ > Idr mailing list > Idr@ietf.org > https://www.ietf.org/mailman/listinfo/idr > > > _______________________________________________ > Idr mailing list > Idr@ietf.org > https://www.ietf.org/mailman/listinfo/idr
- [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Gert Doering
- Re: [Idr] BGP Message level ACKs Tony Przygienda
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs John Scudder
- Re: [Idr] BGP Message level ACKs Jeffrey Haas
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Tony Przygienda
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Tony Przygienda
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Tony Przygienda
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Alejandro Acosta
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Claudio Jeker
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Mikael Abrahamsson
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Mikael Abrahamsson
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Mikael Abrahamsson
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Job Snijders
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Mikael Abrahamsson
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Jeffrey Haas
- Re: [Idr] BGP Message level ACKs Job Snijders
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Job Snijders
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs Jeffrey Haas
- [Idr] SendHoldTimer default value (was: BGP Messa… Job Snijders
- Re: [Idr] SendHoldTimer default value (was: BGP M… Robert Raszuk
- Re: [Idr] SendHoldTimer default value (was: BGP M… John Scudder
- Re: [Idr] BGP Message level ACKs Claudio Jeker
- Re: [Idr] BGP Message level ACKs Jeffrey Haas
- Re: [Idr] BGP Message level ACKs tom petch
- Re: [Idr] BGP Message level ACKs tom petch
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs tom petch
- Re: [Idr] BGP Message level ACKs Robert Raszuk
- Re: [Idr] BGP Message level ACKs tom petch
- Re: [Idr] BGP Message level ACKs Gert Doering
- Re: [Idr] BGP Message level ACKs Robert Raszuk