Questions tagged [ietf-netconf]

The NETCONF protocol defines a simple remote procedure call mechanism through which a network device can be managed, configuration data information can be retrieved, and new configuration data can be uploaded and manipulated. Use this tag for questions related to the NETCONF protocol (of any version) and tools that leverage it.

The NETCONF protocol allows the device to expose a full, formal application programming interface (API). Applications can use this straightforward API to send and receive full and partial configuration data sets.

Two versions of the protocol have been published at the time of writing, NETCONF 1.0 and 1.1. The first version was published as RFC4741 and was later obsoleted by RFC6241. Both versions are still in circulation.

The protocol uses a remote procedure call (RPC) paradigm. A client encodes an RPC in XML and sends it to a server using a secure, connection-oriented session. The server responds with a reply encoded in XML. The contents of both the request and the response are fully described in XML DTDs or XML schemas, or both, allowing both parties to recognize the syntax constraints imposed on the exchange.

A typical exchange between a client and server would look like this:

<rpc message-id="101"
     xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:ex="http://example.net/content/1.0"
     ex:user-id="fred">
  <get/>
</rpc>

<rpc-reply message-id="101"
     xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:ex="http://example.net/content/1.0"
     ex:user-id="fred">
  <data>
    <!-- contents here... -->
  </data>
</rpc-reply>

The protocol is conceptually structured into several layers:

         Layer                 Example
    +-------------+      +-----------------+      +----------------+
(4) |   Content   |      |  Configuration  |      |  Notification  |
    |             |      |      data       |      |      data      |
    +-------------+      +-----------------+      +----------------+
           |                       |                      |
    +-------------+      +-----------------+              |
(3) | Operations  |      |  <edit-config>  |              |
    |             |      |                 |              |
    +-------------+      +-----------------+              |
           |                       |                      |
    +-------------+      +-----------------+      +----------------+
(2) |  Messages   |      |     <rpc>,      |      | <notification> |
    |             |      |   <rpc-reply>   |      |                |
    +-------------+      +-----------------+      +----------------+
           |                       |                      |
    +-------------+      +-----------------------------------------+
(1) |   Secure    |      |  SSH, TLS, BEEP/TLS, SOAP/HTTP/TLS, ... |
    |  Transport  |      |                                         |
    +-------------+      +-----------------------------------------+
  1. The Secure Transport layer provides a secure and reliable transport of messages between a client and a server. SSH is the most commonly used protocol for this layer of NETCONF, followed by TLS. RFC6242 and RFC7589 describe how they are utilized as secure NETCONF transport.
  2. The Messages layer provides a mechanism for encoding remote procedure calls (RPCs) and notifications.
  3. The Operations layer defines a set of base protocol operations to retrieve and edit the configuration data.
  4. The Content layer consists of configuration data and notification data.

While the RFC does not specify how Content and Operations layers are modeled, a (initially) NETCONF specific modeling language, called YANG, has been developed for this purpose (see ietf-netmod-yang tag for more information).

Basic NETCONF operations have been standardized and consist of:

  • get
  • get-config
  • edit-config
  • copy-config
  • delete-config
  • lock
  • unlock
  • close-session
  • kill-session
  • validate
  • commit
  • confirmed-commit
  • cancel-commit
  • create-subscription*
  • get-schema*
  • partial-lock*
  • partial-unlock*

*specified in a separate RFCs

Learn more about NETCONF here:

(also the sources of most of the content on this page)

77 questions
6
votes
1 answer

How to override stuff in a package at runtime?

[EDIT: I'm running Python 2.7.3] I'm a network engineer by trade, and I've been hacking on ncclient (the version on the website is old, and this was the version I've been working off of) to make it work with Brocade's implementation of NETCONF.…
John Jensen
  • 422
  • 4
  • 20
5
votes
0 answers

No response for RPC requests from opendaylight testtool simulator devices

I was able to simulate netconf devices with opendaylight simulators. During startup, I provided the yang schemas path too. But, when I login to the device through netconf and send any RPC request applicable for the yang schemas, there is no response…
3
votes
1 answer

How to generate JSON schema from yang module?

At present when I am processing my Yang module it generates xml schema and works using xml. I want to switch to JSON so need suggestion how could I generate JSON schema from Yang module. I have already tried Pyang tool…
user11264133
3
votes
0 answers

Opendaylight Oxygen mounted resources api's are undefined

I am using Opendaylight Oxygen version. I am connecting a Netconf device using the odl-netconf-clustered-topology feature as described in the Netconf User Guide The device is successfully connected, which I confirmed by viewing the connection status…
Pravin Kumar
  • 137
  • 2
  • 13
3
votes
2 answers

How to use JSch to establish a SSH connection with subsystem NETCONF

I have successfully use JSch library to create a SSH connection to a server, but I have trouble figuring out how to add the subsystem NETCONF to SSH connection. When doing it manually, the command line that establishes SSH connection with sybsystem…
3
votes
1 answer

Erlang Netconf Support

Does Erlang/OTP has Netconf client and server implementation? Google brings me to http://erlang.org/doc/man/ct_netconfc.html; what is this ct for? The other project that I found seems to be not maintained https://github.com/FlowForwarding/enetconf…
Greg
  • 369
  • 1
  • 6
3
votes
3 answers

What is the difference between Operational and Config in YANG?

What is the difference between Operational and Config in YANG model? Is it a correct way to supporting GET,PUT,POST and DELETE interfaces both in Operational and Config ?
vinllen
  • 1,369
  • 2
  • 18
  • 36
3
votes
0 answers

Decrypting SSH packets with Wireshark

I'd like to decrypt Wireshark-captured SSH packets. I have both the public and private keys. How can this be done? Reason: I am trying to decrypt and check the payload of the Hello exchanged packets between ODL controller and a Netconf Server.
Pawash Ahuja
  • 39
  • 1
  • 5
3
votes
1 answer

Netconf: Not able to perform getConfig()

We have a netconf enabled router and I am able to perform get/get-config operations using Mg-Soft client browser. This is the output of getConfig() - REQ:
Nirmalya
  • 398
  • 5
  • 19
3
votes
3 answers

Java NETCONF library?

Does anyone know if there is a Java library out there to manage configs via NETCONF?
wuntee
  • 12,170
  • 26
  • 77
  • 106
2
votes
2 answers

What is the standard way to generate XML RPC NETCONF requests from YANG data model

I am trying to find a better way to generate XML RPC requests to be sent to a device with NETCONF tags in it. We know how request should look like, so what I am doing is, just hard coding the XML-RPC request XML with placeholders in it. Those…
Bala
  • 105
  • 1
  • 10
2
votes
1 answer

OpenDaylight does not read a hello message from a netconf device

Using the APIExplorer, I tried to connect a RESTCONF device to Opendaylight. Unfortunately, its Hello Message is not read into the capabilities list. I have Opendaylight Neon running with every feature that has "restconf" or "netconf" in its name.…
SiSc
  • 163
  • 9
2
votes
1 answer

How to refine a leaf's range in YANG model?

I have a grouping like - grouping threshold-value-grouping { container threshold-value { description "Threshold value"; leaf upper-limit-val { description "Upper limit"; type uint32 { range…
Darshan L
  • 824
  • 8
  • 30
2
votes
1 answer

What's the difference between the include and import statement in NETCONF (.Yin/Yang files)

I understand that you can create a separate yang file (Something like a textual Convention to store syntax values for MIBS)and import it into another yang file to make the data more organised and structured, but I can't seem to understand what the…
Spdollaz
  • 165
  • 10
2
votes
1 answer

YANG: how to model nested lists configuration data without key

I am trying to build YANG model for this configuration file that has lists without keys. However, Due to the necessity of key in YANG list, I wasn't able to build exact YANG model. Is there any idea how to represents list of list without key in…
1
2 3 4 5 6