On Wed, Oct 02, 2013 at 03:05:48PM +0200, Simon Wunderlich wrote:
Hey Andrew,
On Tue, Oct 01, 2013 at 10:26:48PM +0200, Andrew Lunn wrote:
Hi Folks
I will soon need to parse the output of batadv-vis -f json. However, its not really, json, it does not pass json validation tools. Hence i doubt i can use the standard parsing libraries.
Yes, it is only JSON line-wise, but not the whole output. This output format however is the same as we have/had in the batctl JSON output which comes from the kernel (I think that was your contribution in the first place?).
Therefore I'd like to leave this old format as it is to allow communities to seamlessly switch from batctl json vis to alfred-vis.
Hi Simon
That is what i was expecting. So when i did the first implementation this morning, i added a new format, cjson, for conforming json. Not the best of names, but i could not think of anything better.
I don't want to "parse" any transferred data in alfred, but we can do this for tools like alfred-vis
No parsing needed, its just needs new functions to print it. RFC patch to come soon.
{ "primary" : "02:00:00:00:13:01", "secondary" : [ "02:00:00:30:13:01" ], "neighbors" : [ { "router" : "02:00:00:00:13:01", "neighbor" : "02:00:00:00:10:01", "label" : "1.000" }, { "router" : "02:00:00:00:13:01", "neighbor" : "02:00:00:00:12:01", "label" : "1.000" }, { "router" : "02:00:00:30:13:01", "neighbor" : "02:00:00:30:10:01", "label" : "1.016" }, { "router" : "02:00:00:00:13:01", "neighbor" : "02:00:00:00:11:01", "label" : "1.000" } ], "TT" : [ { "router" : "02:00:00:00:13:01", "gateway" : "8e:4c:77:b3:65:b4" } ] } ]
I'm also wondering if label and gateway could have more meaningful names? TQ and host? Also, is TT the best?
Hm, that is a good question. We also have the batman v with new metrics coming up,
I've not been following BATMAN V too well. Is it metric, or metrics? Can we simply change label to metric?
Maybe we can change the names to:
- for neighbors: router->nexthop
- TT: "gateway" -> "client", "router" -> "node", maybe also change TT to clients?
So here is what i have implemented.
# batadv-vis -f cjson [ { "primary" : "02:00:00:00:12:01", "neighbors" : [ { "router" : "02:00:00:00:12:01", "neighbor" : "02:00:00:00:10:01", "metric" : "1.000" }, { "router" : "02:00:00:00:12:01", "neighbor" : "02:00:00:00:13:01", "metric" : "1.012" }, { "router" : "02:00:00:00:12:01", "neighbor" : "02:00:00:00:11:01", "metric" : "1.000" } ], "clients" : [ { "node" : "02:00:00:00:12:01", "client" : "8e:4c:88:c4:76:c5" } ] } ]
Andrew