"value out or range "

Hi,

I have the following yang model:

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.

can you suggest how to debug this?

thanks
Inbal

Hello,

I have tested with following yang data model:

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

Hi,

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?

thanks
Inbal

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?

Thanks for helping.
Which log file do you mean? I only know the confd_devel.log and confd.log.
please explain.

thanks
Inbal

See confd_init() in confd_lib_lib.3 man page