The All In One (AIO) GET2 mechanism allows to call a single GET2 callback for the whole Subtree.
AIO GET2 callbacks follow exactly the same template as regular GET2 callbacks, they use the same registration API and are getting invoked the same way for SIL and SIL-SA as regular GET2 callbacks. The main difference is that there will not be any callback invocations for descendant children and there will not be any callbacks auto generated at all for any of AIO node children.
All In One GET2 support:
- Supported only for container and list nodes
- YANG extension must be specified for the desired AIO node
- Supported for SIL and SIL-SA
- Supported for NETCONF XPath and Subtree filtering
- Supported for <get-bulk> operation
- Supported for NMDA <get-data> operation for "operational" datastore
- Supported for RESTCONF retrieval
- Auto-generation code support
- Must be built with --sil-get2 flag during make_sil_dir_pro
The entire subtree would be expected in one retrieval in one callback invocation. That is if the callback is registered for a container, any complex nodes within this container will not have any extra GET2 callbacks, they will be handled by the top AIO container callback.
With help of a new YANG extension, the server will set specific flags to the objects to identify them as a special case retrieval. This extension would be used in a container or a list to force the server to treat that data subtree as an AIO node for GET2.
The yangdump auto-generation code does not auto generate callbacks for children of the top All In One parent. The callbacks will be generated only for the top nodes that have the extension specified.
For more information on how to use AIO with VAL/JSON/XML return support refer to the following article:
How do I use All In One (AIO) GET2 callback with val value?
How do I use All In One (AIO) GET2 callback with XML/JSON buffers?