Skip to content
Snippets Groups Projects
data-change-logic.md 1.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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