diff --git a/libnetwork/docs/remote.md b/libnetwork/docs/remote.md index 6f55a20059..1987c862db 100644 --- a/libnetwork/docs/remote.md +++ b/libnetwork/docs/remote.md @@ -34,7 +34,7 @@ If the remote process cannot decode, or otherwise detects a syntactic problem wi If the remote process can decode the request, but cannot complete the operation, it must send a response in the form { - "Err": string + "Err": string } The string value supplied may appear in logs, so should not include confidential information. @@ -44,7 +44,7 @@ The string value supplied may appear in logs, so should not include confidential When loaded, a remote driver process receives an HTTP POST on the URL `/Plugin.Activate` with no payload. It must respond with a manifest of the form { - "Implements": ["NetworkDriver"] + "Implements": ["NetworkDriver"] } Other entries in the list value are allowed; `"NetworkDriver"` indicates that the plugin should be registered with LibNetwork as a driver. @@ -64,10 +64,10 @@ Value of "Scope" should be either "local" or "global" which indicates the capabi When the proxy is asked to create a network, the remote process shall receive a POST to the URL `/NetworkDriver.CreateNetwork` of the form { - "NetworkID": string, - "Options": { - ... - } + "NetworkID": string, + "Options": { + ... + } } The `NetworkID` value is generated by LibNetwork. The `Options` value is the arbitrary map given to the proxy by LibNetwork. @@ -81,7 +81,7 @@ The response indicating success is empty: When a network owned by the remote driver is deleted, the remote process shall receive a POST to the URL `/NetworkDriver.DeleteNetwork` of the form { - "NetworkID": string + "NetworkID": string } The success response is empty: @@ -93,16 +93,16 @@ The success response is empty: When the proxy is asked to create an endpoint, the remote process shall receive a POST to the URL `/NetworkDriver.CreateEndpoint` of the form { - "NetworkID": string, - "EndpointID": string, - "Options": { - ... - }, - "Interface": { - "Address": string, - "AddressIPv6": string, - "MacAddress": string - } + "NetworkID": string, + "EndpointID": string, + "Options": { + ... + }, + "Interface": { + "Address": string, + "AddressIPv6": string, + "MacAddress": string + } } The `NetworkID` is the generated identifier for the network to which the endpoint belongs; the `EndpointID` is a generated identifier for the endpoint. @@ -114,11 +114,11 @@ The `Interface` value is of the form given. The fields in the `Interface` may be A success response is of the form { - "Interface": { - "Address": string, - "AddressIPv6": string, - "MacAddress": string - } + "Interface": { + "Address": string, + "AddressIPv6": string, + "MacAddress": string + } } with values in the `Interface` as above. As far as the value of `Interface` is concerned, `MacAddress` and either or both of `Address` and `AddressIPv6` must be given. @@ -130,14 +130,14 @@ If the remote process was supplied a non-empty value in `Interface`, it must res The proxy may be asked for "operational info" on an endpoint. When this happens, the remote process shall receive a POST to `/NetworkDriver.EndpointOperInfo` of the form { - "NetworkID": string, - "EndpointID": string + "NetworkID": string, + "EndpointID": string } where `NetworkID` and `EndpointID` have meanings as above. It must send a response of the form { - "Value": { ... } + "Value": { ... } } where the value of the `Value` field is an arbitrary (possibly empty) map. @@ -147,8 +147,8 @@ where the value of the `Value` field is an arbitrary (possibly empty) map. When an endpoint is deleted, the remote process shall receive a POST to the URL `/NetworkDriver.DeleteEndpoint` with a body of the form { - "NetworkID": string, - "EndpointID": string + "NetworkID": string, + "EndpointID": string } where `NetworkID` and `EndpointID` have meanings as above. A success response is empty: @@ -160,10 +160,10 @@ where `NetworkID` and `EndpointID` have meanings as above. A success response is When a sandbox is given an endpoint, the remote process shall receive a POST to the URL `NetworkDriver.Join` of the form { - "NetworkID": string, - "EndpointID": string, - "SandboxKey": string, - "Options": { ... } + "NetworkID": string, + "EndpointID": string, + "SandboxKey": string, + "Options": { ... } } The `NetworkID` and `EndpointID` have meanings as above. The `SandboxKey` identifies the sandbox. `Options` is an arbitrary map as supplied to the proxy. @@ -171,17 +171,17 @@ The `NetworkID` and `EndpointID` have meanings as above. The `SandboxKey` identi The response must have the form { - "InterfaceName": { - SrcName: string, - DstPrefix: string - }, - "Gateway": string, - "GatewayIPv6": string, - "StaticRoutes": [{ - "Destination": string, - "RouteType": int, - "NextHop": string, - }, ...] + "InterfaceName": { + SrcName: string, + DstPrefix: string + }, + "Gateway": string, + "GatewayIPv6": string, + "StaticRoutes": [{ + "Destination": string, + "RouteType": int, + "NextHop": string, + }, ...] } `Gateway` is optional and if supplied is an IP address as a string; e.g., `"192.168.0.1"`. `GatewayIPv6` is optional and if supplied is an IPv6 address as a string; e.g., `"fe80::7809:baff:fec6:7744"`. @@ -197,8 +197,8 @@ Routes are either given a `RouteType` of `0` and a value for `NextHop`; or, a `R If the proxy is asked to remove an endpoint from a sandbox, the remote process shall receive a POST to the URL `/NetworkDriver.Leave` of the form { - "NetworkID": string, - "EndpointID": string + "NetworkID": string, + "EndpointID": string } where `NetworkID` and `EndpointID` have meanings as above. The success response is empty: