diff --git a/.gitignore b/.gitignore index 0a72759a7bde9314144c7b98f250c52f4bc451f9..212a9d455118373de1b59d6e710ec5d7a44a2f00 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea .built .built_check .configured_ diff --git a/README.md b/README.md index 1c886d997aa6d7e6fbdbfa8c9e64c0da2e310b7d..54c7ec4a6d314fb182239f602abfeb73c0b2043b 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,24 @@ # map-topology -This package provides the **topologyd** daemon. +[ieee1905](https://dev.iopsys.eu/iopsys/map-topology) + +## Introduction + +This package provides the `topologyd` daemon. ## Overview -The **topologyd** daemon constructs full topology of a IEEE1905 enabled Multi-AP network. -It provides the `topology` UBUS object and methods ( *see UBUS API section below* ) for building and showing the full topology of a network. +The `topologyd` daemon constructs full topology of a IEEE1905 enabled Multi-AP network. It provides the `topology` UBUS object and methods for building and showing the full topology of a network. -**topologyd** uses IEEE1905 AL macaddress of a node, where it is running, as the starting (or Root) node. It then discovers it's immediate neighbors, the next-hop neighbors, the next to next-hop neighbors, and so on... until there are no more neighbor nodes in the network, to build the full topology around the starting node. +`topologyd` uses IEEE1905 AL macaddress of a node, where it is running, as the starting (or Root) node. It then discovers it's immediate neighbors, the next-hop neighbors, the next to next-hop neighbors, and so on... until there are no more neighbor nodes in the network, to build the full topology around the starting node. ->By default, **topologyd** rebuilds the topology every 60 seconds. +By default, `topologyd` rebuilds the topology every 60 seconds. -To (re)build topology, the UBUS method "*refresh*" can be used. See Usage below - +To (re)build topology, the UBUS method "*refresh*" can be used. See Usage below: -Following algorithm is used to build the full topology - +Following algorithm is used to build the full topology: -```` +``` At any node 'P' in the network: Intial state : @@ -23,7 +26,6 @@ Intial state : Nbr(P) = {N0,..Nn} <== immediate neighbors of P. G{P, N0,..Nn} <== graph of all known nodes at P. - Step 1 : for all Ni in G : Send Topology Request to Ni. @@ -37,24 +39,24 @@ Step 2 : Step 3 : Repeat Step 1-2 until no new Nbr(Ni) can be inserted in 'G'. -```` +``` ### UBUS API -map-topology provides the `topology` UBUS object with following methods : +`map-topology` provides the `topology` UBUS object with following methods: -````bash +```bash 'topology' @fc2af0e9 "refresh":{} "status":{} "dump":{} "changelog":{} "nodes":{} -```` +``` ### Usage -````bash +```bash #To (re)build topology - root@iopsys:~$ ubus call topology refresh @@ -214,12 +216,8 @@ root@iopsys:# ubus call topology nodes "00:22:07:6d:3d:8e" ] } -```` +``` -### Testing - -- Tested with two IEEE1905 devices in the network. -- Tested with only one IEEE1905 AL macaddress interface. ### Dependencies @@ -228,4 +226,10 @@ To successfully build map-topology, the following libraries are needed: | Dependency | Link | License | | ----------------- | ---------------------------------------------------------------- | -------------- | | libubox | https://git.openwrt.org/project/libubox.git | BSD | -| libubus | https://git.openwrt.org/project/ubus.git | LGPL 2.1 | \ No newline at end of file +| libubus | https://git.openwrt.org/project/ubus.git | LGPL 2.1 | + + +### Testing + +- Tested with two IEEE1905 devices in the network. +- Tested with only one IEEE1905 AL macaddress interface. \ No newline at end of file