alfred explicitly binds to the link-local IPv6 address of the interface since version 2016.0. I suspect one of the following caveats might be your problem:
- The link-local IPv6 address must match the MAC address of the interface
(here bat0) (derived by flipping the 2 bit of the first byte, and adding fe80 and fffe); this ususally breaks when the MAC address is changed after the interface is up
- The link-local address must not be tentative when alfred is started
(duplicate address detection must have finished; this usually means that the interface must be up for 3 seconds before alfred is started)
This took care of it. I had IPv6 disabled via sysctl and once enabled it started working. Here is the list of commands I entered to get a graph:
modprobe batman-adv batctl if add eth0 ip link set up bat0
alfred -i bat0 -m & batadv-vis > mesh.dot
Thanks for the help!