Re: [manet] AODVv2 implementation

Donald Eastlake <> Thu, 25 January 2024 06:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A5C08C17C8B0 for <>; Wed, 24 Jan 2024 22:07:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.854
X-Spam-Status: No, score=-6.854 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, 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 IzTaVj1hUh7S for <>; Wed, 24 Jan 2024 22:07:31 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4864:20::536]) (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 AB8FDC18DB8F for <>; Wed, 24 Jan 2024 22:07:31 -0800 (PST)
Received: by with SMTP id 4fb4d7f45d1cf-559f92bf7b6so728901a12.0 for <>; Wed, 24 Jan 2024 22:07:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1706162849; x=1706767649;; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=i6IXnrjW1HP96WjlhtXZMSyuL1tiIcLD9JLRCez1V5I=; b=my/qiy0YUparWgz7058YxRKjaf2jLw8AWIILPNpAD6BZol3ytvMle3b2Gms8BIlSNk HwODjeitwX9OBzWtNAhTpJSPNwESkyP8uuAilxb2pfK9EBFIYq90aZ7TRDOPzeWJheiI kizIzzMb2R6ZnJxpdMxZz83bO02MpLOp4+WVfT4650OBG3+RZfiP1iM9gGxNxelisjLe Dnui/kKRvcXdfzhUZ20IGA+x2CSlxhhlsOywyMXQGjpLPWE9OllC+819MnXDZgMnAF9P s0rutHDf0OgqQuI1UigEW2BgJLgJiRHIZ5XtVe8q6CLXpo7bF8VUbBeV/6Ry0YRaVg3l kVxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1706162849; x=1706767649; h=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=i6IXnrjW1HP96WjlhtXZMSyuL1tiIcLD9JLRCez1V5I=; b=j8pWdlQHcpXZDJrbCeD3wmJS1Pbc7c+DiArjQ3iau2PQLpbZgc0Wbd5CflG1hKoUl/ IvGioNukGYJ2WY30rQ7GPomC0FEqbhp+C3UTRlSdqTDUWy5LMY9hAG5grlWoTkXbrbvn NNCpHf36XwmLfoUs8id8+s0S2eelaEDiiGucrxVcQCoirDlQXTAnD/fBBQQA98ekuSI8 KSrbhKXN7z6zSYTZKhgCn3j5A/A2QcOHXv+yhYFjXOhMLnFM01/6oyVddQF3PUK0kmaG kavdlILdSaAhhAkLxHAE13ft8yI94H9ONaITh+RhKspyXtqJVG9vSZLHd1tCdWvgvHRN ZACQ==
X-Gm-Message-State: AOJu0YzNDZMWncMHsK+yT+GoONKk1v1aaC4RbPOdbzd+8m7+nIOx/a1R zvJV0j0sQt70A/YL3ZVyr5y4WqlhieR3hrFUO4ggPciSi84OpNgw1btXjkRHFYUwXBfMoDPkntB 83684Yt2n/ZX1NatU5odI+3dviPjvn7jG
X-Google-Smtp-Source: AGHT+IFgNpTDBXDn3oAVd/c8R2LQA1J8aNA6qmkWFhKf8XpilmtQoWIOosSNHBUeVzg7wEoQ2DuzBP5wxhetlZdRz6A=
X-Received: by 2002:a05:6402:50d1:b0:559:b99b:fd7d with SMTP id h17-20020a05640250d100b00559b99bfd7dmr432103edb.40.1706162848862; Wed, 24 Jan 2024 22:07:28 -0800 (PST)
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
From: Donald Eastlake <>
Date: Thu, 25 Jan 2024 01:07:17 -0500
Message-ID: <>
To: "" <>
Cc: Henning Rogge <>, Juliusz Chroboczek <>, Charlie Perkins <>
Content-Type: multipart/alternative; boundary="00000000000089153f060fbefeaa"
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: Thu, 25 Jan 2024 06:07:35 -0000

I think that further exploration of AODVv2 and any AODV
implementation problems would be useful topics for the MNET WG and that we
should consider adding that to the Charter.

 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 2386 Panoramic Circle, Apopka, FL 32703 USA

On Mon, Dec 4, 2023 at 8:42 AM Adamson, Robert B CIV USN NRL (5592)
Washington DC (USA) <> wrote:

> As Justin Dean mentioned, our nrlsmf code can act as tun/tap user-space
> forwarding engine (and works on Linux (including Android ... although newer
> Android policies have locked out use of some the the netlink APIs and I
> haven't tested that in a while), OSX/BSD, and even Windows with use of
> WinTAP (or whatever it's called).  We have done some stuff with that using
> our own forwarding tables or with the OS tables but not yet for AODV.  For
> AODV some sort of extra packet caching could be useful or do something
> similar with what we do with the Elastic Multicast implementation to flood
> until the "on demand" route is established.  Related to that the "nrlsmf"
> code has support for some hybrid policies that can be set related to
> flooding/forwarding such as token bucket limited forwarding rate until a
> route is established or flooding a small number (e.g, burst) of packets
> initially upon a new flow until a route is established.  With a little
> tweaking, these could be extended a little bit to support other caching
> strategies if desired.
> Also, with the code, I have _slowly_ been refactoring code to keep the
> forwarding plane aspects of the the nrlsmf "engine" distinct and separate
> from the control plane aspects with the idea in mind to eventually have the
> forwarding plane code be used independently in a kernel module (or
> elsewhere) with the various forwarding plane features we see needed for
> these sorts of protocols including duplicate packet detection, control
> plane updates like mentioned for AODV2 below, per-flow forwarding state,
> etc.  It's been _slow_ since my time to work on it is quite limited these
> days.  Meanwhile, we do get pretty good performance with it in user space,
> and I know there's improvements that could be made.
> If the kernel forwarding table is used, there are ways (not pretty) to
> update by using a pcap socket to monitor packets and do that independently
> of the actual forwarding.  Again, not pretty or efficient, but a work
> around until such features are resident in the forwarding engine.  That's
> one of the things I see needed, including for the Elastic Multicast
> protocol operation, to have the forwarding plane notify the control plane,
> at least periodically and/or on an event-driven basis (e.g., new flow
> detected).  On Linux, I think that ideally would be through a netlink
> interface and my thought on encapsulating a forwarding mechanism like what
> "nrlsmf" provides into a kernel module would include that interface.  For
> example, to support the "per flow" packet processing and such
> notifications, I created a "Flow Description" data structure that's also
> used as an index on a modified Patricia Trie prefix-based radix tree (with
> field wildcarding support) to detect, identify, and classify packet flows
> for such purposes.
> Cheers,
> Brian
> On 12/4/23, 9:04 AM, "manet on behalf of Henning Rogge" <
> <> on behalf of
> <>> wrote:
> Hi,
> I was thinking about how to implement AODV2 on a TUN but hit an
> interesting issue when reading through the "Interaction with the
> Forwarding Plane" chapter of AODVv2...
> Chapter 6.4:
> "AODVv2 needs to update the record of when a route was last used to
> forward a packet".
> Does this mean AODV cannot use the kernel routing forwarding system
> and is expected to do everything in user space? I ask because the
> "routing cache" (and its statistics for each route) were removed from
> Linux in version 3.6.
> Henning Rogge
> _______________________________________________
> manet mailing list
> <>
> <
> _______________________________________________
> manet mailing list