What happened?
SubnetPool has a quota system that controls how many addresses a project can consume from one subnet pool. In Neutron API, it is possible to create a subnet pool with default_quota equal to 0, and that means that no quota will be enforced.
❯ openstack subnet pool create --share --pool-prefix 203.0.113.0/24 \
--default-prefix-length 26 --default-quota 0 demo-subnetpool4
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| address_scope_id | None |
| created_at | 2026-06-08T11:08:59Z |
| default_prefixlen | 26 |
| default_quota | 0 |
| description | |
| id | 31ca4379-a60a-4fb0-982f-8d74419cd492 |
| ip_version | 4 |
| is_default | False |
| max_prefixlen | 32 |
| min_prefixlen | 8 |
| name | demo-subnetpool4 |
| prefixes | 203.0.113.0/24 |
| project_id | 3be7410b56364804a951b51397b0e0ff |
| revision_number | 0 |
| shared | True |
| tags | |
| updated_at | 2026-06-08T11:08:59Z |
+-------------------+--------------------------------------+
This snippet shows that if default_quota is zero, it will skip the quota enforcement.
https://github.com/openstack/neutron/blob/570efdbe1886c202f5b1bcaadc14acc4c9ca9da2/neutron/ipam/subnet_alloc.py#L109-L120
Therefore, we are missing a pointer in createOpts.DefaultQuota in our SubnetPool API, so we can accept 0 as a valid value.
Version
v2 (current)
What happened?
SubnetPool has a quota system that controls how many addresses a project can consume from one subnet pool. In Neutron API, it is possible to create a subnet pool with
default_quotaequal to0, and that means that no quota will be enforced.This snippet shows that if
default_quotais zero, it will skip the quota enforcement.https://github.com/openstack/neutron/blob/570efdbe1886c202f5b1bcaadc14acc4c9ca9da2/neutron/ipam/subnet_alloc.py#L109-L120
Therefore, we are missing a pointer in createOpts.DefaultQuota in our SubnetPool API, so we can accept
0as a valid value.Version
v2 (current)