[babel] Restarting nodes and seqno requests

Toke Høiland-Jørgensen <toke@toke.dk> Mon, 30 April 2018 11:22 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 3D0CE127077 for <babel@ietfa.amsl.com>; Mon, 30 Apr 2018 04:22:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id edlxVsW3Gm8I for <babel@ietfa.amsl.com>; Mon, 30 Apr 2018 04:22:15 -0700 (PDT)
Received: from mail.toke.dk (mail.toke.dk [IPv6:2001:470:dc45:1000::1]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3E135126DCA for <babel@ietf.org>; Mon, 30 Apr 2018 04:22:15 -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=1525087331; bh=OA03CE5cgn1yfrdyv/ghLPGB/6VrUlsdbhiGRiNKwM8=; h=From:To:Subject:Date:From; b=SEQeFhiPxXhN9tyFIwIf1JZ/Iq+rP4mA4lhA8NFFe6BK9Fwk2YylE42Koq6Dl3qqD ULwR+bE9KLIDZT0MFzEHsOVXUekqn28TZZ3AEdNCNp3g98CovGVuqOHto3UlzY1/ON Naiav6n9jkqXcfU/Wi+e6nkh0zQV5D2jxP8AZmy1YQR4CKUfB1TMqkWX7Y8or2w8f0 jDfxweYbYoe+2n2Z5Yds+PQ142GmWEHPR2WjAZRnbjQSQ7dYSaWAulg3bgVQPh6d/5 C5BkxsM/vEnTVLrGtymZbzWX2HRmyt4xDbYyBnGJBN0ZtLOLGK2qHlta7rc3nLC+xS q07iOw1KijM8A==
To: babel@ietf.org
Date: Mon, 30 Apr 2018 13:22:10 +0200
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <87po2h2b31.fsf@toke.dk>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/4_3TI8yJyD3Z312a0vxV3e9qFsw>
Subject: [babel] Restarting nodes and seqno requests
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 30 Apr 2018 11:22:17 -0000

I was debugging an issue with routes staying unreachable for a long time
after a node reboots; and decided I wasn't actually sure what the right
behaviour is, so I thought I'd ask.

So, the simple scenario is this:

- Babel nodes A and B have established a neighbour relationship, and node
  B announces prefix P with seqno S.

- Node B restarts (i.e. shuts down, loses its transient state such as
  seqnos and comes back up either immediately or after a relatively
  short time). It will then start announcing prefix P again, but now
  with seqno S' < S.

- Node A sees the new announcements from node B with a lower seqno.
  Since the hold time for P has not expired, these updates are
  unfeasible, so node A sends a seqno request.

- Node B updates its seqno to S'' = S' + 1 and resends the update.

- In many cases, S'' < S, so the update is still unfeasible from A's
  point of view.

The question is, how is this supposed to be resolved? Should A keep
resending the seqno requests each time it gets a new unfeasible update -
and if so, is there any limit to the frequency? Or should A immediately
consider the update with seqno S' as feasible because its selected route
has metric infinity?

I *think* the answer is the former (and that no rate limit is needed),
but I may be missing a reason why it is safe to accept the unfeasible
update during hold time... So what does everyone else think? :)

-Toke