Re: [Idr] WG Adoption call for draft-spaghetti-idr-bgp-sendholdtimer-09 (2/28/2023 to 3/14/2023)

Mikael Abrahamsson <swmike@swm.pp.se> Wed, 08 March 2023 10:14 UTC

Return-Path: <swmike@swm.pp.se>
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 887BFC14CE47 for <idr@ietfa.amsl.com>; Wed, 8 Mar 2023 02:14:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 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, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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=swm.pp.se
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 7PS51zu3z63E for <idr@ietfa.amsl.com>; Wed, 8 Mar 2023 02:14:11 -0800 (PST)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) (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 ACED7C14CE25 for <idr@ietf.org>; Wed, 8 Mar 2023 02:14:10 -0800 (PST)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id ACCEBB4; Wed, 8 Mar 2023 11:14:04 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1678270444; bh=scnyNZmFKQxmz0clhkKDqPMEOUf+s5s/C7NF5vjuV9Q=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=zWUyxDSkYMGT6JEs1uotZbxQwE2OPQGpBGXXmn3JkuGw9Ltqe5jJeKyu4aicUa/9h 0ZYacyfZjCEAv+tJTRnXpGDKhDtg3K8ZB1lO1fRlJUeKxzx1yWINfuzgEWR7Jeo3IG husXTN6rzKA/YZd+DglgFYLHlIn2c/jcx7YEAhpw=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id AA10FB3; Wed, 8 Mar 2023 11:14:04 +0100 (CET)
Date: Wed, 08 Mar 2023 11:14:04 +0100
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: Jeffrey Haas <jhaas@pfrc.org>
cc: Robert Raszuk <robert@raszuk.net>, idr@ietf.org
In-Reply-To: <DB2B7372-D021-4E86-AF83-C6A55EF72D75@pfrc.org>
Message-ID: <alpine.DEB.2.20.2303081108250.2636@uplift.swm.pp.se>
References: <BYAPR08MB4872FD426205CAC6F82D22BEB3AD9@BYAPR08MB4872.namprd08.prod.outlook.com> <CAOj+MMHF9G5-CmGPJpWja=1kgBrV=EYtzyhQr9La1722=D+ugA@mail.gmail.com> <m2edq1ac7s.wl-randy@psg.com> <ZAZSyywxxg0HkaDw@snel> <CAOj+MMGiB8iiqKbj40kZsSFAQXCQ+baGQWuA7oQ1D0qF5aygeQ@mail.gmail.com> <alpine.DEB.2.20.2303070725390.2636@uplift.swm.pp.se> <CAOj+MMGUfxd1LLta9=_HU+uMKcbVVE6ijkG84-ST0LDo3m2MYQ@mail.gmail.com> <alpine.DEB.2.20.2303070953000.2636@uplift.swm.pp.se> <CAOj+MMF8gELjxXB=kmn3eTu8X96vP7ueOTSA6Q+V_086wfO=NQ@mail.gmail.com> <alpine.DEB.2.20.2303071107360.2636@uplift.swm.pp.se> <3caaea46-cc66-f084-ec9b-98783d6daa49@foobar.org> <CAOj+MME=-drWX_1=9T8jqBGvEfwB59PmjLoh65i8wvdppKFKYg@mail.gmail.com> <alpine.DEB.2.20.2303071224040.2636@uplift.swm.pp.se> <CAOj+MMFc29DOAL6QK3u9gzPBQPv3wRdhTRHRPD_1ABebtuX0=w@mail.gmail.com> <alpine.DEB.2.20.2303071246590.2636@uplift.swm.pp.se> <DB2B7372-D021-4E86-AF83-C6A55EF72D75@pfrc.org>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/EG1UgKdXJZzP-tBNgPBVGWmzAP0>
Subject: Re: [Idr] WG Adoption call for draft-spaghetti-idr-bgp-sendholdtimer-09 (2/28/2023 to 3/14/2023)
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: Wed, 08 Mar 2023 10:14:16 -0000

On Tue, 7 Mar 2023, Jeffrey Haas wrote:

> Most typically it will be an application issue.  In some cases, it may be a TCP issue or other issue that results in dropped TCP ack packets.
>
> The sender can't know.  It just knows that it can no longer send.

Sure. But if it's a connectivity problem and the session can't transmit 
keepalives and the receiving application is functioning normally then 
it'll notice the lack of bgp keepalives and drop the session because of 
that.

> To use a previously supplied example, if the BGP session is stable and 
> is only sending 19 byte keepalives every N seconds with a 32k window 
> that started out empty, and the window isn't moving due to acks not 
> being received, it will take a VERY long time before the sender blocks.

That's correct, but in that case we don't have much real data we wanted to 
send anyway, so it means the other side is still kind of "in sync" with 
us.

> However, if the ack is sent out in a tcp packet, but isn't acknowledged 
> within the desired window, the session can be bounced without waiting on 
> the block.

I see the user-timeout being brought up again. Is my understanding of how 
RCP works, flawed?

application1->socket1->tcpstack1->network->tcpstack2->socket2->application2

If application2 stops reading from its socket, then tcpstack2 buffer will 
fill up, it'll then reduce the window to 0, filling up tcpstack1 buffer 
until it finallly decides to not accept any more data via socket1. What 
we're after is application1 deciding that since it can't send data to 
socket1 for a prolonged amount of time, it should decide session is wedged 
and close it.

My understanding is that tcpstack1<->tcpstack2 will gladly acknowledge 
packets/tcp-keepalives forever in this wedged state, so how does 
user-timeout help? From my understanding tcpstack1 only knows the packet 
has been received by tcpstack2, it has no idea if it's reached 
application2 or not and user-timeout doesn't help that?

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se