On Sunday 01 February 2015 14:15:16 Moritz Warning wrote:
I need to display the number of all nodes/clients as well as all neighbor
nodes/clients. This would be easy if batctl would be able to output the
respective list of mac addresses (batctl ... | wc -l).
I've started writing a patch as part of a feature request:
But the problem is how to get the respective output form the debug tables.
I have been reading the docs, but have not been able
to understand the necessary information needed, no offense:
Some explanation beforehand:
Clients are computers not running batman-adv,
represented by the MAC address of its network interface.
Nodes are computers running batman-adv,
represented by the MAC address of its primary interface.
List of all nodes:
Get all MACs from the 'Originator' column of the originator table
Note that this may also show secondary interfaces of your neighbors - you may
have to filter that against a list of primary interfaces you collect otherwise.
List of all neighbor nodes:
Get all MACs from the 'Nexthop' column of the originator table
and make it a unique list.
That sounds about right, if you want to include all neighbors which are in
radio range (even if you are not currently sending to them). Alfred-vis for
example only considers neighbors which are actually chosen for some
connections. Again, you may include secondary interfaces.
List of all clients:
Get all MACs of the 'Client' column of the transtable_local table
when it starts with a '*' character.
Yes, but you may want to filter out local mac addresses, which are configured on
top of VLANs on bridges.
List of all neighbor clients:
Get all MACs of the 'Client' column of the transtable_global table
when it starts with a '*' character and when the nodes own originator
MAC (of the primary interface?) is also in the 'Originator' column.
Yup, but in this case again you don't know what are clients and what are
bridges/vlans configured on top of your other nodes. That's going to be tricky
How about you use alfred-vis or your own alfred-based service to do the
filtering properly? Some kind of distributed/centralized database would help on
the filtering job, IMHO.