cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2026
Views
2
Helpful
2
Replies

Cisco IOS XE| ncclient.operations.rpc.RPCError:'tag': 'unknown-element

amandes4
Cisco Employee
Cisco Employee

Hello Everyone,

 

I am doing a simple config push to Cisco Sandbox and hitting an issue. Any help to know what's wrong is very appreciated.

 

from ncclient import manager
import xmltodict
if __name__ == '__main__':

    ios_xe={'address' : 'sandbox-iosxe-latest-1.cisco.com' , 'port' : '830' , 'username' : 'developer' , 'password': 'C1sco12345' }
   
    netconf_filter=open('filterconfigusername-iosxe.xml').read()
    print(netconf_filter)

    with manager.connect(host=ios_xe['address'], port=ios_xe['port'],
                            username=ios_xe['username'],
                            password=ios_xe['password'],
                            hostkey_verify=False, look_for_keys=False) as m:

        result = m.edit_config(target = 'running' ,  config =netconf_filter)
        print(result)
        reply = m.commit()
        print(reply)

Execution of it fails as below:

 

 

 /usr/local/bin/python3 /Users/amandes4/Documents/Python/Devnet-Study/NetConf/NetConf-IOS-XE/5.edit_user_config.py
!!!!!This is the Configuration push!!!!!!
<config>
  <native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native">
    <username>
                <name>restconf</name>
                <privilege>15</privilege>
                <secret>
                        <encryption>0</encryption>
                        <secret>restconf</secret>
                </secret>
    </username>
  </native>
</config>

Traceback (most recent call last):
  File "/Users/user/Documents/Python/NetConf/NetConf-IOS-XE/5.edit_user_config.py", line 18, in <module>
    result = m.edit_config(target = 'running' ,  config =netconf_filter)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ncclient/manager.py", line 226, in execute
    return cls(self._session,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ncclient/operations/edit.py", line 69, in request
    return self._request(node)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ncclient/operations/rpc.py", line 360, in _request
    raise self._reply.error
ncclient.operations.rpc.RPCError: {'type': 'protocol', 'tag': 'unknown-element', 'app_tag': None, 'severity': 'error', 'info': '<?xml version="1.0" encoding="UTF-8"?><error-info xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><bad-element>config</bad-element>\n</error-info>\n', 'path': '\n    /rpc/edit-config\n  ', 'message': None}

Could be due to some code changes that also affect 'edit-config' operation like 'get-config' operation discussed in "https://community.cisco.com/t5/yang-tools/netconf-error-in-ios-xe-on-csr-latest-code-always-on-devnet/m-p/4451438"

 

csr1000v-1#show version

Cisco IOS XE Software, Version 17.03.01a

 

Regards

Aman

 

 

 

 

 

 

 

 

 

 

2 Replies 2

Alex Stevenson
Cisco Employee
Cisco Employee

 

Hi @amandes4,

 

I would try reformatting the code based on the examples on page 26, 49 and 51 of Introduction to Model Driven Programmability:  Breaking down YANG, NETCONF, and RESTCONF.

Best,

      Alex S.

Hi @amandes4 ,

the problem you are facing is at the tag <config>, so you suhld replace it with <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

The new XML should be :

<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native">
    <username>
                <name>restconf</name>
                <privilege>15</privilege>
                <secret>
                        <encryption>0</encryption>
                        <secret>restconf</secret>
                </secret>
    </username>
  </native>
</config>

This should solve your problem, also keep in mind different IOS XE Software, Version has different YANG structures

Best of luck 

 

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: