dim
dim copied to clipboard
ndcli modify pool p add subnet --no-default-reserve does not have specified effect
observed behaviour:
ndcli modify pool deleteme add subnet 10.120.144.0/20 --no-default-reserve
ndcli list ips 10.120.144.0/20 -L 9999 | grep Reserved
INFO - Result for list ips 10.120.144.0/20
10.120.144.0 Reserved
10.120.144.255 Reserved
10.120.145.0 Reserved
10.120.145.255 Reserved
10.120.146.0 Reserved
10.120.146.255 Reserved
10.120.147.0 Reserved
10.120.147.255 Reserved
10.120.148.0 Reserved
10.120.148.255 Reserved
10.120.149.0 Reserved
10.120.149.255 Reserved
10.120.150.0 Reserved
10.120.150.255 Reserved
10.120.151.0 Reserved
10.120.151.255 Reserved
10.120.152.0 Reserved
10.120.152.255 Reserved
10.120.153.0 Reserved
10.120.153.255 Reserved
10.120.154.0 Reserved
10.120.154.255 Reserved
10.120.155.0 Reserved
10.120.155.255 Reserved
10.120.156.0 Reserved
10.120.156.255 Reserved
10.120.157.0 Reserved
10.120.157.255 Reserved
10.120.158.0 Reserved
10.120.158.255 Reserved
10.120.159.0 Reserved
10.120.159.255 Reserved
Expected behaviour:
INFO - Result for list ips 10.120.144.0/20
10.120.144.0 Reserved
10.120.159.255 Reserved
empty result
testcase dim-testsuite/t/todo/pool-add-subnet-ndr-1.t added.
I hope the output of ndcli show ip is parsed.
Seems this is a naming issue again, the flag/parameter names does not match what the API and rest of the documentation calls it; from the man page:
ndcli modify pool POOLNAME add subnet SUBNET [gw GW] [NAME:VALUE]...
Add SUBNET to POOLNAME. If the subnet does not exist, it is created.
[...]
--no-default-reserve
don't reserve network and broadcast addresses
[...]
ndcli has --no-default-reserve,
DIM API has dont_reserve_network_broadcast.
So it currently "works as expected", I guess.
https://github.com/1and1/dim/blob/99fcbf2b277f2e4bb80e11767c6405da4259796b/dim/dim/rpc.py#L3749-L3774
However, we should probably add a flag/parameter to not reserve .0s and .255s, while still reserving network and broadcast address.
--no-reserve-class-c-boundaries reserve network and broadcast address but
do not reserve addresses on class c (/24)
boundaries
shall be implemented
--no-default-reserve don't reserve network and broadcast
addresses, don’t reserve addresses on
Class c (/24) boundaries
no-default-reserve is clarified to this behavior