From 12f1a2c2cf354bdfdd35351c9cc184d7ad25c831 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 13 Jul 2021 09:28:17 +0100 Subject: [PATCH] Update admin.md --- admin.md | 153 +------------------------------------------------------ 1 file changed, 2 insertions(+), 151 deletions(-) diff --git a/admin.md b/admin.md index 8fdf3d4..a253cea 100644 --- a/admin.md +++ b/admin.md @@ -14,10 +14,7 @@ The `yggdrasilctl` utility provides a human-friendly CLI interface to the Yggdra Examples include: ``` yggdrasilctl getDHT -yggdrasilctl addPeer uri=tcp://a.b.c.d:e yggdrasilctl getPeers -yggdrasilctl removePeer port=4 -yggdrasilctl setTunTap name=auto mtu=65535 tap_mode=false ```` To get a list of supported commands: @@ -33,12 +30,7 @@ yggdrasilctl -endpoint=unix:///var/run/yggdrasil.sock getDHT To get the JSON response body instead of a "friendly" output, specify the `-json` parameter: ``` -yggdrasilctl -json getSwitchPeers -``` - -To draw a map of a node's view of the network, install Graphviz onto your system and use `dot`: -``` -yggdrasilctl dot | dot -Tpng -o map.png +yggdrasilctl -json getPeers ``` ## Admin Socket @@ -121,42 +113,6 @@ For each IPv6 address: - `port` (`uint8`) contains the local switch port number for that peer - `uptime` (`float64`) contains the number of seconds since the peer connection was established -#### `addPeer` - -Expects: -- `uri` (`string`) for the peer to added, in standard URI format as used in the configuration file, i.e. `tcp://a.b.c.d:e` - -Adds a new peer. - -Returns: -- Zero or more successful `string` peer URIs in the `"added"` section -- Zero or more failed `string` peer URIs in the `"not_added"` section - -#### `removePeer` - -Expects: -- `port` (`uint8`) for the port of the peer to remove, this can be looked up using `getPeers` or `getSwitchPorts` - -Removes an existing peer. - -Returns: -- Zero or more successful `string` ports in the `"removed"` section -- Zero or more failed `string` ports in the `"not_removed"` section - -#### `getSwitchPeers` - -Expects no additional request fields. - -Returns zero or more records containing information about switch peers. - -For each port number: -- `box_pub_key` (`string`) contains the `EncryptionPublicKey` of the remote node -- `bytes_sent` (`uint64`) contains the number of bytes sent to the remote node -- `bytes_recvd` (`uint64`) contains the number of bytes received from the remote node -- `coords` (`string`) contains the coordinates of the node on the spanning tree -- `endpoint` (`string`) contains the connected IPv4/IPv6 address and port of the peering -- `ip` (`string`) contains the IPv6 address of the remote node - #### `getSelf` Expects no additional request fields. @@ -191,39 +147,8 @@ Expects no additional request fields. Returns exactly one record containing information about the current node's TUN/TAP adapter. For each adapter: -- `tap_mode` (`bool`) shows whether or not the interface is in TAP mode (if `false` then TUN mode is implied) - `mtu` (`uint8`) contains the MTU of the local TUN/TAP adapter -#### `getAllowedEncryptionPublicKeys` - -Expects no additional request fields. - -Returns zero or more strings containing the allowed box public keys. - -If zero strings are returned then it is implied that all connections are permitted. - -#### `addAllowedEncryptionPublicKey` - -Expects: -- `box_pub_key=` `string` for the public key to add - -Adds a new allowed box pub key. - -Returns: -- Zero or more successful `string` box pub keys in the `"added"` section -- Zero or more failed `string` box pub keys in the `"not_added"` section - -#### `removeAllowedEncryptionPublicKey` - -Expects: -- `box_pub_key=` `string` for the public key to remove - -Removes an existing box pub key. - -Returns: -- Zero or more successful `string` box pub keys in the `"removed"` section -- Zero or more failed `string` box pub keys in the `"not_removed"` section - #### `getMulticastInterfaces` Expects no additional request fields. @@ -232,84 +157,10 @@ Returns zero or more strings containing the enabled multicast peering interfaces If zero strings are returned then it is implied that multicast peering is not allowed on any interface. -#### `getRoutes` - -Expects no additional request fields. - -Returns zero or more records where the subnet (`string`) is mapped to the public key (`string`). - -#### `addRoute` - -Expects: -- `subnet=` `string` for the subnet to route -- `box_pub_key=` `string` for the public key to route to - -Adds a new crypto-key route. - -Returns: -- Zero or more successful `string` routes in the `"added"` section -- Zero or more failed `string` routes in the `"not_added"` section - -#### `removeRoute` - -Expects: -- `subnet=` `string` for the subnet to remove the route for -- `box_pub_key=` `string` for the public key that is routed to - -Removes an existing crypto-key route. - -Returns: -- Zero or more successful `string` routes in the `"removed"` section -- Zero or more failed `string` routes in the `"not_removed"` section - -#### `getSourceSubnets` - -Expects no additional request fields. - -Returns zero or more records for allowed crypto-key routing source subnets (`string`). - -#### `addSourceSubnet` - -Expects: -- `subnet=` `string` for the subnet to allow traffic from - -Adds a new crypto-key source subnet. - -Returns: -- Zero or more successful `string` source subnets in the `"added"` section -- Zero or more failed `string` source subnets in the `"not_added"` section - -#### `removeSourceSubnet` - -Expects: -- `subnet=` `string` for the subnet to remove - -Removes an existing crypto-key source subnet. - -Returns: -- Zero or more successful `string` source subnets in the `"removed"` section -- Zero or more failed `string` source subnets in the `"not_removed"` section - -#### `dhtPing` - -Expects: -- `box_pub_key=` `string`, hex-encoded public key of the remote node to ping, in the same format as e.g. verbose output from a `getDHT` response -- `coords=` `string`, location of the remote node in the network, in the same format as e.g. a `getDHT` response -- `target=` `string`, hex-encoded 512-bit NodeID to ask about, affects what the response from the remote node will be, optional - -Asks a remote node to respond with information from the DHT. - -Returns a `nodes` section with information about each node included in the DHT lookup response, indexed by IPv6. - -For each IPv6 address, this includes: -- `box_pub_key` (`string`) contains the `EncryptionPublicKey` of the remote node -- `coords` (`string`) contains the coordinates of the node on the spanning tree - #### `getNodeInfo` Expects: -- `box_pub_key=` `string`, hex-encoded public key of the remote node to ping, in the same format as e.g. verbose output from a `getDHT` response -- `coords=` `string`, location of the remote node in the network, in the same format as e.g. a `getDHT` response +- `key=` `string`, hex-encoded public key of the remote node to ping, in the same format as e.g. verbose output from a `getDHT` response Asks a remote node to respond with their nodeinfo.