Okay, I found this design description that is very helpful. :)
https://www.mail-archive.com/[email protected]/msg00662.html

Design
======

Every sroamd node acts as a WiFi AP, as DHCPv4 server and as an IPv6 RA
server.  There is a replicated database, flooded between all sroamd nodes,
that contains, for each mobile node:

   - the IPv4 address it has been assigned;
   - the IPv6 prefix that it has been assigned;
   - its current location.

This information is used to announce a route to the mobile node over
Babel, which ensures that traffic destined to the mobile client gets to
it.  Traffic from the mobile node, on the other hand, is routed using
a simple hack (idea stolen from PMIPv4): all the sroamd nodes have the
same IPv4 address, the same link-local IPv6 address; a gratuitious ARP and
ND is sent to each node as soon as it associates to an AP in order to
update its neighbour tables tables.

Interestingly, the algorithm is intrinsically racy: agreeing on the mobile
node's location is a distributed consensus problem, and therefore
theoretically impossible.  In other words, in the absence of a global
clock the nodes sroamd nodes might, occasionally, disagree on the location
of a mobile node.  We solve this issue by detecting this situation (grep
for "conflict" in flood.c), and pinging the node at both locations.  Note
that I haven't proved the algorithm correct, so there might be some edge
cases I haven't thought about.

On 7/20/21 11:00 AM, Nick wrote:
Hi,
is there protocol documentation on how sroamd works? I looked into the README.md but the text was rather short.

Bests,
Nick


_______________________________________________
Babel-users mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users

_______________________________________________
Babel-users mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users

Reply via email to