Re: [Idr] TCP & BGP: Some don't send terminate BGP when holdtimer expired, because TCP recv window is 0

Brian Dickson <brian.peter.dickson@gmail.com> Fri, 18 December 2020 18:29 UTC

Return-Path: <brian.peter.dickson@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 172BE3A0B89 for <idr@ietfa.amsl.com>; Fri, 18 Dec 2020 10:29:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SVqGwBbosOnT for <idr@ietfa.amsl.com>; Fri, 18 Dec 2020 10:29:00 -0800 (PST)
Received: from mail-vs1-xe34.google.com (mail-vs1-xe34.google.com [IPv6:2607:f8b0:4864:20::e34]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3AEC03A00E0 for <idr@ietf.org>; Fri, 18 Dec 2020 10:29:00 -0800 (PST)
Received: by mail-vs1-xe34.google.com with SMTP id e15so1875616vsa.0 for <idr@ietf.org>; Fri, 18 Dec 2020 10:29:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1zKUfvK2P74mirn2qtTc0EfYCax74lGrbxrI7ZoT+N4=; b=GHl9Vsp3O5bloJwhWjqhuL8SqI5CvhxA+BB2GnUe0ITADJ9EpqkFL7ysFscVZ5zv9w MID2REVMqvLtsFN+q08ZfHOHpk8dYv2ASdRD4C0c062ToNpIEzbaNLFi13UqegDhB/QT IdmtsVwvYa03vnGiXl3cBk7jD+YBGpnzhS6Ca94CbXCzPXMCBZlNt1dunmloZFD18l7a cvqywYgO9s2nKtZS3BNDlIbOedWKiB1FdOrSp47VkV3zmSpUE6cZoNnZ41GSdLX9bDcB v5lsELR3WJFpSgH18ad519VqCqEyhr2/YbXjhv07E/2j843GV/PQLw5DTsh+8EXGZQFZ rtjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1zKUfvK2P74mirn2qtTc0EfYCax74lGrbxrI7ZoT+N4=; b=e+dCsraleWZQk+g9k8YeVuctqBU7AkqXjuCZ3XcmGYWFoLaIkyq855XsEZ3wUv8aaj TqV/u5LLZ2Ur/yUJsGSgTF2qQA59Hw0iKt1+25KC3azQmUKBL3MX30biEDEQul81Ze/B b+P4nXVxxyAPWboaj/SDcHkzf+3TT5jJx04Q5Gcf7TyOz3/Sxqreo0/cqPoGBtyqqIa9 lxI50ZHeLVb79HMvnvUft2fCEGT5Ltr/Ib4Z+Bh/lK5La14+8vcngihBvH3vVdoqioi8 Hl+Vf0wsK9A9dBlQ1yjBNfWv5WEG5Lonbpox1A66QMkzJS1qj6nUesFhJlqXk6ww68GO e21A==
X-Gm-Message-State: AOAM530Fl2+nmc65DM9Lj7bRmPmkP7W2580lxP1u8V/MMv02MaiAr6If 8/NJndUU0DMNyTEA4Jhv6uqFfd9RnvRFpwhUvws=
X-Google-Smtp-Source: ABdhPJwTJOs+r8atKBFBgc2hIJZuhTj8Nnj7zZU3we7j6FPEPAwpNJckhO9NvVsS1bh8QHd+E0A+DKJogDcbIYlv+mM=
X-Received: by 2002:a67:c282:: with SMTP id k2mr5670954vsj.1.1608316139258; Fri, 18 Dec 2020 10:28:59 -0800 (PST)
MIME-Version: 1.0
References: <CANJ8pZ-WMDotkQvhN-NuP7ivZkPRR-9S2KJSar=6463U0VKkow@mail.gmail.com> <EFC56A31-1276-4DAB-9526-9C2F24814D2C@pfrc.org> <CANJ8pZ_LnDna_jtipcLJq9rrS3MM32rLdxRW8ntC2aEi9VvzMg@mail.gmail.com>
In-Reply-To: <CANJ8pZ_LnDna_jtipcLJq9rrS3MM32rLdxRW8ntC2aEi9VvzMg@mail.gmail.com>
From: Brian Dickson <brian.peter.dickson@gmail.com>
Date: Fri, 18 Dec 2020 10:28:48 -0800
Message-ID: <CAH1iCio_3MCk8fVL4DiZD=qMsFCe+C-DSsTCgNOBnRYOjGUiMQ@mail.gmail.com>
To: Enke Chen <enchen@paloaltonetworks.com>
Cc: Jeffrey Haas <jhaas@pfrc.org>, "idr@ietf. org" <idr@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002ac72605b6c148fc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/LUYwL_Y2rqd1NacuLEUY3UBiOYI>
Subject: Re: [Idr] TCP & BGP: Some don't send terminate BGP when holdtimer expired, because TCP recv window is 0
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
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, 18 Dec 2020 18:29:02 -0000

On Fri, Dec 18, 2020 at 10:09 AM Enke Chen <enchen@paloaltonetworks.com>
wrote:

> Hi, Jeff:
>
> No, I am not assuming that packets are getting somewhere. The
> TCP_USER_TIMEOUT would work as long as there is "pending data" (either
> unacked, or locally queued). The data can be from the local BGP Keepalives
> or the TCP_KEEPALIVE.
>
> Thanks.  -- Enke
>
>
Actually, my point was not only about packets getting somewhere, but also
that the LOCAL implementation of the TCP stack should not be assumed to be
bug-free (in relevant ways).

Your response is still assuming that those mechanisms actually work 100%
reliably 100% of the time.

Yes, if the implementation works correctly, TCP_USER_TIMEOUT would work.
However, I'm saying the BGP code should not assume that is the case, and
put some guard-rails around the behavior.
The overhead of some small amount of checking, regardless of how it is
done, is likely quite low.

(If packets are flowing, as viewed by updates and/or keepalives being seen
from the peer, for example, it might not be necessary to invoke those
checks? Or the check might only need to be done every $INTERVAL, like every
minute or two.)

Brian


>
> On Fri, Dec 18, 2020 at 4:44 AM Jeffrey Haas <jhaas@pfrc.org> wrote:
>
>> Enke,
>>
>>
>> On Dec 17, 2020, at 4:02 PM, Enke Chen <enchen@paloaltonetworks.com>
>> wrote:
>>
>> If one is paranoid that the BGP keepalive may not be generated locally,
>> then use the TCP_KEEPAVLIE option together with the TCP_USER_TIMEROUT
>> option. That would be more robust.
>>
>>
>> You're making the peculiar assumption that in broken situations that
>> packets are getting somewhere.  This is Brian's point.
>>
>> -- Jeff
>>
>> _______________________________________________
> Idr mailing list
> Idr@ietf.org
> https://www.ietf.org/mailman/listinfo/idr
>