Speaker
Description
BATMAN (Better Approach to Mobile Ad-hoc Networking) is a routing protocol for wireless multi-hop ad-hoc networks, which is used and developed by projects such as Freifunk to build open city-scale Wi-Fi mesh networks.
It is implemented as a kernel module in the Linux kernel as batman-adv
, which I partially ported to FreeBSD as part of a GSoC project.
This talk will present BATMAN, how it works, and the work done to port batman-adv
(how well the port works, what's missing vs Linux, &c). It will focus on the process of using the LinuxKPI for porting drivers from Linux to FreeBSD and its implications for future driver development/maintenance on FreeBSD.
Full description:
This talk will cover:
-
What BATMAN is, how the BATMAN V algorithm works at a high level, and how/where it's used in real life in practice, i.e., why is it interesting for FreeBSD devices to be able to participate in such networks?
-
The various components that needed to be changed (aside from porting
batman-adv
itself, there were smaller changes to surrounding software such as ifconfig, netlink, &c). -
A walkthrough of adding a Linux function to the LinuxKPI, and a bit more of a deepdive into the modifications brought to the
batman-adv
codebase to support FreeBSD to give an idea of how easy/hard it is to bring a driver such as this one in from Linux helped by LinuxKPI nowadays. -
My experience with setting up a small BATMAN network in my dorm's neighbourhood.
I will also touch on my intentions to make a port out of this and add support for Wi-Fi in the future (or the current status of the port/Wi-Fi support if I find time to work on those before the BSDCan).