Newer
Older
# The Change Logic for Data Manipulation
## Which Information is where?
The gNMI-target keeps track of the configuration and operational status of the underlying operating system and "application" specific subsystems.
## Information Storage
The information is stored in the data structure <code>type Server struct</code> in the field <code>config ygot.ValidatedGoStruct</code> in the file gnmiserver/server.go and keeps the most up-to-date known information.
## Source for Changes
### Via gNMI Set
### Via Operating System
### Via CLI
TODO: What CLI is meant? OS or special NE CLI
## Change Logic
### Via GNMI Set
(NB: Linux only at this time -- but principle sticks independent of OS)
- gnmiserver/server.go in doReplaceOrUpdate calls the callback function
- this triggers changes to the OS, e.g., at an networking interface
- gnmiserver/server.go does **not** change s.config (which is basically an instance of <code>config ygot.ValidatedGoStruct</code>)
- change of OS trigger change notification via netlink,
- target receives netlink change notification
- this triggers, via a go channel, the function <code>updateOrCreateInterface</code> that updates s.config, i.e., the stored configuration of the network element