Describes how a YANG-Push Publisher capabilities can be discovered, YANG-Push subscriptions can be configured and YANG Library can be queried with Netconf by giving examples with netconf-console.
Netconf YANG-Push Capability Discovery Example
Shows which xpaths and subtrees can be subscribed in which intervall and dampening period
netconf-console2 --host=192.0.2.1 --port=830 --db=running --user=user
--rpc=get-yp-subscription.xml --commit
<get>
<filter type="subtree">
<system-capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" />
</filter>
</get>
Netconf YANG Library Query Example
Shows YANG module names, versions and their dependencies
netconf-console2 --host=192.0.2.1 --port=830 --db=running --user=user
--rpc=get-yp-subscription.xml --commit
<get>
<filter type="subtree">
<yang-library xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library" />
<modules-state xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library" />
</filter>
</get>
Netconf YANG-Push Configuration Examples
Configure a YANG-Push Receiver on a Publisher
netconf-console2 --host=192.0.2.1 --port=830 --db=candidate --user=user
--edit-config=edit-config-yp-subscription-receiver.xml --commit
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
<receiver-instances xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notif-receivers">
<receiver-instance>
<name>ypreceiver</name>
<udp-notif-receiver xmlns="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport">
<remote-address>192.0.2.1</remote-address>
<remote-port>10000</remote-port>
<enable-segmentation>true</enable-segmentation>
<max-segment-size>1458</max-segment-size>
</udp-notif-receiver>
</receiver-instance>
</receiver-instances>
</subscriptions>
Delete YANG-Push Receiver
netconf-console2 --host=192.0.2.1 --port=830 --db=candidate --user=user
--edit-config=edit-config-yp-subscription-receiver-delete.xml --commit
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
<receiver-instances xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notif-receivers">
<receiver-instance nc:operation="delete" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
<name>ypreceiver</name>
</receiver-instance>
</receiver-instances>
</subscriptions>
Configure a Periodical YANG-Push Subscription with Anchor-Time on a Publisher
netconf-console2 --host=192.0.2.1 --port=830 --db=candidate --user=user
--edit-config=edit-config-yp-subscription-periodical.xml --commit
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
<subscription>
<id>1</id>
<datastore
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"
xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">ds:operational
</datastore>
<datastore-xpath-filter
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"
xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces">
/if:interfaces/if:interface[if:type='ianaift:ethernetCsmacd']/if:statistics
</datastore-xpath-filter>
<transport xmlns:unt="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport">unt:udp-notif
</transport>
<encoding>encode-json</encoding>
<source-interface>LoopBack0</source-interface>
<receivers>
<receiver>
<name>ypreceiver</name>
<receiver-instance-ref
xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notif-receivers">udpnotif
</receiver-instance-ref>
</receiver>
</receivers>
<periodic xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push">
<period>6000</period>
<anchor-time>2025-01-01T00:00:30Z</anchor-time>
</periodic>
</subscription>
</subscriptions>
Configure a On-Change YANG-Push Subscription with Sync-On-Start on a Publisher
netconf-console2 --host=192.0.2.1 --port=830 --db=candidate --user=user
--edit-config=edit-config-yp-subscription-onchange.xml --commit
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
<subscription>
<id>2</id>
<datastore
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"
xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">ds:operational
</datastore>
<datastore-xpath-filter
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"
xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces">
/if:interfaces/if:interface[if:type='ianaift:ethernetCsmacd']
</datastore-xpath-filter>
<transport xmlns:unt="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport">unt:udp-notif
</transport>
<encoding>encode-json</encoding>
<source-interface>LoopBack0</source-interface>
<receivers>
<receiver>
<name>ypreceiver</name>
<receiver-instance-ref xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notif-receivers">udpnotif
</receiver-instance-ref>
</receiver>
</receivers>
<on-change
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push">
<dampening-period>5000</dampening-period>
<sync-on-start>true</sync-on-start>
</on-change>
</subscription>
</subscriptions>
Delete YANG-Push Subscriptions
netconf-console2 --host=192.0.2.1 --port=830 --db=candidate --user=user
--edit-config=edit-config-yp-subscription-delete.xml --commit
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications">
<subscription nc:operation="delete" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
<id>1</id>
</subscription>
</subscriptions>
Retrieve YANG-Push Subscriptions
netconf-console2 --host=192.0.2.1 --port=830 --db=runnin --user=user
--rpc=get-yp-subscription.xml
<get xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<filter type="subtree">
<subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"/>
<filters xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"/>
<filter>
</get>