commit
ea8f974f15
1 changed files with 44 additions and 44 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue