Re: [manet] AODVv2 implementation

Henning Rogge <> Tue, 28 November 2023 06:24 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2C026C14E515 for <>; Mon, 27 Nov 2023 22:24:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Status: No, score=-2.106 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, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id lOG2I_Ah0RYD for <>; Mon, 27 Nov 2023 22:24:25 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4864:20::632]) (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 (Postfix) with ESMTPS id 8D63CC15155E for <>; Mon, 27 Nov 2023 22:24:05 -0800 (PST)
Received: by with SMTP id a640c23a62f3a-a02c48a0420so696872866b.2 for <>; Mon, 27 Nov 2023 22:24:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1701152644; x=1701757444;; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=RAMBgQYn0YgEKIi5tEMOslCKvbuM7gzJyeklddEFBdo=; b=m/kdlNC+r86bYFiAtc4PT145Qy4NORrniPcrlfhN/WCr3Sq8qlBp31DwbVLRqp04bP yjwFuQlKWpcyGeVQ8HpWyRdfj9An7rENPrz52c/zTXcCn4I040js+ivbdKKnerboHx6k m1RgC4wTTiL5twwEJfZJRzy6iNtQaaLA2LQWer6KQbBOIrusoefcQqqj5aqng24syzEk loWU18+GdEu5IH8DDoAR977sHUNlKxaM47jX9SB8JM/gCEFxmpkiL7qZyIimL1Dp19Vo fRWuijDTSdvUBRWT2BFQ3hFE/+ixL0h+mzyU1wJ2Z80d4oNmpXwg0HenL1q6YcGGCZon B5Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1701152644; x=1701757444; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RAMBgQYn0YgEKIi5tEMOslCKvbuM7gzJyeklddEFBdo=; b=LkcRHuNul1zHUC06ztPdcHODp8b7/kROdXxxXWOCRpfDspwts9JMsUKXZDOLh27tJb dv0xr8IrnaQRfEYF+mA59DNxurFyO3ECuMNTWh7NyUs/C9UOlI+uO5gzuK2x2QHfh1sZ l1wdqFDKj4PHheYCse8IX9DofhGNZ6O3IG1LX78zuYb78r9RqJ8irURMxIcZeC/sfE5P bQuDal1GnRcRZzPuK6e/KByb96TMzSSJ3G2bKiZAfrDB6EkdKmRlqGDMdMbbzPm7vjio Mz8LYJa2qQ0qznqFS13Cl7qTeqvSAIRh91niFEegQ3Qv37+A8Phj6wnP42b8NGCSKtrE f8jw==
X-Gm-Message-State: AOJu0YzDgrgdxJ8HAgDHBMVgyIBCQzGzRHRnmdCWISB3DI0LJqh2Hf0X yIs/qGzbShNVtZRFAw7KbKEaXbhdmIyW6NlkqN4=
X-Google-Smtp-Source: AGHT+IFRtSFRJ0n/a+Vhi0od0/I04MOnHPMGPd5IOt3X0puKjUNSw4vYW/kNA//ipGiZ0GxreAZQ3pxe4saIZArEuyQ=
X-Received: by 2002:a17:906:73d8:b0:a16:4929:1484 with SMTP id n24-20020a17090673d800b00a1649291484mr234258ejl.47.1701152643310; Mon, 27 Nov 2023 22:24:03 -0800 (PST)
MIME-Version: 1.0
References: <> <> <> <> <> <> <>
In-Reply-To: <>
From: Henning Rogge <>
Date: Tue, 28 Nov 2023 07:23:37 +0100
Message-ID: <>
To: Anders Nilsson Plymoth <>
Cc: Juliusz Chroboczek <>, "" <>,
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [manet] AODVv2 implementation
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Mobile Ad-hoc Networks <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 28 Nov 2023 06:24:26 -0000


it's good to hear that at least someone built an IPv6 implementation
of AODV... the existence of the "ICMPv6 Code Field" (AODVv2 13.6)
suggested that there were at least plans for implementations in the
past, but I never heard about one of them before.

Just as a personal note, I always wondered why nobody tried to
implement AODV with standard (Linux?) policy routing and a TUN device
as a sink for unreachable IP traffic...

Henning Rogge

On Tue, Nov 28, 2023 at 2:18 AM Anders Nilsson Plymoth
<> wrote:
> Hi Henning,
> I feel like I need to step into this discussion. First, I agree with you that I would like to see an implementation of AODVv2. It is needed because guidance is needed to steer the implementation, with example. Second.
> Actually I would like to have access to a working implementation of AODV (v1), but my team haven't found one (the existing one have degraded into deprecation and non compilation so we are forced to use OLSRv1/2, (with success)).
> AODVv2 would be implementable should someone have the resources, desire and skills for it.
> I worked as an intern in Charlie's group 20+ years ago now at NRC, and at the time, they had an AODVv6 implementation. That implementation was promoted by Nokia's effort to drive IPv6 in general, with inputs from Bob Hinden being part of the team as well. Me, at the time, while working as an intern, also worked with HUT in Helsinki who in close collaboration with Nokia and their IPv6 implementation tried to introduce some additional research features. Some of this early work was adapted by Ryuji Wakikawa (now Toyota) into NRCs AODVv6 IPv6 and then Nokia and Toyota NEMO work, and on which me and Ryuji did some collaboration. As part of this work, I forked AODV-UU into the IPv6 Usagi branch with those mentioned research extensions. As for ICMPv6 "hacks", Ryuji and Charlie (and team) worked quite a bit on that, and made some specific modifications and submitted a couple of drafts to this group about that. It should be in the archives. In addition, I know the guys at Ericsson in Stockholm (forgot the names) were interested in this too. For Nokia, this was part of their core efforts of Nokia breaking into cellular Networking, where IPv6 was a key part of that strategy, including that AODVv6 implementation albeit somewhat on the periphery.
>  Anyway, fast forward to the future and about a year ago I was in need of an ad hoc routing implementation in Linux, and for our use case, reactive routing would make more sense in terms of topology changes. We couldn’t find any compilable AODV implementations for Linux, with patches, hacks etc. It was too far gone. We have instead versions of OLSR and OLSRv2 running in our prototypes, with some inadequacies I must say, but doing the job just fine.  But sadly an AODV implementation is currently not available, and neither anTo  AODVv2 implementation as per this thread, but the feasibility should not be in doubt. But again, even pushing a sponsored draft towards RFCx should have a current implementation. I am sorry to say this, but even here you need a big car, and my Outback is not that kind of car.
> To get to the point, someone with muscle and money needs to step up.
> Thanks,
> Anders
> On Mon, Nov 27, 2023 at 7:11 AM Henning Rogge <> wrote:
>> On Sat, Nov 25, 2023 at 3:32 PM Juliusz Chroboczek <> wrote:
>> >
>> > Hi Charlie,
>> >
>> > > I do not have an implementation.
>> >
>> > It is my understanding that Henning has concerns about the implementability
>> > of AODVv2.  Given Henning's track record, I recommend that we should not
>> > dismiss his concerns.
>> Hi Juliusz, hi Charlie,
>> I would not say that AODV (v1 or v2) is impossible to implement (some
>> people have done it), but it's much harder to do on most general
>> purpose operation systems than OLSR(v1 or v2) because of its necessary
>> interaction with the forwarding plane.
>> I think I have seen three AODV (v1) implementations in my life, two of
>> them NS-2 emulator patches (I don't trust NS-2 code at all, most
>> routing implementations take a lot of liberties that cannot be done on
>> real software/hardware)  and one of them Linux... the Linux one was a
>> mess, completely with a Linux Kernel module for a kernel 5+ years old
>> (which made it in fact unsable).
>> It seems no one ever took the time to seem if there is a good way to
>> write the "ICMP-trickery/route-status-monitoring" in a clean way,
>> which is most likely also the reason why I never heard about an IPv6
>> AODV implementation, which would need a different ICMPv6 based hack.
>> That's why I would like to see a running implementation of AODVv2...
>> it's the only way to validate that you can build interoperable
>> implementations from the current draft. It's also the only way to test
>> if the metric integration in AODVv2 is working reasonably well,
>> because I don't think ANY routing protocol will do us good with
>> hop-count metric on any wireless radio that supports multiple data
>> rates.
>> Henning Rogge
>> _______________________________________________
>> manet mailing list