Re: [Idr] BGP Message level ACKs

tom petch <ietfc@btconnect.com> Thu, 09 March 2023 17:05 UTC

Return-Path: <ietfc@btconnect.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 5EC95C151709 for <idr@ietfa.amsl.com>; Thu, 9 Mar 2023 09:05:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-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=btconnect.onmicrosoft.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 7K90UI5eaIoC for <idr@ietfa.amsl.com>; Thu, 9 Mar 2023 09:05:44 -0800 (PST)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on071c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1f::71c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4BB0C1516FF for <idr@ietf.org>; Thu, 9 Mar 2023 09:05:43 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jT38u6L4fJbtOUXREBnAuDMkoPfk3DbQfMWHAUcMv12aMsfw3x/LLhXXjE4m6VcoXRrwiyMZYtxvfu51YAjcE+UYzevgM4TsWbHWN+WCsu5LzC+cmre/uM59qD7KoUJ033sv0O9pr2aapPzuh5mqoh9orIJmAWF9nAlVDmrP1ev5qviSpVO2GmhRagW9IECotqLYa/1x4rfU7eJMIN9Kd5RPKNqxYqhbMK+weLtzNBJfewMmHEBsrQT9Ej4/uicCK+3QvVWRNzhmDXMw8kRW5sy5/uvBO4rQdiqk+kvfHZcWFOoV9CUpT12MZxmthIn1+XriQuBFaATzQQFZ33iBwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3fciaDbDlItzWvZw6C1UCXkdEXFug9sDjm/QNUT3K1w=; b=OeWLmNbuKBOO2FBwKnKrMtohSC6Ty6bZMaeUeT1B0QPZxHD3KI6Htrt0+gjcPCxBqieeACgVmacfBK15U3WQir0UqaeTY88bD59TITb0LuVzSfBaZ5QHkzpPWmXv3lIsWmolztudGEJBLY3aXZEZQsb9gYQ7kaDLdCIGbG351DscJLXgSPZUpVNufs2AnBuqcuMKx07gbHrNMIxbw9aGPFzmVFNGq2A8bkd71HrYJ25qiu6DbzlM1OswF1wLELw739Jf3UAWnachGMjUtJk3i6jzgtLqAUFelrDYHfytdX3QXktKB6Z563VpOcOj1sFVn8i1Z2pc6VjGghet/6wBzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3fciaDbDlItzWvZw6C1UCXkdEXFug9sDjm/QNUT3K1w=; b=sUcHaQQ17ijRZOvkpkG+/oD5wOK27CK1OoMnCk4/oJX8RQWCaS1FKGcjqDi9jYo997eigNyhitmt6EZ4UaTMsUljiwvXMOuz1Hdwq5QdwHlviz+C8C49QWahLp5rApofUyxDgeBoUVBJRYPB2IqXYdPrHb3kkWsZTjoF93gHwUs=
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com (2603:10a6:20b:134::11) by AM7PR07MB6405.eurprd07.prod.outlook.com (2603:10a6:20b:132::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.18; Thu, 9 Mar 2023 17:05:39 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::34a0:cbda:4ac4:e2f0]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::34a0:cbda:4ac4:e2f0%5]) with mapi id 15.20.6178.018; Thu, 9 Mar 2023 17:05:39 +0000
From: tom petch <ietfc@btconnect.com>
To: Robert Raszuk <robert@raszuk.net>, Tony Przygienda <tonysietf@gmail.com>
CC: "idr@ietf. org" <idr@ietf.org>
Thread-Topic: [Idr] BGP Message level ACKs
Thread-Index: AQHZUdIlWnMXnmk+uEeYvB1eDVHVza7xMr0AgABK0gCAAJTYAIAAEaWAgACH9Xc=
Date: Thu, 09 Mar 2023 17:05:39 +0000
Message-ID: <AM7PR07MB6248B0114C140321A47AA6D3A0B59@AM7PR07MB6248.eurprd07.prod.outlook.com>
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>
In-Reply-To: <CAOj+MMEjBfdVK_uJ_B4CHr5suG0Zf7CSukqywTofkDMbimFEcA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=btconnect.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM7PR07MB6248:EE_|AM7PR07MB6405:EE_
x-ms-office365-filtering-correlation-id: 37417980-ba3c-4674-e34e-08db20c08255
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: PijJBl/0uISJsoUWdkkVmnuxluJje6ON7cUvUEsbLprudJCgPx6YVvZURryzUJ1a6Mhpj+AKCV90jvDn/awawrFVNLaDYAuB6/+GvngDm6Bag+GnTY2EvO/1xfaInjPXTOKAc+0VFsXzLOewEW1ZXNq3YtaBJBRPqfrBWRHNepdVF/MFHzuqsplN7nAjxJEg8CYRF/oeciDXfVajksnwCSjuU8/7NLTRWd7N40jenmcvZUKAfOckhtFDR2o4Vut4k/bWEIpWYA93vA+SGVNKLGNTFc/OV7ijPplAkn/y/u/YkfuNavV0900Mrynen1MRZU1QtWVg1Jtjyz+6/ut+7lrKu3U7ZK6Ie0g4LTf0EkT+8my/AEuoxWfhTR7QgiUx2XWYQ2aurkKqVPJun9GoAoGvZd3ZXtBNlx2Nfp+dxH0UVGihONCnAEnsuzaX6r3wjLF8RT3uz4OEfIqVE+rOmcJMb90qYaqfSbw+oVoqNqHixWEWfix3Cx/an9Mt6W1U+5uJhK/g8M8xV06pQBcNlTuf5qecTDTIfyPjbL2Y+5T+uH/Ff5DE8MtpCCfsyvSMPfXE1t6D7vy8Eg6HZis82Hfm9LJNJ0EkLfVw0b29rXrqtxBysnVcyqh1G3lb9azUD2zENFTCcKXE23kwS6NKrtuKFvlQcmCyGpllpXUseO8Be6KYe3Qo+XOu3KiZ6ZE9jqClRg0f1GSN7+hJdp4p5mD1smD+8DrxwocQHfq6MhZ7b2nBrR9snYDscJXVMS1vIuRpnLQ3XWRBXwtH7/3n9w==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(396003)(366004)(39860400002)(346002)(136003)(376002)(451199018)(33656002)(83380400001)(82960400001)(186003)(26005)(71200400001)(53546011)(9686003)(7696005)(6506007)(966005)(86362001)(8936002)(5660300002)(41300700001)(4326008)(8676002)(64756008)(2906002)(52536014)(76116006)(66446008)(66476007)(66556008)(66946007)(91956017)(15650500001)(38070700005)(316002)(122000001)(38100700002)(478600001)(110136005)(55016003); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: KWSUxGse0wmbgD+aydOgyJVeTpByWs+0/K8/yDqMCIGuStCoeRjNP8BNobLa0wPZPlcEHOF5x6eUm4JO5b/HCg6wrTY1Y2vyVHV2yxrC9ZgJa6/9MAGqtubt7cK3DCl62TUxOCOnny079bv4hTeBSMiFj2cz4rLH4lfi/X90Scx6G1I1vW+8E+R7+ebQzjZwn46V/EE+bdJj0gO1mb6qKJOJDfBQMs4dxhkw7yLbJr3ijhivR3YSFzljNo7F8dTCzjupVGJpko+5xpc9z8ZZNLeoQ9oXcSa83Qsb36Xba93eyCZE8+y71Nw3Rw+wYCAKwYBzLfLGDifmDhAeojB0uWhCB4o09yYkkIh5GcDDfnJvcZ2umuktefqNU+OqzdGgGnYdDH+ecoo+7anCczPlL031vuZLaYfRrtAgMOUcPguzBFo+a8/nkLaY5Xfw9hDj3rcv1AcZ5ye8tARH5PrXEHI090wYcsgJy1QPnLoHQmB4qgKYc8G3noawWDUXXSZDT4hq99uxAxKP+881D3q9f685n8AZg2mnlNvHzhQpW16yvhXCAAa60+nf7S9HMTTwc4vLOdAOlfH9D07N76Mhflf3FXtsjRSduotc5FPlt5vGAZOFRfDcPT9FemEK5hsYpygRiqfRYwjjqeJbzEJz6qgwjCQ98p3tE88i++MeK4oQFz0cj90PinU5LX2cAVguO+Uv7oKTch0a8JeQrunmqFfqACUEn1aKxHc0zuY+qeQaW/PSqOvaqCBmU6hgmkBeuKUHGIAjYjSvnei1oZy3tn6RryQVj6R2117Q1N1wvNuJFiHRAkyjQvoZQRBc7jwjV2MAKLuhldc7Pj7eUnwzpvWbH/qbEj+EuRYoDh9gXGGHsX6ODRjqjnY3pOaV2eS4+9UtJRtuowwDlfT1B6AyBKA8/IWHh3xS+O0d7yJ6SgxXqU4dOpAghXuDXBXDKP/g5cG1MXFqXEzATJt20JtQP1kVc14P1Ynx6O/PIpbc1mgRpr9QcaeRJSfnkeXNGCYqzoANXkDWyeeq7Fr0LPIEpBaakwX5VdQdsQaPHSsh6aZRz9k6RVtOcHSvfNuedbgdEWJTwfyxXRlMBM55pRmuGlyWZkE/PPH1rRCzsH98rV2gSlisJ4/o9xGhiitQW1dAj/eJTulmuGfH/US8gwBVtEnUHzehDC0xq5CKCRUzo8X6OaQNyTdcTHokI67TZ3pRA8tZNXRrrssJD4dv2kMaNCTsw7UHHEYDME1gC6SrZpO05+C8XgjAY9i/5wY+9wR8qlkrPvKinFUEKwRGmsOWahGlPSWh98NjykuKm2I3AZtG3Z8kTouvAH+2tLqCjqbdhlFj7k696dqIjgztW4NfCsxHFUyxINT6zI1ovNdNWLHq9IGnrUTxEhZltejfwT83sN5hPTqAZFiYa6qYuRCbf3VAhkiNIi8bWLhkkFqM/hI3V99mbHtCMmQfE9AjIMPg02woO1kOe+tAe6amYXGTG388U6HinAU7KRTKeh5skkIHMZexyuM4hcVVl0CTRbsmLR+za2zjeR4G4kt/eH1nEZqsV6jK3v9GAjczBd0n3J96PZ+gUM9vCc50slnV8pwi
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37417980-ba3c-4674-e34e-08db20c08255
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2023 17:05:39.5221 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1ZcvZYWqgSAVA/eGZHAvwb935d4WDkZ1vbBBty43d7wFOG+u2pSK98ygFFN9A1tOwNX7EIW25pxhJEmnOndyOA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6405
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/Z8oP00QmHS4UJVkShAtClE-ssHw>
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: Thu, 09 Mar 2023 17:05:45 -0000

From: Idr <idr-bounces@ietf.org> on behalf of Robert Raszuk <robert@raszuk.net>
Sent: 09 March 2023 08:47

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.

<tp>
But ...

If everything is working, well, nothing more needed.

I assume that the idea is that when a Message Level ACK fails to arrive, then the session is taken down.   Which means there must be a mechanism to detect the failure.  Which means a MessageLevelACKTimer.  Which sounds rather like the SendHoldTimer.  The difference would seem to be that the SendHoldTimer works on KEEPALIVE, OPEN, UPDATE whereas this works on UPDATE only but otherwise the logic is much the same.  

The SendHoldTimer is operating at the Message Level and is purely local, whereas a Message Level ACK involves action by the far end.

My objection to the SendHoldTimer is the incompleteness of the specification (e.g. does it include OPEN? the text implies it but then omits it) and the great complexity of attempting to patch it into the FSM.  It could be specified, and specified more simpler IMHO, if it made no reference to the FSM, if it did not attempt to update the FSM (in at least 41 places).

Tom Petch

Many thx,
Robert.


On Thu, Mar 9, 2023 at 8:45 AM Tony Przygienda <tonysietf@gmail.com<mailto: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<mailto: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<mailto:Idr@ietf.org>
https://www.ietf.org/mailman/listinfo/idr