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
0
votes
1 answer

Must statement in yang

my CLI looks like - router config site site123 eid-prefix instance-id 100 1.1.1.0/24 accept-more-specifics eid-prefix instance-id 102 2.2.2.0/24 accept-more-specifics eid-prefix instance-id 103 3.3.3.0/24 accept-more-specifics site…
user1060517
  • 355
  • 1
  • 5
  • 17
0
votes
1 answer

is it possible to make YANG list name configurable?

I have this configuration file where dps can have a list of switches (e.g. sw1, sw2, etc) each switch has db_id and list of interfaces as shown below. I want to write a YANG model for this fils. dps: : dp_id:
alshaboti
  • 643
  • 8
  • 18
0
votes
1 answer

Yang Modeling Set a Field Based on Another Field

I am writing a Yang model. Is there away to set a leaf (string or enumeration) with a value based on another field. So for example, I want to say if x then field a value is b, if z then field a value is c. Edit: I am new to yang and still trying to…
A.J
  • 43
  • 1
  • 6
0
votes
1 answer

"Net::Netconf::Manager" converts underscore in RPC request to hyphen

I am using Net::Netconf::Manager to query a device with RPC commands. In the RPC commands I should send a list of arguments, so I'm adding query arguments in a hash. One such argument is verbosity_level Please note I am using underscore _ in this…
Bala Krishnan
  • 374
  • 3
  • 18
0
votes
1 answer

Yang used as Xml or Json?

i just want to know is yang modeling language specific and can only be used with NetConf protocol, or can it be used to model data like Xml and Json ? Thank you
0
votes
0 answers

python netconf paramiko SSHException

I am facing issue in connecting a netconf session using my python netconf package. self.sctrl = server.SSHUserPassController(username=self.username, password=self.password) print "created ctrl" …
0
votes
1 answer

pyang and JNC integration

I'm trying to integrate JNC and Pyang. As the jnc steps describes I have copied jnc.py under PYANG_HOME/pyang/plugins. I try to generate the java classes for simple.yang under $JNC_HOME/examples/yang using the command pyang -f jnc --jnc-output…
Siva
  • 1,229
  • 2
  • 9
  • 7
0
votes
1 answer

Regarding netconf tags

From one of the docs, i have the below:
fsociety
  • 977
  • 3
  • 12
  • 23
0
votes
1 answer

Connect to junos on VirtualBox (using netconf protocol)

I have done everything like in this article. There is an account (with super-user privileges), password, set netconf ssh and set ssh commands issued along with an ip address (for em0 192.168.56.150/24). My host OS (windows 8.1) for Ethernet adapter…
user3529850
  • 1,632
  • 5
  • 32
  • 51
0
votes
3 answers

Understanding Netconf and Yang in NMS

I am really new to Network management systems where object modelling, netconf and Yang being used widely. I would like to know if there is any list of books or articles to follow to understand the whole concept. Any opensource projects in C and…
codingfreak
  • 4,467
  • 11
  • 48
  • 60
0
votes
0 answers

compile NETCONF for beaglebone (ARM)

I need to compile libnetconf from https://github.com/CESNET/libnetconf for beaglebone. But the configure script gives error and exits. last part of the log is checking for xmlDOMWrapReconcileNamespaces in -lxml2... no checking for xslt-config...…
Suhas
  • 73
  • 8
0
votes
2 answers

Does netty.io support netconf protocol?

I am trying to create a netconf client. I am already using netty.io jar in the project. I want to know if netty.io support netconf or is there any plan for that ? Is there any way I can write neconf client using netty.io ? I wrote simple ssh java…
Swaroop Shastri
  • 97
  • 1
  • 10
0
votes
2 answers

Netconf + Yangcli + get + filter

I've just started to use Netconf server and I want to play with it. I installed OpenYuma as netconf server, and for a client I would use the provided yangcli as a first approach. My problem is that I cannot use filtering in get commands, since in…
cs.lev
  • 182
  • 1
  • 11
0
votes
1 answer

Understanding Netconf::OpenError from Ansible Juniper NetConf module

I'm using Ansible to push configs onto some Juniper devices. To get going, I'm trying to tweak the fact-gathering Playbook from the official demo here. I've modified the hosts file to use one of my actual Juniper devices. It appears that Ansible…
hamx0r
  • 4,081
  • 1
  • 33
  • 46
-1
votes
1 answer

I need to get some information form the cisco device. It is cisco-ios-xe device

I have a CISCO device. The device is configured with the WebUI. Which have many details? But I am not able to get these following details from there. CPU Load Temperature Device details. Memory use Alarms I have tried many times to get those above…
Anshu
  • 1,277
  • 2
  • 13
  • 28