Re: [babel] New Version Notification for draft-ietf-babel-rtt-extension-06.txt
Toke Høiland-Jørgensen <toke@toke.dk> Wed, 17 April 2024 19:54 UTC
Return-Path: <toke@toke.dk>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 640BDC14F5EA for <babel@ietfa.amsl.com>; Wed, 17 Apr 2024 12:54:25 -0700 (PDT)
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, 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 (2048-bit key) header.d=toke.dk
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 uGKtvFrlfnQc for <babel@ietfa.amsl.com>; Wed, 17 Apr 2024 12:54:21 -0700 (PDT)
Received: from mail.toke.dk (mail.toke.dk [45.145.95.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 D8B9DC14F6B9 for <babel@ietf.org>; Wed, 17 Apr 2024 12:54:19 -0700 (PDT)
From: Toke Høiland-Jørgensen <toke@toke.dk>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1713383656; bh=kbL4zUJ30QFn0Krma1UXDTsf8MO1okEQfjaqsk0wWXg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=MrVpPamsG0YCRm21VrtkxY7+5LdnnceFCGSddC85f7Nn2AAZlDR/cG1uaFli9e2x4 aKu5edIMfsdYEGGralaDgtmBwlhrZpTna1aTtrjxSksX+tiq6Fmkpcyy/eYibhUoQM Rq/cuS9Q+QwtNwjq7tM2m0QPVqlMgZJxebUPbPNc8PANexAORf0w/uND4NpMkXRlKe HDX07gAw6RAP2B5Zj5hsEJYM5HaUje/rxOONMszBxJThCaXyg+5F971szYIXDzwHm9 Z2zEbCrDtC2QmM9udOoeOSm8vbiVW4lDZcqxNcJ6wmS/5nUMHeeHYuOMZjH6vajHtn nnYTt1WERQamA==
To: Juliusz Chroboczek <jch@irif.fr>
Cc: babel@ietf.org
In-Reply-To: <87bk67ixr9.wl-jch@irif.fr>
References: <171328574275.28898.9111599332162642753@ietfa.amsl.com> <87v84h5k56.wl-jch@irif.fr> <87r0f5urqv.fsf@toke.dk> <87sezki0w2.wl-jch@irif.fr> <87y19bu70m.fsf@toke.dk> <87bk67ixr9.wl-jch@irif.fr>
Date: Wed, 17 Apr 2024 21:54:16 +0200
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <87plunu5nb.fsf@toke.dk>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/cI9QvcNHBRvs1n3YSK4S3wp0-hk>
Subject: Re: [babel] New Version Notification for draft-ietf-babel-rtt-extension-06.txt
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Apr 2024 19:54:25 -0000
Juliusz Chroboczek <jch@irif.fr> writes: >> Well, the issue we're trying to resolve in Bird by using kernel >> timestamps is that if the application blocks for a long time without >> processing incoming packets, that will be part of the RTT which can (it >> seems) lead to some pretty inflated RTT values. > > Why would the application block? Isn't that a bug in the application? Well, not so much block as being busy doing something else (and being single-threaded and using a coarse-grained event loop). And yes, arguably it's a bug in the application, but if we're giving advice about how to write a robust implementation, it might be worth addressing anyway. >> Or drop this entirely if we really believe that it doesn't make any >> difference? > > On the write side, it definitely makes a difference: if memory serves, > kernel timestamping happens after queueing, so any local congestion is > going to make the two timestamps very different. > > On the receive side, it probably doesn't. Yeah, on the receive side the difference will be microseconds, unless the application suffers from the issue mentioned above. I agree that the calculated RTT should include any congestion in the local qdisc layer (or equivalent), so using kernel timestamping on TX is probably not a good idea; but that's not really feasible to do either, as you'd have to instruct the kernel how to insert the timestamp into the packet at the right place. We don't even have a BPF hook that can do this without jumping through a lot of weird hoops :) So maybe we should change the text to address the RX side only, so instead of: "and receive timestamps SHOULD be computed just after the packet is received from the network stack." we'd have something like: "and receive timestamps SHOULD be computed at the earliest possible time after the packet is received from the networking hardware. The latter can be achieved by instructing the operating system kernel to add a timestamp to packets when they are received (using a mechanism such as the SO_TIMESTAMP option), or it can be done by timestamping the packet as soon as the babel implementation receives it from the networking stack. If timestamping is done in the application itself, care needs to be taken to make sure the application always processes incoming packets in a timely manner, to avoid inflating the estimated RTT by the time packets are waiting to be processed by the application." The above is probably way too verbose, but I'm sure you get the gist of it :) >>>> We don't explicitly expire RTT state if the sanity checks keep failing, >>>> so I don't believe we're compliant with the last paragraph of section >>>> 3.3. > >> > I have misgivings about this paragraph myself. Shall I remove it? >> >> I'm not sure I understand the issue it is trying to solve, TBH; why was >> it added? > > Right, I'll remove it. OK, SGTM! -Toke
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… David Schinazi
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… David Schinazi
- Re: [babel] New Version Notification for draft-ie… Toke Høiland-Jørgensen
- Re: [babel] New Version Notification for draft-ie… Toke Høiland-Jørgensen
- Re: [babel] New Version Notification for draft-ie… Toke Høiland-Jørgensen
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… Toke Høiland-Jørgensen
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… David Schinazi
- Re: [babel] New Version Notification for draft-ie… Toke Høiland-Jørgensen
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] Okay to update draft-ietf-babel-rtt-e… Gunter van de Velde (Nokia)
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… David Schinazi
- Re: [babel] New Version Notification for draft-ie… Pascal Thubert
- [babel] Okay to update draft-ietf-babel-rtt-exten… Juliusz Chroboczek
- Re: [babel] Okay to update draft-ietf-babel-rtt-e… Juliusz Chroboczek
- Re: [babel] Okay to update draft-ietf-babel-rtt-e… Gunter van de Velde (Nokia)
- Re: [babel] New Version Notification for draft-ie… Juliusz Chroboczek
- Re: [babel] New Version Notification for draft-ie… David Schinazi