ConfD User Community

Filter(x-path) capability in edit-config


#1

Hi
I want to select the devices using xpath and then perform the edit operations but netconf edit-config is not having any such xml tag. get-config has the facility to filter but edit-config is not.
Does any one knows how to filter the device in edit-config.

Regards
Guru


#2

Hi,

You don’t ”select” which ”devices” you perform edit-config operations on. ConfD representation the device NETCONF interface. Perhaps you are thinking about a manager, such as NSO, that you want to perform a network wide NETCONF edit-config transaction through.

As always, the IETF RFCs , here NETCONF, is the primary documentation. The ConfD documentation complements that. For get and get-config operations see:
See https://tools.ietf.org/html/rfc6241#section-8.9.5.1 for an example.


#3

As i mentioned earlier get-config has the facility for xpath filter.
But edit-config is not having that facility.
https://tools.ietf.org/html/rfc6241#page=37.
set the mtu to 1500 on an interface named “Ethernet 0/0”.

< rpc message-id=“101” xmlns=“urn:ietf:params:xml:ns:netconf:base:1.0”>
< edit-config>
< target>
< running/>
< /target>
< config>
< top xmlns=“http://example.com/schema/1.2/config”>
< interface>
< name>Ethernet0/0< /name>
< mtu>1500</ mtu>
< /interface>
< /top>
< /config>
< /edit-config>
< /rpc>

name is acting as a filter.How to know which element is acting as a filter is not clear.


#4

I wouldn’t call it a “filter” - the XML hierarchy specifies a particular data instance, i.e. all keys in all lists must be included. Which elements that are keys (and how many there are of them in each list) depends on the data model, and RFC 6241 is a bit vague about that, since NETCONF was originally defined as independent of any particular data modeling language (it predates YANG). E.g it doesn’t talk about “lists” or “keys”, but the intro to the example does say:

   Example:  The <edit-config> examples in this section utilize a simple
      data model, in which multiple instances of the <interface> element
      can be present, and an instance is distinguished by the <name>
      element within each <interface> element.