[Interop-dev] NetJSON: clarify what an ID is

Nemesis (spam-protected)
Thu Aug 13 14:34:22 CEST 2015


On 08/13/2015 11:39 AM, Juliusz Chroboczek wrote:
>> Visualizing 2 links between 2 nodes is surely possible but currently
>> I have never seen this.
> That happens all the time, we're running a lot of multi-radio nodes.
>
>> Moreover, if the 2 logical links share the same physical channel, 99%
>> users won't care.
> I most respectfully disagree.

No problem, see below.

>
>> In case of 2 nodes that have 2 different radio links (2.4 GHz and
>> 5GHz), that could be interesting.
>> We have to have to fined a good balance between
>>
>> simplicity and ease of implementation at the cost of reduced detail vs
>> high detail at the cost of reduced simplicity
> In this case, Babel is simply unable to provide the information you want.
> Babel only knows about neighbouring *interfaces*, it doesn't know whether
> the neighbouring interfaces belong to the same node or not.
>
> I'll repeat this, because it's important.  If a Babel node sees two
> neighbouring interfaces A and B, it cannot tell if A and B belong to the
> same node or not.

Ok, I'm open for suggestions. I want to find a solution, what about we
try to describe a NetworkGraph JSON structure as known by a babel node?

I will try to immagine a possible JSON structure, but I'm shooting in
the dark, so please forgive me if get it wrong, help me getting it right
by suggesting alternative (plus ignore inline comments because they are
not valid JSON):

{
    "type": "NetworkGraph",
    "protocol": "babeld",
    "version": "1.6.2",
    "metric": "hop-count",
    "router_id": "12:ab:34:cd:56:ef",
    "nodes": [
        // current node
        { "id": "12:ab:34:cd:56:01", "interface": "wlan0" },  // wlan0
        { "id": "12:ab:34:cd:56:01", "interface": "wlan1" },  // wlan1
         // other linked node
        { "id": "12:ab:34:cd:57:01", "interface": "wlan0" },  // wlan0
        { "id": "12:ab:34:cd:57:01", "interface": "wlan1" }  // wlan0
    ],
    "links": [
        {
            "source": "12:ab:34:cd:56:01",
            "source_interface": "wlan0",
            "target": "12:ab:34:cd:56:02",
            "target_interface": "wlan0",
            "cost": 1.000
        },
        {
            "source": "12:ab:34:cd:56:01",
            "source_interface": "wlan1",
            "target": "12:ab:34:cd:56:02",
            "target_interface": "wlan1",
            "cost": 1.000
        }
    ]
}

I immagine this as a possible NetworkGraph object returned by a Babel node.
Would that work? Could you propose a better example?

Federico





More information about the Interop-dev mailing list