Hi,
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: http://www.open-mesh.org/issues/203
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:
http://www.open-mesh.org/projects/batman-adv/wiki/Understand-your-batman-adv...
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
List of all neighbor nodes: Get all MACs from the 'Nexthop' column of the originator table and make it a unique list.
List of all clients: Get all MACs of the 'Client' column of the transtable_local table when it starts with a '*' character.
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.
I do not think this approach is correct, yet. Maybe someone can drop some hints.
thanks, mwarning
Hi,
On Sunday 01 February 2015 14:15:16 Moritz Warning wrote:
Hi,
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: http://www.open-mesh.org/issues/203
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:
http://www.open-mesh.org/projects/batman-adv/wiki/Understand-your-batman-adv -network
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 to filter.
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.
Cheers, Simon
Thanks for the response!
On 02/05/2015 01:34 PM, Simon Wunderlich wrote:
Hi,
On Sunday 01 February 2015 14:15:16 Moritz Warning wrote:
Hi,
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: http://www.open-mesh.org/issues/203
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:
http://www.open-mesh.org/projects/batman-adv/wiki/Understand-your-batman-adv -network
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.
Ok, I wonder how I can filter out those secondary interface MAC addresses of 1-hop neighbors. Can those addresses be recognized by comparing it to the Nexthop column? This seems to be the major problem for me right now.
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.
Are those the MAC-addresses of the bridge interface. Say, when I bridge bat0 into br-lan, then the MAC of br-lan will show up as client?
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 to filter.
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.
Cheers, Simon
On Thursday 05 February 2015 19:11:15 Moritz Warning wrote:
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.
Ok, I wonder how I can filter out those secondary interface MAC addresses of 1-hop neighbors. Can those addresses be recognized by comparing it to the Nexthop column? This seems to be the major problem for me right now.
Hmm ... actually you can't find that out from the originator output, since there is no distinction there.
Maybe one thing how to find out from a remote host without prior information (e.g. centralized database) would be to look at the tt global table - secondary interfaces won't show up there. But thats also more a hack than anything else. ;)
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.
Are those the MAC-addresses of the bridge interface. Say, when I bridge bat0 into br-lan, then the MAC of br-lan will show up as client?
The mac address of br-lan will most likely show up in the local translation table, yes - unless you never send a packet from that interface.
Cheers, Simon
b.a.t.m.a.n@lists.open-mesh.org