Commit 97aac97f authored by Simon Redman's avatar Simon Redman

Document custom NetworkGraph fields

parent ef3d802d
......@@ -17,16 +17,18 @@ These instructions will be updated as the code is actually written
Before you will be able to run any commands, activate the virtual environment by running `source env/bin/activate`
#### 1. topomap_parser.py
This is both a program which can be run on its own, mostly for testing purposes, and a library which is used by the following programs to parse emulab's topology into [NetJSON](netjson.org) for usage with the NetworkX network graph library.
This is both a program which can be run on its own, mostly for testing purposes, and a library which is used by the following programs to parse emulab's topology into [NetJSON](netjson.org) NetworkGraph for usage with the NetworkX network graph library.
When used as a library, the most interesting method is `parse_topomap_to_netjson`, which returns a NetJSON-formatted dictionary. When run standalone, the program has built-in help by passing the `--help` flag.
The topology is parsed using the information in `/var/emulab/boot/topomap` to get basic information, and management IP addresses are found using DNS records. In many situations, topomap_parser will only properly work if run on one of the nodes of an experiment.
For description of the non-standard fields used, see the NetworkGraph section of this document
## TODO
Once this codebase is finished, this section should go away. But great works are never finished, merely abandoned.
The basic goal is to take all the scripts from [https://gitlab.flux.utah.edu/safeedge/sripv6-linux] and convert them to not assume anything about the experiment topology
The basic goal is to take all the scripts from <https://gitlab.flux.utah.edu/safeedge/sripv6-linux> and convert them to not assume anything about the experiment topology
1. Replace `add_global_ipv6.sh`
2. Replace `create_all_zebra_conf.sh`
......@@ -36,3 +38,15 @@ The basic goal is to take all the scripts from [https://gitlab.flux.utah.edu/saf
6. Replace `start_all_ovs.sh`
7. Replace `start_all_ospf_monitor.sh`
8. Write top-level script which runs all previous scripts in an easy-to-use way
## NetworkGraph
For the most part, standard NetJSON NetworkGraph fields are used, and those are documented [here](http://netjson.org/rfc.html#rfc.section.4)
At the top-level, no optional fields are defined. This may change in the future to add human-relevant information
Each Node defines the following properties:
- 'lans': A mapping of Emulab LANs a Node is connected to and its IP address on that lan
- 'management-ip': A single remote-accessible IP or hostname
Each Link defines the following properties:
- 'netmask': The netmask of the Emulab LAN which corresponds to this link
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment