Thread (27 messages) 27 messages, 4 authors, 15h ago

Re: [RFC PATCH net-next v0.1 1/1] net: add GeoNetworking protocol

From: Simon Dietz <hidden>
Date: 2026-07-29 17:09:55

Let frame this in IP/Ethernet/802.11 words, where applicable,
since they are better understood by everyone.
Okay.
[...]
So i don't think thinking about a tunnel actually helps.
So let's stick to bridges and multiple interfaces.
But how do we handle multiple interfaces?
That's the central question.
Does an 802.1 bridge actually break and cause loops [when using
GeoBroadcast / the L2 flood mechanism]?
I think, yes. Currently there is a actually a mechanism implemented,
which is described in the standard and mitigates some of the flooding,
called gn_dpd_find in gn_routing.c. It is based on the sequence number
of the last few packets recieved and a packet is dropped, if it has a
same sequence number as seen before (determined by if an entry of that
sequence number exists in a ring buffer). But I am not completely sure
if that addresses all possible problems, that could arise from all
(or even most possible) scenarios with multiple interfaces (maybe even
bridged).
And the L2 food mechanism and the L2.5 unicast mechanism, both need
considering, and the two might interact with each other.
I don't think they interact with each other. The worst case regarding
L2.5 unicast is - I think - when both interfaces (with the same
position) are closest to the destination node of a unicast, but not
close enough to be in range to that node. That may be problematic. But
an interaction between the L2 flood mechanism and the L2.5 unicast
mechanism I don't see at the moment.
For the broadcast flooding, i assume there is some packet duplication
detection, and duplicates get dropped.
It is, gn_dpd_find called from gn_update_location_table which in turn
is called in the handling process of each recieved packet.
Can you add on top of interfaces a GN bridge, and have hierarchical
duplication detection? If the interface has seen the packet before it
do not rebroadcast, it just sends it up to the bridge. If the bridge
has seen the packet before drops it.
I think gn_dpd_find currently is 'global' to the gn module, so the
other interface of the bridge would detect the duplicate packet, too
and drop it. Which in turn would mean, that bridged packets currently
would be dropped instantly. (Which is the current behavior, gn packets
currently are not transmitted over a bridge, properly).
since interfaces can be in different locations, the table is an
interface property. So it might require hierarchical tables, and the
interface table just says pass the frame to the global routing table,
and the global routing table then decides which egress interface to
use?
Would it solve our problems/open questions, if we drop the capability
of interfaces being in different locations? (I think not completely,
but it may be worth considering nevertheless, I think).
So lots of questions here.
Indeed.
What we need is an architect
That I think exceeds my capabilities. Therefore I lack at least
knowledge of the linux kernel (e.g. its internal implementation of
bridges) and probably even more.

Simon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help