leaf routing-table-limit-number {
type uint32 {
range "0..4294967295";
}
creating an instance with value 0 or changing to value 0 is done successfully.
when trying to delete an element with this leaf value =0, the deletion fails with:
""0" is out of range. for path /ni:network-instances/network-instance{inbal}/l3vpn:l3vpn/ipv4/unicast/routing-table-limit/config/routing-table-limit-number"
changing this value to other and then delete - work with no problem.
module test {
namespace "http://tail-f.com/ns/example/test";
prefix test;
import tailf-common {
prefix tailf;
}
leaf routing-table-limit-number {
type uint32 {
range "0..4294967295";
}
}
}
but I cannot reproduce the issue:
(config)# do show running-config routing-table-limit-number
% No entries found.
(config)# routing-table-limit-number 0
(config)# commit
Commit complete.
(config)# do show running-config routing-table-limit-number
routing-table-limit-number 0
(config)# no routing-table-limit-number
(config)# commit
Commit complete.
(config)# do show running-config routing-table-limit-number
% No entries found.
Please, can you check log files (devel.log) if some more information is given?
Also note that adding a range statement 0…4294967295 for the YANG built-in uint32 type is redundant.
The same check will be made without the range statement. It is built in.
See https://tools.ietf.org/html/rfc7950#section-9.2
these are the only lines from confd_devel.log when commit this configuration deletion:
2-Jan-2017::15:38:05.264 localhost confd[20220]: devel-c “0” is out of range. for path /ni:network-instances/network-instance{inbal}/l3vpn:l3vpn/ipv4/unicast/routing-table-limit/config/routing-table-limit-number
2-Jan-2017::15:38:05.265 localhost confd[20220]: devel-c Bad case value from get_case(): {urn:eci:params:xml:ns:yang:eci-bgp-l3vpn}enable-alert-percent
2-Jan-2017::15:38:05.266 localhost confd[20220]: devel-c Bad case value from get_case(): {urn:eci:params:xml:ns:yang:eci-bgp-l3vpn}enable-alert-percent
2-Jan-2017::15:38:05.269 localhost confd[20220]: devel-c “0” is out of range. for path /ni:network-instances/network-instance{inbal}/l3vpn:l3vpn/ipv4/unicast/routing-table-limit/config/routing-table-limit-number
the get_case() errors appears also when the commit succeed, after changing the value of limit-number to 1.
do you think that I can remove the range statement? might help?
You can remove it but it will likely not solve your issue. You are using an external data provider. I would look for the error there.
Can you provide the developer log trace for the entire delete transaction and your data provider libconfd trace?