Subject: [babel] Monitoring interface -- example output

From: Juliusz Chroboczek <[email-masked]>
Date: Thu, 11 Apr 2019 12:38:18 +0200

Dear Mahesh,

At the Prague meeting, you asked for sample output from babeld's
proprietary monitoring interface and example configuration files.
Here's an actual interaction, explanation below.

    BABEL 1.0
    version babeld-1.8.4-55-g39c5f0a
    host pi
    my-id e2:46:9a:ff:fe:4e:91:e3
    ok
    dump
    add interface eth0 up true ipv6 fe80::e046:9aff:fe4e:91e2 ipv4 192.168.4.40
    add interface wlan0 up true ipv6 fe80::e246:9aff:fe4e:91e2 ipv4 192.168.5.40
    add interface wlan1 up true ipv6 fe80::e246:9aff:fe4e:91e4 ipv4 192.168.6.40
    add neighbour 42bb90 address fe80::204:75ff:fe90:9ba9 if eth0 reach fc00 ureach 0000 rxcost 96 txcost 96 cost 96
    add xroute fd84:eeaf:8cec::/48-2000::/3 prefix fd84:eeaf:8cec::/48 from 2000::/3 metric 0
    add xroute fd84:eeaf:8cec::/64-2000::/3 prefix fd84:eeaf:8cec::/64 from 2000::/3 metric 0
    add xroute 0.0.0.0/0-::ffff:0.0.0.0/0 prefix 0.0.0.0/0 from ::ffff:0.0.0.0/0 metric 0
    add xroute 172.23.36.139/32-::/0 prefix 172.23.36.139/32 from ::/0 metric 0
    add xroute 192.168.2.40/32-::/0 prefix 192.168.2.40/32 from ::/0 metric 0
    add xroute 192.168.4.40/32-::/0 prefix 192.168.4.40/32 from ::/0 metric 0
    add xroute 192.168.5.40/32-::/0 prefix 192.168.5.40/32 from ::/0 metric 0
    add xroute 192.168.6.40/32-::/0 prefix 192.168.6.40/32 from ::/0 metric 0
    add xroute 2001:660:3301:9208::40/128-::/0 prefix 2001:660:3301:9208::40/128 from ::/0 metric 0
    add xroute 2001:660:3301:9208::40/128-2000::/3 prefix 2001:660:3301:9208::40/128 from 2000::/3 metric 0
    add xroute fd84:eeaf:8cec::1/128-::/0 prefix fd84:eeaf:8cec::1/128 from ::/0 metric 0
    add route 779cfeb0 prefix 172.23.36.89/32 from 0.0.0.0/0 installed yes id 02:04:75:ff:fe:90:9b:a9 metric 96 refmetric 0 via fe80::204:75ff:fe90:9ba9 if eth0
    add route 73f1f0 prefix 192.168.5.100/32 from 0.0.0.0/0 installed yes id 02:04:75:ff:fe:90:9b:a9 metric 96 refmetric 0 via fe80::204:75ff:fe90:9ba9 if eth0
    add route 73f070 prefix 2001:660:3301:9202::ac17:2459/128 from ::/0 installed yes id 02:04:75:ff:fe:90:9b:a9 metric 96 refmetric 0 via fe80::204:75ff:fe90:9ba9 if eth0
    add route 73eff0 prefix fd84:eeaf:8cec::204:75ff:fe90:9ba9/128 from ::/0 installed yes id 02:04:75:ff:fe:90:9b:a9 metric 96 refmetric 0 via fe80::204:75ff:fe90:9ba9 if eth0
    ok

"BABEL 1.0" is the version of the monitoring interface.

"version", "host" and "my-id" are the implementation version, the hostname
and the router-id.

I then request a dump of the data structures ("dump"), and babeld gives
me.  The general format is

  add *type* *identifier* *keyword* *value* *keyword* *value* ...

  - the set of active interfaces, with the parameters
      - interface name
      - up (boolean)
      - ipv6 (link-local address)
      - ipv4 (the IPv4 address used for advertising next hops, optional).

  - the set of neighbours, with parameters
      - a unique identifier for the neighbour;
      - the (remote) link-local address;
      - the interface over which we see the neighbour (if);
      - a 16-bit hello history;
      - a 16-bit unicast hello history;
      - the rxcost, txcost and computed cost.

  - the set of routes originated by this node (called xroutes in babeld):
      - a unique identifier for the xroute;
      - the prefix being advertised (IPv6 or IPv4);
      - the source prefix (draft-ietf-babel-source-specific);
      - the metric of the route (only one metric for xroutes).

  - the set of routes readvertised by this node (called routes):
      - a unique identifier for the route;
      - the prefix being advertised;
      - the source prefix;
      - whether the route is installed (boolean);
      - the router-id of the router originating the route (id);
      - the computed metric (metric) and the metric advertised by the
        neighbour (refmetric, for reference metric);
      - the next hop (via);
      - the interface (if).

-- Juliusz