=== BATMAN support in the FreeBSD kernel

Links: +
link:https://wiki.freebsd.org/SummerOfCode2023Projects/CallingTheBatmanFreeNetworksOnFreeBSD[Wiki page] URL: link:https://wiki.freebsd.org/SummerOfCode2023Projects/CallingTheBatmanFreeNetworksOnFreeBSD[] +
link:https://github.com/obiwac/freebsd-gsoc/pull/1[Source code (Pull Request)] URL: https://github.com/obiwac/freebsd-gsoc/pull/1[]

Contact: Aymeric Wibo <obiwac@FreeBSD.org>

BATMAN (Better Approach to Mobile Ad-hoc Networking), as developed and used by the Freifunk project, is a routing protocol for (primarily wireless) multi-hop ad-hoc networks.
Freifunk is a German initiative to build an open Wi-Fi network at city-scale, based on the principles of net-neutrality.
BATMAN's motive is to be a completely decentralized protocol; no one node in the network knows or has to care about the topology of the whole network.

Support for this protocol is provided by the batman-adv kernel module on Linux, and this project aims to bring that to FreeBSD.
This includes the kernel module itself, but also userland networking libraries and tools necessary to create BATMAN networks.

Currently, creating interfaces and interacting with them works (with both Linux and FreeBSD userspaces), and packet transmission (kind of) works, although it is incomplete as of yet.
Support for batadv interfaces has been added to man:ifconfig[8] too.

Mentor: mailto:mmokhi@FreeBSD.org[Mahdi Mokhtari]

Sponsor: The Google Summer of Code '23 program
