The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
The following topics provide an overview of NETCONF and describes common tasks you would perform for the NETCONF-enabled devices in your network:
The Network Configuration Protocol (NETCONF) defines a simple mechanism through which a network device can be managed, configuration data can be retrieved, and new configuration data can be uploaded and manipulated. NETCONF uses Extensible Markup Language (XML)-based data encoding for the configuration data and protocol messages.
Open SDN Controller operates as both a NETCONF server and client. As a server, the controller manages general network communication and processes remote procedure calls (RPCs). And as a client, the controller connects to NETCONF-enabled devices and manages them through the NETCONF connector. The following sections will cover typical tasks that are completed for NETCONF-enabled devices.
Before you proceed with Step 1, you must generate a security token. See Making RESTCONF Requests for more information.
Step 1 | Make the
following POST request:
URL—https://token:$token@<controller-IP-address>/controller/restconf/config/opendaylight-inventory:nodes/node/controller-config/ yang-ext:mount/config:modules Specify values for the following parameters in the request's payload: In the following example, a device named asr9k-1-netconf with an IP address of 192.0.2.116 is mounted to the controller. <?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type> <name>asr9k-1-netconf</name> <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">192.0.2.116</address> <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">830</port> <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">cisco</username> <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">cisco</password> <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only> <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type> <name>global-event-executor</name> </event-executor> <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type> <name>binding-osgi-broker</name> </binding-registry> <rpc-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-rpc-registry</type> <name>binding-rpc-broker</name> </rpc-registry> <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type> <name>dom-broker</name> </dom-registry> <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type> <name>global-netconf-dispatcher</name> </client-dispatcher> <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf"> <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool"> prefix:threadpool</type> <name>global-netconf-processing-executor</name> </processing-executor> </module> |
Step 2 | Make the
following GET request to determine the device's connection status and view
information such as its serial number and installed software:
URL—https://token:$token@<controller-IP-address>/controller/restconf/operational/opendaylight-inventory: nodes/node/<device-hostname> If the router is currently connected, its entry will display "netconf-node-inventory:connected": true,. Note the following:
|
Step 1 | Access the API documentation by selecting Available APIs from the toolbar's Help menu. |
Step 2 | Click the Mounted Resources tab to view a listing of all the devices mounted on the controller. |
Step 3 | Click the link
for the device you want to view API information for.
For more information about APIs, see Viewing API Documentation. |
After a NETCONF device has been mounted to the controller and a connection is established, you can change the settings for any of its configuration parameters at runtime. In this example, say you want to modify the username and password configured for the device we mounted previously in this section. To do so, make a POST request using the following URL, specifying the new username and password values in the request's payload:
https://token:$token@<controller-IP-address>/controller/restconf/config/opendaylight-inventory:nodes/node/
controller-config/yang-ext:mount/config:modules
Note the following:
Before you make this request, you must first generate a security token. See Making RESTCONF Requests for more information.
To view sample NETCONF configurations, visit the following URL:
https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf
To delete a mounted device, make a DELETE request using the following URL, in which you provide the controller's IP address and the mounted device's hostname:
https://token:$token@<controller-IP-address>/controller/restconf/config/opendaylight-inventory:nodes/node/controller-config/yang-ext:
mount/config:modules/module/odl-sal-netconf-connector-cfg:sal-netconf-connector/<device-hostname>