You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following sections explain the each of the above API's semantics, when they are called during network/endpoint lifecycle, and the corresponding payload for remote driver HTTP request/responses.
37
+
-**Release address**
38
+
39
+
40
+
The following sections explain each of the above requests' semantic, when they are called during network/endpoint lifecycle, and the corresponding payload for remote driver HTTP request/responses.
52
41
53
42
54
43
## IPAM Configuration and flow
@@ -148,13 +137,13 @@ For this API, the remote driver will receive a POST message to the URL `/IpamDri
148
137
149
138
Where:
150
139
151
-
* `AddressSpace` the IP address space
140
+
* `AddressSpace` the IP address space. It denotes a set of non-overlapping pools.
152
141
* `Pool` The IPv4 or IPv6 address pool in CIDR format
153
142
* `SubPool` An optional subset of the address pool, an ip range in CIDR format
154
143
* `Options` A map of IPAM driver specific options
155
144
* `V6` Whether an IPAM self-chosen pool should be IPv6
156
145
157
-
AddressSpace is the only mandatory field. If no `Pool` is specified IPAM driver may return a self chosen address pool. In such case, `V6` flag must be set if caller wants an IPAM-chosen IPv6 pool. A request with empty `Pool` and non-empty `SubPool` should be rejected as invalid.
146
+
AddressSpace is the only mandatory field. If no `Pool` is specified IPAM driver may choose to return a self chosen address pool. In such case, `V6` flag must be set if caller wants an IPAM-chosen IPv6 pool. A request with empty `Pool` and non-empty `SubPool` should be rejected as invalid.
158
147
If a `Pool` is not specified IPAM will allocate one of the default pools. When `Pool` is not specified, the `V6` flag should be set if the network needs IPv6 addresses to be allocated.
159
148
160
149
A successful response is in the form:
@@ -272,4 +261,9 @@ As of now libnetwork accepts the following capabilities:
272
261
### RequiresMACAddress
273
262
274
263
It is a boolean value which tells libnetwork whether the ipam driver needs to know the interface MAC address in order to properly process the `RequestAddress()` call.
275
-
If true, on `CreateEndpoint()` request, libnetwork will generate a random MAC address for the endpoint (if an explicit MAC address was not already provided by the user) and pass it to `RequestAddress()` when requesting the IP address inside the options map. The key will be the `netlabel.MacAddress` constant: `"com.docker.network.endpoint.macaddress"`.
264
+
If true, on `CreateEndpoint()` request, libnetwork will generate a random MAC address for the endpoint (if an explicit MAC address was not already provided by the user) and pass it to `RequestAddress()` when requesting the IP address inside the options map. The key will be the `netlabel.MacAddress` constant: `"com.docker.network.endpoint.macaddress"`.
265
+
266
+
267
+
## Appendix
268
+
269
+
A Go extension for the IPAM remote API is available at [docker/go-plugins-helpers/ipam](https://github.com/docker/go-plugins-helpers/tree/master/ipam)
0 commit comments