Re: [manet] Draft-lou-manet-sturp-00 Review

Christopher Dearlove <christopher.dearlove@gmail.com> Thu, 27 July 2023 14:13 UTC

Return-Path: <christopher.dearlove@gmail.com>
X-Original-To: manet@ietfa.amsl.com
Delivered-To: manet@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D604FC1519BC for <manet@ietfa.amsl.com>; Thu, 27 Jul 2023 07:13:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Gr1YytwGuAGc for <manet@ietfa.amsl.com>; Thu, 27 Jul 2023 07:13:32 -0700 (PDT)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 6AFCCC15199D for <manet@ietf.org>; Thu, 27 Jul 2023 07:13:32 -0700 (PDT)
Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-4fcd615d7d6so1751898e87.3 for <manet@ietf.org>; Thu, 27 Jul 2023 07:13:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690467210; x=1691072010; h=message-id:in-reply-to:to:references:date:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=ao8xarzD5G89SL6LCjyb8BYtv1Ar9nLsFV/EDhlCSbE=; b=BVMIu5+rg/bce9IA/BG/TAToulfvJlyP7g0kYKwePH9Q+xK2QmS5CmacGJB2lf8wPF ZEZ2xeKKNzfmrErEkZYbZNJcHaLffMgSFdYn7wYI0t24FSk2qU2Z31WaPKWlm6kRnsZu 1cQikIzGllw1YcMWqWDYMsnmgoM2SIu1B3WSSvGzETJRD5cQKJvUUeBxgPrqjzXJC9eo yf2rl4Y6CmJPRDCEZeSNWu5cKQqzqxKJnPdjpgCZgH1wQuBaTNbqYw97gFomcUhaFdXs 7ZIl/AhG7t8SSN6u1+ROk6lZ7wW1u8rHpPPbzFDtossokXW4Ke/UI3WnVw2SeohvCyIh aoYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690467210; x=1691072010; h=message-id:in-reply-to:to:references:date:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ao8xarzD5G89SL6LCjyb8BYtv1Ar9nLsFV/EDhlCSbE=; b=VwXUK1KEqdQlMlClklNSqIh4MI08K0pXOAfxfKg+D+l+B5XBjarpgDVB3gXpoRFA0V J6dPV7LYYQoYlFalo0lYtJhQjhvfuaJRu3qT++CTsVQmNXvTYK3GIifF2GIXSw51K6bd nqdJ4DfAMfSegpNVU+nKFHM9Ps/4nz55ByaoAGi5lAhAjoc9mS8kbflRTWs9p/3elR3G IKXiFfI3t/nU2KID5yJsQdq3xMVKfGXKzpsAkFuJGDul/B4oNXOk4C3DQGRH/iikRipf XNEUfOMjqeBWOD/1aj5A1c//nMkyAZcdiDgbuQi6PUORDSMlkjrgVkJ7VppgOfscPnaV /Hzw==
X-Gm-Message-State: ABy/qLb5cyXNqJucRUgwz+Xy+vJSsxCQHrT2Xl6gAv3OUb+D8JBVUY4/ p7V8WeTEJo5PSNupg5iCGexOxHgTP3o=
X-Google-Smtp-Source: APBJJlHpC2xznc1le7YeROywAVvMLNVJ0Y39ZFeMcn2JRECjXWnMI+SiGiQgqA36jZToDC9cgM1SnQ==
X-Received: by 2002:ac2:4bd5:0:b0:4fe:6fc:1fc7 with SMTP id o21-20020ac24bd5000000b004fe06fc1fc7mr2299162lfq.27.1690467210205; Thu, 27 Jul 2023 07:13:30 -0700 (PDT)
Received: from smtpclient.apple (82-132-233-108.dab.02.net. [82.132.233.108]) by smtp.gmail.com with ESMTPSA id x12-20020a1709065acc00b00997e52cb30bsm820216ejs.121.2023.07.27.07.13.28 for <manet@ietf.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 27 Jul 2023 07:13:29 -0700 (PDT)
From: Christopher Dearlove <christopher.dearlove@gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\))
Date: Thu, 27 Jul 2023 15:13:15 +0100
References: <CAGnRvupkyMgVXw4=6UThYEYeV-bCy3EcWsB=hpPkg9n-0UzcgA@mail.gmail.com>
To: MANET IETF <manet@ietf.org>
In-Reply-To: <CAGnRvupkyMgVXw4=6UThYEYeV-bCy3EcWsB=hpPkg9n-0UzcgA@mail.gmail.com>
Message-Id: <CA3CDD52-83CE-41BD-BD5B-45D01897C342@gmail.com>
X-Mailer: Apple Mail (2.3731.600.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/manet/ySBJoMFI5LdOKmTrk8W20JSMK14>
Subject: Re: [manet] Draft-lou-manet-sturp-00 Review
X-BeenThere: manet@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Mobile Ad-hoc Networks <manet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/manet>, <mailto:manet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/manet/>
List-Post: <mailto:manet@ietf.org>
List-Help: <mailto:manet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/manet>, <mailto:manet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jul 2023 14:13:34 -0000

Putting together my thoughts in more depth, and I hope coherence, than in the MANET meeting or my last message here.

Thanks for the welcome in the meeting.

Let's start with that in order to consider a new ad hoc routing protocol, we should start with what is the problem it solves that we don't already have a solution for.

There was a long period when this WG was more like an IRTF group than an IETF WG, but we came out of it with one Proposed Standard routing protocol, OLSRv2, but fell short on a second, AODVv2. If we want another routing protocol, what does it offer that is new?

STURP is, as I understand it, considering networks where the main changes are routers joining and leaving the network. This might be contrasted with OLSRv2 that can handle highly dynamic networks (the M in MANET) where connections between routers form and break unpredictably.

There are then two avenues STURP could take. One is as a standalone protocol. In that case whether it is worth pursuing that depends on whether we have such networks, and whether we need it.

Here, I'd be interested in input in particular from Henning on the Freifunk network and whether OLSRv2 that it uses (or used the last time I looked at it) is considered to be a large overhead.

Because it's worth noting that OLSRv2 can be used in different ways. One of my regrets is that we ran out of steam before creating an Informational RFC (or other material) that describes all the different ways that OLSRv2 can be used. It has a lot of options, which are there to address various cases, even if those cases aren’t spelled out.

One of those is what we dubbed "responsive" (because reactive was already taken for something else). Rather than use periodic messages - technically use them but with such a long interval that in practice we never send them - we only send messages in response to changes in the neighbourhood, or other changes that indicate this should occur.

Before discussing if this is sufficient, returning to the STURP draft, it suggests modifying OLSRv2. I believe this is the wrong approach. Possibly, ideas from STURP (although actually most are not new) could provide an additional optional feature to OLSRv2. But this should be 100% backward compatible with the current protocol.

Note that this not just about using the RFC 5444 message format - whether an independent STURP should use that is a matter for the WG (but also note RFC 8245).

So if we try using OLSRv2 in fully responsive mode, and a router tries to join the network, what happens?

First, routers in that network need to take advantage of the permissions granted in RFC 7181 and RFC 6130 that they may send messages when circumstances (generally their neighbourhood) changes. Possibly more than once if signalling is unreliable.

Is this sufficient? Actually, not quite. I've been looking at RFC 7181 and running a scenario through.

(If you do, I recommend a network of three routers A - B - C where a fourth router D tries to make it A - B - C - D. I think this is about the simplest case that demonstrates all the essential features.)

And I think there is an omission. (If there isn't, and it's hiding somewhere, please let us know.) It's not a critical omission, because it's fully compatible with OLSRv2, but in the permissions to send additional messages, there's no explicit MAY that says that a router can send a TC message if it identifies, from its Router Topology Set, that a new router has joined the network.

Without that, parts of the network might be invisible to the new router. (In the A - B - C - D network, unless B sends a TC message, A is invisible to D. And B is only visible in the 2-Hop Set.)

Note that managing your network so that parameters and options across the network allow it to function effectively (not just legally) is always an issue, this is just another case. For example when running fully proactively, we need message intervals consistent with router distances and speeds.

There is an alternative - actually adding the additional permission explicitly as well as this would make sense if taking this route. This is that when a router joins the network, it gets a dump of the relevant parts its new neighbour's Topology Information Base to put into its base.

This isn't a new idea, we considered it at the time, but again it was a detail we never got to. In part because it's not trivial. (Note that if you have that feature you would be allowed to use it in other circumstances, but this would probably be the only recommended one.)

You need to define what are the relevant parts of the Topology Information Base and how to encode them in suitable TLVs in an RFC 8245 compatible way. Note that this includes issues such as multiply addressed routers and link metrics. There’s also a significant problem with how to define the validity time of this information, and possibly other details I haven’t thought of yet. There are some good reasons we never did this.

Note that this is a (hypothetical) fully backwardly compatible extension; a router receiving this information but not understanding it can simply ignore it. I’m also not saying this is necessarily a good idea, just that if such a feature is added, this is the OLSRv2-compatible way to do it.

Is this worthwhile? I return to the point about real world use cases. Unless there’s a strong case made in the real world, not just hypothetically, I don’t think it is. (That is of course just my opinion.)

In short, and considering the OLSRv2 case, I do not believe in trying to put STURP into OLSRv2. It completely doesn't fit. (Just as one detail, it gives no thought to link metrics.) But if there's a real use case, there could be - I put it no stronger than that - a motivation to add a topology update TLV to a HELLO message. (It's then also possibly received by routers that don't need it, but that does no harm, and is more efficient.) Any modification should start from OLSRv2 as-is and what trying to achieve. Or if OLSRv2 is not the right vehicle, then consider a stand alone protocol.

But there's a lot of work in an independent STURP too. OLSRv2 is as complicated as it is in large part due to requirements that people had, such as multiple interfaces, multiple addresses per interface, shared addresses, link metrics, attached networks - which I haven't discussed above - and more. Any new routing protocol has to consider which of those apply to it, and handle those that don’t.

As for accepting this as a WG draft, I think that’s at the least, premature. Particularly as it suggests things (such as that STURP in anything like its current form can be applied to existing portals. Note that I’ve concentrated on OLSRv2 not just because I’m familiar with it, but also because it’s (at present) the only standardised routing protocol owned by the WG.