SIL & SIL-SA are the Server Instrumentation Libraries with the -SA being the Sub-Agent versions of SILs. These are the libraries that contain the YANG structure and information and the instrumentation specific to the device the server is implemented on. The libraries are dynamic and so can be loaded and unloaded from the server without needing to restart the server.


The difference between SIL & SIL-SA is that SILs are synchronously connected to the server in the same process and the SIL-SAs are asynchronously connected to the server so that they can instrument different processes such as line cards in a chassis based device.  There are many server APIs that are only available to the SIL libraries.


The SIL/SIL-SAs can be automatically created from YANG modules by YumaPro SDK tools with the system infrastructure, such as protocol and encoding, etc., integrated automatically. To complete the SIL/SIL-SA creation all developers have to do is fill in the stubs left for instrumentation.


Server API Differences Between SIL and SIL-SA.


Server API Type
SIL
 SIL-SA
Value tree APIs (val_value_t) to access internal YANG data
X
X
Object tree APIs (obj_template_t) to access YANG schema
X
X
XML APIs to process YANG data
X
X
JSON APIs to process YANG data
X
X
XPath APIs to process YANG data
X
X
Load Module APIs
X
X
EDIT1 APIs to process YANG configuration transactions
X
X
EDIT2 APIs to  process YANG configuration transactions
X
X
GET1 APIs to retrieve YANG operational data
X
N/A
GET2 APIs to retrieve YANG operational data
X
X
All In One GET2 APIs to retrieve YANG operational data
X
X
Send Notification APIs
X
X
Agent Timer Callback
X
X
Set Hook Callback to alter edit transaction
X
X
Post Set Hook Callback
X
X
Transaction Hook Callback
X
X
Transaction Start Callback
X
         X
Transaction Complete Callback
X
         X
Set Order Hook Callback
X

Add Edit API to alter edit transaction
X
X
Get Data API to access configuration data
X
X
Validate Complete Callback
X
         X
Apply Complete Callback
X
X
Commit Complete Callback
X
X
Rollback Complete Callback
X
X
Session Hook Callback
X
Dynamic Default Hook callback
X

Startup Hook Callback
X

RPC Operation APIs
X
X
YANG Action APIs
X
X



An overview of how SILs are created can be found here: SIL Development, and more detail can be found in the "Development Environment" section of the YumaPro Developer Manual.