On wireless mesh interfaces, I believe the vlan subinterfaces for babeld 
and batadv could simply be removed. I shouldn't be a problem to run both 
batadv and babeld on the same mesh interface.
For wired interfaces, it is more complicated. When a switch port is 
configured for node-to-node connection, i.e. it is not bridged in br-
lan, then the situation is the same as for wireless mesh interfaces. But 
for ports that are configured for both node-to-node and node-to-user 
connection, babeld would need to run on br-lan (since that's where the 
untagged traffic goes). Then babeld would see every other node in the 
subnet/mesh-cloud as direct neighbor (through bat0).
Maybe it wouldn't actually be that bad to have babeld see every other 
node in the mesh-cloud as direct neighbor. Babeld would know which node 
in the subnet is connected to the destination subnet and create 
appropiate routes. batadv would then make sure the packets go the best 
path to this node. I think this is the simplest way to combine L2 and L3 
routing.
Only downside I can see with running babeld on br-lan is that babeld 
doesn't know the actual metric of links that go through batadv. But this 
only matters for large networks with multiple clouds. For example: Cloud 
B is not connected to internet, then babeld might make suboptimal 
decisions about whether from certain point in Cloud B it is better to 
reach the internet via Cloud A 
versus via Cloud C.
This gives me an idea what a future GSoC project could be: Take link 
metrics from batadv and put them into babeld. Then the two could work 
perfectly together.
On Saturday, 9 August 2025 20:41:52 Central European Summer Time Ilario 
via LibreMesh wrote:
> Hi!
> One of the two GSoC project currently running is about simplifying
> LibreMesh, and one of the sub-projects is about allowing users to use
> Babeld on the plain network interfaces, not on dedicated virtual
> interfaces (VLAN) as is mandatory now.
> Agustin and Matteo are working on this :)
> https://projects.freifunk.net/#/projects?project=simplify_libremesh_an
> d_get_it_closer_to_openwrt
> 
> And you can see their projects on Freifunk's blog:
> https://blog.freifunk.net/author/agustin-trachta/
> 
> The question is: do we actually need to keep the option to use Babeld
> on VLAN interfaces, or can we just replace the support for Babeld on
> VLAN with Babeld on plain interfaces?
> I mean, if there is a usecase that requires using it on VLAN it's ok
> to keep them both, otherwise I would keep just the simplest that
> works.
> 
> There is some more information on this at these links:
> https://github.com/libremesh/lime-packages/issues/581
> https://github.com/libremesh/lime-packages/pull/631
> 
> Ciao!
> Ilario