Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Sample NETCONF Session

The following sections describe the sequence of tag elements in a sample NETCONF session with a device running Junos OS. The client application begins by establishing a connection to a NETCONF server.

Exchanging Initialization Tag Elements

After the client application establishes a connection to a NETCONF server, the two exchange <hello> tag elements, as shown in the following example. For legibility, the example places the client application’s <hello> tag element below the NETCONF server’s. The two parties can actually emit their <hello> tag elements at the same time. For information about the ]]>]]> character sequence used in this and the following examples, see Generate Well-Formed XML Documents. For a detailed discussion of the <hello> tag element, see Start a NETCONF Session.

NETCONF XML data showing hello handshake, capabilities like candidate and confirmed-commit, and session-id for Juniper Networks namespace.

Sending an Operational Request

The client application emits the <get-chassis-inventory> tag element to request information about the device’s chassis hardware. The NETCONF server returns the requested information in the <chassis-inventory> tag element.

XML communication example showing a client application sending an rpc request to a NETCONF server for chassis inventory. The server replies with chassis and module details.

Locking the Configuration

The client application then prepares to incorporate a change into the candidate configuration by emitting the <lock/> tag to prevent any other users or applications from altering the candidate configuration at the same time. To confirm that the candidate configuration is locked, the NETCONF server returns an <ok/> tag in an <rpc-reply> tag element.

Client application sends an rpc request with a lock operation targeting the candidate datastore; NETCONF server replies with rpc-reply indicating success using ok tag.

Changing the Configuration

The client application now emits tag elements to create a new Junos OS login class called network-mgmt at the [edit system login class] hierarchy level in the candidate configuration. To confirm that the load operation was successful, the NETCONF server returns an <ok/> tag in an <rpc-reply> tag element.

XML-based NETCONF exchange showing a client application sending an rpc request to edit system login permissions and a NETCONF server replying with ok for successful operation.

Committing the Configuration

The client application then commits the candidate configuration. To confirm that the commit operation was successful, the NETCONF server returns an <ok/> tag in an <rpc-reply> tag element.

Client application sends an rpc request with a commit operation; NETCONF server replies with rpc-reply indicating success using ok tag.

Unlocking the Configuration

The client application unlocks (and by implication closes) the candidate configuration. To confirm that the unlock operation was successful, the NETCONF server returns an <ok/> tag in an <rpc-reply> tag element.

Client application sends an XML rpc request to unlock the candidate configuration target. NETCONF server replies with rpc-reply containing ok tag indicating success.

Closing the NETCONF Session

The client application closes the NETCONF session by emitting the <close-session> tag.

Client application sending an rpc message with close-session request to NETCONF server, which replies with rpc-reply containing ok element confirming session termination.