I have yang definition for configuring vlan range:
leaf-list vid {
tailf:info “range of vlan-ids (separated by ,or-)”;
tailf:cli-range-list-syntax;
type union {
type uint16 {
tailf:info “vlan id <2-4094>”;
range “2…4094”;
}
type string {
tailf:info “range of vlan id separated by either ‘-’ or ‘,’”;
}
}
}
In my daemon, I am trying to do the following:
confd_value_t *values;
/* add/udpate for vlan-range */
status = cdb_cd(rsock, "/link/vlan-map[%d]", vlan_p->cos_id);
if (status == CONFD_ERR) {
return false;
}
if (cdb_get_list(rsock, &values, &n, "vid") != CONFD_OK) {
syslog(LOG_DEBUG, "%s: no entries for this cos", __FUNCTION__);
n = 0;
}
for (i = 0; i < n; i++) {
syslog(LOG_DEBUG, "%s: %d) %d\n", __FUNCTION__, i, CONFD_GET_UINT16(&values[i]);
}
I am getting a core because of CONFD_GET_UINT16 when I try to test a negative scenario of configuring ‘0’ or ‘-1’ for the vid.
I am wondering what I am missing here.