How validation and call-once works?

Hi ,
I want to validate leaf end-address in the yang and annotation file below. If I use “end-address” path and “no-dependency” in annotation file , it works.
But when a new entry comes, callback works for every list elements and validate all items in the list every time.

To overcome this problem, I tried call-once. It expects lists or leaf-list, so I used list (pools) instead of leaf (end-address) in annotation, but could not able to start application. I am not sure if I use call-once correctly. Are there any example for call-once ?

  grouping iprange-list {
    list pools {
      key uuid;
      unique "start-address end-address";
      leaf uuid {
        type string;
      }
      leaf start-address {
        type inet:ipv4-address;
        mandatory true;
        description "First IPv4 address in a pool.";
      }
      leaf end-address {
        type inet:ipv4-address;
        mandatory true;
        description "Last IPv4 address in a pool.";
      }
    }
  }
  
  
  Annotation file
    tailf:annotate "/ipmgmt:general/ipmgmt:ipmgmtcon/ipmgmt:pools" {
    tailf:validate ipmgmtvcb {
      tailf:no-dependency;
      //tailf:call-once true;
    }
  }
  

Please add more details on actual problem you observe…

  • do you get some error when compiling the YANG
  • when starting the confd (got developer log enabled?),
  • or starting daemon that implements the callback
    • do you have confd_init() debug level set to get more details on potential problems?