Check the YumaPro Developer Manual for Up to Date Information
This lesson will show you how Operational Data is created and used in YumaPro SDK.
Pre-Requisites
You should have completed the YumaPro Installation Guide and “Building and Installing the SIL”.
Example operational data instrumentation
Now let’s look at how the instrumentation is created for a leaf using “in-octets” as an example. If you look at the ietf-interfaces.yang module you will see the leaf for in-octets defined as:
leaf in-octets { type yang:counter64; description "The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of 'discontinuity-time'."; reference "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; }
In u_ietf-interfaces.c you will find the stub for the code:
status_t u_ietf_interfaces_interfaces_state_interface_statistics_get ( ... for (; childobj; childobj = getcb_next_requested_child(get2cb, childobj)) { /* Retrieve the value of this terminal node and * add with getcb_add_return_val */ /* leaf discontinuity-time (string) */ /* leaf in-octets (uint64) */ ...
The stub is the comment “/* leaf in-octets (uint64) */” and this is where you add the code that gets the in-octets data for interfaces. The pre-built example code for in-octets is:
/* leaf in-octets (uint64) */ if (!xml_strcmp(objname, (const xmlChar *)"in-octets") && entry->stats->inbytes_set){ retval= agt_make_uint64_leaf(obj, objname, entry->stats->inbytes, &res); if (retval && res == NO_ERR) { getcb_add_return_val(get2cb, retval); } }
Linux system Operational State data is provided by if_linux_* functions in the libif-linux.so library. You will see in the function u_ietf_interfaces_interfaces_state_interface_statistics_get contains the code for the leaf in-octets and sets the interface structure:
interface_entry_t*entry = if_linux_match_ifentry(curindex);
then entry->stats->inbytes can be retrieved every time a GET request is received for the in-octets leaf.
More details on how the netconfd-pro server works and how the SIL and SIL-SA features provides configuration and operational state data see the section SIL and SIL-SA Overview of the YumaPro Developer Manual. Also the YumaWorks’ Knowledge Base has a section on Working with SIL or SIL-SA Code |