Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IOS-XR NETCONF support #1432

Merged
merged 134 commits into from
Apr 30, 2021
Merged
Changes from 1 commit
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
7aac629
Add IOSXR NETCONF driver boilerplate
neelimapp Mar 2, 2020
ea346d7
Add base implementation for IOSXRNETCONFDriver class
neelimapp Mar 2, 2020
68c7b9d
Add get_interfaces implementation
neelimapp Mar 2, 2020
33e67c7
Add get_interfaces_counters implementation
neelimapp Mar 2, 2020
1291749
Add get_facts implementation
neelimapp Mar 2, 2020
16a489b
Add get_ntp_peers implementation
neelimapp Mar 2, 2020
90f6913
Add get_ntp_servers implementation
neelimapp Mar 2, 2020
043012a
Add get_ntp_stats implementation
neelimapp Mar 2, 2020
66ae28e
Add get_lldp_neighbors implementation
neelimapp Mar 2, 2020
e9910cb
Add convert to text_type
neelimapp Mar 2, 2020
b8b9d6f
Add get_bgp_neighbors implementation
neelimapp Mar 2, 2020
9d3b117
Add get_bgp_config implementation
neelimapp Mar 2, 2020
ddef1a7
Add get_bgp_neighbors_detail implementation
neelimapp Mar 2, 2020
ae981ab
Add get_mac_address_table implementation
neelimapp Mar 2, 2020
8d17d67
Add get_interfaces_ip implementation
neelimapp Mar 2, 2020
1bbcce6
Add get_snmp_information implementation
neelimapp Mar 2, 2020
f11927a
Add get_users implementation
neelimapp Mar 2, 2020
f4dd374
Add is_alive implementation
neelimapp Mar 7, 2020
c1e0767
Add get_config implementation
neelimapp Mar 16, 2020
528a352
Fix lock check during initialization
neelimapp Mar 17, 2020
3b50ef3
Add `close` implementation
neelimapp Mar 18, 2020
e0e1482
Add load_merge_candidate implementation
neelimapp Mar 19, 2020
fd8f349
Add load_replace_candidate implementation
neelimapp Mar 19, 2020
b2cfd8e
Add commit_config implementation
neelimapp Mar 19, 2020
5f1c60d
Add discard_config implementation
neelimapp Mar 19, 2020
7d6b051
Add rollback implementation
neelimapp Mar 19, 2020
186c1b8
Remove legacy PY2 compatibility
neelimapp Mar 21, 2020
6c8fb54
Fix arguement typo in _find_txt
neelimapp Mar 23, 2020
6ab868d
Fix load_replace_candidate to replace entire config
neelimapp Mar 23, 2020
bdcebff
Add compare_config implementation
neelimapp Mar 23, 2020
4899b29
Rework _find_txt implementation
neelimapp Mar 24, 2020
8f5e1db
Add get_lldp_neighbors_detail implementation
neelimapp Mar 24, 2020
5c985f4
Add get_arp_table implementation
neelimapp Mar 24, 2020
9367445
Add get_probes_config implementation
neelimapp Mar 24, 2020
8737997
Add get_probes_results implementation
neelimapp Mar 25, 2020
4a5aed3
Add get_route_to implementation
neelimapp Mar 26, 2020
e211996
Refactor session attribute
neelimapp Mar 27, 2020
5f1b89e
Fix get_route_to for an address without a mask
neelimapp Mar 28, 2020
9a01bea
Add empty counters for subinterfaces and bundles
neelimapp Apr 1, 2020
b5d08db
Remove redundant bgp neighbor key check
neelimapp Apr 1, 2020
83810dc
Add traceroute implementation
neelimapp Apr 2, 2020
7cca9de
Add support for key-based authentication
neelimapp Apr 2, 2020
463bf2b
Add get_environment implementation
neelimapp Apr 16, 2020
f6cf8fc
Add base pytest implementation for get methods
neelimapp Apr 16, 2020
dd7c0e6
Add mocked data for test_is_alive
neelimapp Apr 16, 2020
1e8f39b
Add support for temperature `Control Sensor`
neelimapp Apr 20, 2020
4ab54ec
Expand platform support for get_facts
neelimapp Apr 20, 2020
3ba4b6a
Add explicit default to _find_txt invocations
neelimapp May 8, 2020
14da8d8
Remove redundant lock checks
neelimapp May 8, 2020
e48eecd
Black cleanup
ktbyers May 11, 2020
3873dc8
Linting cleanup
ktbyers May 11, 2020
8ac425e
Add mock data to test get_facts
neelimapp May 12, 2020
921cb64
Add mock data to test get_environment
neelimapp May 12, 2020
a52fe4c
Add logging support
neelimapp May 12, 2020
48c654b
Add mock data to test get_facts & get_environment (#1210)
neelimapp May 12, 2020
a52ac3b
Add 4-byte AS support for get_bgp_config
neelimapp May 12, 2020
f3b8cb0
Fix is_enabled key in get_bgp_neighbors
neelimapp May 15, 2020
f808161
Add logging support (#1217)
neelimapp May 15, 2020
78ac162
Remove RPC reply tag in get_config
neelimapp Jun 26, 2020
72c591a
Merge pull request #1218 from neelimapp/iosxr_new2
mirceaulinic Jul 7, 2020
dc210ae
Add optional argument for config encoding
neelimapp Jul 9, 2020
531d7af
Add CLI support for load_replace_config
neelimapp Jul 9, 2020
78bc61b
Add CLI support for load_merge_config
neelimapp Jul 9, 2020
80bd94f
Add encoding support for get_config
neelimapp Jul 10, 2020
aeb994d
Add encoding support for compare_config
neelimapp Jul 10, 2020
0b86703
Linting cleanup
neelimapp Jul 10, 2020
9ac3c48
Merge pull request #1254 from neelimapp/iosxr_new2_cli
ktbyers Jul 10, 2020
1427686
Add config filter for XR-only module set
neelimapp Jul 10, 2020
ca608ff
Add config filter for XR-only module set
neelimapp Jul 10, 2020
d745b9b
Add config filter for XR-only module set
neelimapp Jul 15, 2020
435f68c
Linting cleanup
neelimapp Jul 17, 2020
ef23988
Bump black version in tox.ini to match requirements-dev.txt
111pontes Jul 29, 2020
666c3ae
Merge pull request #1256 from neelimapp/iosxr_new2_xml_XR_only
ktbyers Jul 29, 2020
99a0d34
Update constants with optimized snmp filter
neelimapp Oct 6, 2020
8920213
Fix numeric defaults in probe getters
neelimapp Oct 6, 2020
be0aa88
Rename get_environment mock data
neelimapp Oct 7, 2020
94d039c
Rename get_facts mock data
neelimapp Oct 7, 2020
d5115c7
Add mock data to test get_facts on Cisco 8000
neelimapp Oct 7, 2020
2c4c804
Add mock data to test get_arp_table
neelimapp Oct 7, 2020
0ccaaef
Add mock data to test get_bgp_config
neelimapp Oct 7, 2020
b44913d
Add mock data to test get_bgp_neighbors
neelimapp Oct 7, 2020
3c3b337
Add mock data to test get_bgp_neighbors_detail
neelimapp Oct 7, 2020
c170e5f
Add mock data to test get_interfaces
neelimapp Oct 7, 2020
a28d5cd
Add mock data to test get_interfaces_counters
neelimapp Oct 7, 2020
ea289e2
Add mock data to test get_interfaces_ip
neelimapp Oct 7, 2020
aa7d7eb
Add mock data to test get_lldp_neighbors
neelimapp Oct 7, 2020
b51c2dc
Add mock data to test get_lldp_neighbors_detail
neelimapp Oct 7, 2020
3267e5b
Add mock data to test get_mac_address_table
neelimapp Oct 7, 2020
97ca331
Add mock data to test get_ntp_peers
neelimapp Oct 7, 2020
354d4c8
Add mock data to test get_ntp_servers
neelimapp Oct 7, 2020
180cbcc
Add mock data to test get_ntp_stats
neelimapp Oct 7, 2020
56cb350
Add mock data to test get_probes_config
neelimapp Oct 7, 2020
d87fab2
Add mock data to test get_probes_results
neelimapp Oct 7, 2020
7f28a6f
Add mock data to test get_route_to
neelimapp Oct 7, 2020
7b0342f
Add mock data to test get_snmp_information
neelimapp Oct 7, 2020
c618d16
Add mock data to test get_users
neelimapp Oct 7, 2020
dbb1fce
Add mock data to test traceroute
neelimapp Oct 7, 2020
c327956
Add mock data to test get_config
neelimapp Oct 8, 2020
5643664
Fix mock data to test get_config
neelimapp Oct 8, 2020
1e21d93
Refactor naming convention for mock data files
neelimapp Oct 8, 2020
153009b
Linting cleanup
neelimapp Oct 8, 2020
e4e0720
Merge pull request #1304 from neelimapp/test-data
ktbyers Oct 8, 2020
a92ba9f
Add support for new password encryption types
neelimapp Oct 20, 2020
75d393a
Add support for sanitized arg in get_config
neelimapp Oct 20, 2020
a693df9
Add mock data to test get_config (sanitized)
neelimapp Oct 20, 2020
7aabe18
Add documentation for iosxr_netconf driver
neelimapp Oct 30, 2020
f528c58
Merge branch 'develop' into iosxr_new2
ktbyers Dec 16, 2020
006d745
Black
ktbyers Dec 16, 2020
dc53037
Fixing issues with tests; using object attribute for encoding
ktbyers Dec 17, 2020
712992a
Black
ktbyers Dec 17, 2020
27fb95c
Update black version
ktbyers Dec 17, 2020
beb7159
Fixing f-strings
ktbyers Dec 17, 2020
a3f0207
Adding robust code
neelimapp Feb 8, 2021
be82be0
Merge pull request #1370 from neelimapp/iosxr_new2
ktbyers Feb 8, 2021
60acfab
Merge branch 'develop' into iosxr_new2
ktbyers Mar 6, 2021
e602b5a
Black
ktbyers Mar 6, 2021
7fd5d87
Improving IOS-XR diff
ktbyers Apr 8, 2021
3bdb5c2
Unifying strip_config_header such that code is shared
ktbyers Apr 8, 2021
8252b8e
Merge pull request #1418 from napalm-automation/netconf_compare_config
ktbyers Apr 8, 2021
26df998
Adding ncclient as a direct dependency for IOS-XR NETCONF
ktbyers Apr 8, 2021
1cf28d9
Merge branch 'iosxr_new2' into docs
ktbyers Apr 8, 2021
a5092aa
Merge pull request #1419 from napalm-automation/ncclient_dep
ktbyers Apr 8, 2021
2395963
Merge branch 'docs' of https://github.com/neelimapp/napalm into neeli…
ktbyers Apr 8, 2021
1d0ef6f
Updating some of the docs
ktbyers Apr 8, 2021
f08d68f
Minor doc update
ktbyers Apr 8, 2021
ab3d83e
Minor doc updates
ktbyers Apr 8, 2021
fa62ff0
Merge pull request #1420 from napalm-automation/neelimapp-docs
ktbyers Apr 8, 2021
1a23ab9
Merge branch 'iosxr_new2' into test-data
ktbyers Apr 8, 2021
54ffd21
Linting issue
ktbyers Apr 8, 2021
d4a2530
Merge pull request #1307 from neelimapp/test-data
ktbyers Apr 8, 2021
2b11256
Merge branch 'develop' into iosxr_new2
ktbyers Apr 9, 2021
e0a070b
XML config is experimental
ktbyers Apr 16, 2021
0c59422
Merge branch 'iosxr_new2' of github.com:napalm-automation/napalm into…
ktbyers Apr 16, 2021
e535aee
Merge branch 'develop' into iosxr_new_repush
ktbyers Apr 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Black cleanup
ktbyers committed May 11, 2020
commit e48eecd95096ca72c14b8e000149c4552f847bc5
11 changes: 10 additions & 1 deletion napalm/_SUPPORTED_DRIVERS.py
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
SUPPORTED_DRIVERS = ["base", "eos", "ios", "iosxr", "junos", "nxos", "nxos_ssh", "iosxr_netconf"]
SUPPORTED_DRIVERS = [
"base",
"eos",
"ios",
"iosxr",
"junos",
"nxos",
"nxos_ssh",
"iosxr_netconf",
]
160 changes: 80 additions & 80 deletions napalm/iosxr_netconf/constants.py
Original file line number Diff line number Diff line change
@@ -20,32 +20,33 @@
from napalm.base.constants import * # noqa

# namespaces for XR native models
NS = {'int': 'http://cisco.com/ns/yang/Cisco-IOS-XR-pfi-im-cmd-oper',
'suo': 'http://cisco.com/ns/yang/Cisco-IOS-XR-shellutil-oper',
'imo': 'http://cisco.com/ns/yang/Cisco-IOS-XR-invmgr-oper',
'ntpc': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-cfg',
'ntp': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-oper',
'lldp': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ethernet-lldp-oper',
'bgp': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper',
'bgpc': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-cfg',
'mac': 'http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-oper',
'int4': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-io-oper',
'int6': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ipv6-ma-oper',
'snmp': 'http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg',
'usr': 'http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-cfg',
'aaa': 'http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-lib-cfg',
'arp': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-arp-oper',
'prbc': 'http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-cfg',
'prb': 'http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-oper',
'rib4': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv4-oper',
'rib6': 'http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv6-oper',
'tr': 'http://cisco.com/ns/yang/Cisco-IOS-XR-traceroute-act',
'sys': 'http://cisco.com/ns/yang/Cisco-IOS-XR-wdsysmon-fd-oper',
'mem': 'http://cisco.com/ns/yang/Cisco-IOS-XR-nto-misc-oper',
}
NS = {
"int": "http://cisco.com/ns/yang/Cisco-IOS-XR-pfi-im-cmd-oper",
"suo": "http://cisco.com/ns/yang/Cisco-IOS-XR-shellutil-oper",
"imo": "http://cisco.com/ns/yang/Cisco-IOS-XR-invmgr-oper",
"ntpc": "http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-cfg",
"ntp": "http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-oper",
"lldp": "http://cisco.com/ns/yang/Cisco-IOS-XR-ethernet-lldp-oper",
"bgp": "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper",
"bgpc": "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-cfg",
"mac": "http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-oper",
"int4": "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-io-oper",
"int6": "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv6-ma-oper",
"snmp": "http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg",
"usr": "http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-cfg",
"aaa": "http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-lib-cfg",
"arp": "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-arp-oper",
"prbc": "http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-cfg",
"prb": "http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-oper",
"rib4": "http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv4-oper",
"rib6": "http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv6-oper",
"tr": "http://cisco.com/ns/yang/Cisco-IOS-XR-traceroute-act",
"sys": "http://cisco.com/ns/yang/Cisco-IOS-XR-wdsysmon-fd-oper",
"mem": "http://cisco.com/ns/yang/Cisco-IOS-XR-nto-misc-oper",
}

# GET RPC to retrieve device facts
FACTS_RPC_REQ = '''<get xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
FACTS_RPC_REQ = """<get xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
<filter>
<system-time xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-shellutil-oper"/>
<interfaces xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-pfi-im-cmd-oper">
@@ -70,10 +71,10 @@
</entities>
</inventory>
</filter>
</get>'''
</get>"""

# subtree filter to get interface state using GET RPC
INT_RPC_REQ_FILTER = '''
INT_RPC_REQ_FILTER = """
<interfaces xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-pfi-im-cmd-oper">
<interfaces>
<interface>
@@ -93,10 +94,10 @@
<mtu/>
</interface>
</interface-xr>
</interfaces>'''
</interfaces>"""

# subtree filter to get interface counters using GET RPC
INT_COUNTERS_RPC_REQ_FILTER = '''
INT_COUNTERS_RPC_REQ_FILTER = """
<interfaces xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-pfi-im-cmd-oper">
<interface-xr>
<interface>
@@ -120,18 +121,18 @@
</interface-statistics>
</interface>
</interface-xr>
</interfaces>'''
</interfaces>"""

# subtree filter to get NTP peers and servers using GET CONFIG RPC
NTP_RPC_REQ_FILTER = '''
NTP_RPC_REQ_FILTER = """
<ntp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-cfg">
<peer-vrfs>
<peer-vrf/>
</peer-vrfs>
</ntp>'''
</ntp>"""

# subtree filter to get NTP statistics using GET RPC
NTP_STAT_RPC_REQ_FILTER = '''
NTP_STAT_RPC_REQ_FILTER = """
<ntp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ip-ntp-oper">
<nodes>
<node>
@@ -142,10 +143,10 @@
</associations>
</node>
</nodes>
</ntp>'''
</ntp>"""

# subtree filter to get LLDP neighbors and neighbors detail using GET RPC
LLDP_RPC_REQ_FILTER = '''
LLDP_RPC_REQ_FILTER = """
<lldp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ethernet-lldp-oper">
<nodes>
<node>
@@ -158,10 +159,10 @@
</neighbors>
</node>
</nodes>
</lldp>'''
</lldp>"""

# subtree filter to get BGP neighbors and neighbors detail using GET RPC
BGP_NEIGHBOR_REQ_FILTER = '''
BGP_NEIGHBOR_REQ_FILTER = """
<bgp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper">
<instances>
<instance>
@@ -181,28 +182,28 @@
</instance-active>
</instance>
</instances>
</bgp>'''
</bgp>"""

# subtree filter to get BGP configuration using GET CONFIG RPC
BGP_CFG_RPC_REQ_FILTER = '''
BGP_CFG_RPC_REQ_FILTER = """
<bgp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-cfg">
<instance>
<instance-name>default</instance-name>
</instance>
</bgp>'''
</bgp>"""

# subtree filter to get MAC address table using GET RPC
MAC_TABLE_RPC_REQ_FILTER = '''
MAC_TABLE_RPC_REQ_FILTER = """
<l2vpn-forwarding xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-oper">
<nodes>
<node>
<l2fibmac-details/>
</node>
</nodes>
</l2vpn-forwarding>'''
</l2vpn-forwarding>"""

# GET RPC to retrieve ipv4 and ipv6 addresses
INT_IPV4_IPV6_RPC_REQ = '''
INT_IPV4_IPV6_RPC_REQ = """
<get xmlns="urn:ietf:params:xml:ns:netconf:base:1.1">
<filter>
<ipv4-network xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-io-oper">
@@ -236,28 +237,28 @@
</nodes>
</ipv6-network>
</filter>
</get>'''
</get>"""

# subtree filter to get SNMP configuration using GET CONFIG RPC
SNMP_RPC_REQ_FILTER = '''
<snmp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg"/>'''
SNMP_RPC_REQ_FILTER = """
<snmp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-snmp-agent-cfg"/>"""

# subtree filter to get SNMP configuration using GET CONFIG RPC
USERS_RPC_REQ_FILTER = '''
USERS_RPC_REQ_FILTER = """
<aaa xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-lib-cfg">
<usernames xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-cfg">
<username/>
</usernames>
</aaa>'''
</aaa>"""

# RPC to rollback the last commit to the running configuration
ROLLBACK_RPC_REQ = '''
ROLLBACK_RPC_REQ = """
<roll-back-configuration-last xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-cfgmgr-rollback-act">
<count>1</count>
</roll-back-configuration-last>'''
</roll-back-configuration-last>"""

# subtree filter to get ARP table using GET RPC
ARP_RPC_REQ_FILTER = '''
ARP_RPC_REQ_FILTER = """
<arp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-arp-oper">
<nodes>
<node>
@@ -266,26 +267,26 @@
</entries>
</node>
</nodes>
</arp>'''
</arp>"""

# subtree filter to get probe configuration using GET CONFIG RPC
PROBE_CFG_RPC_REQ_FILTER = '''
PROBE_CFG_RPC_REQ_FILTER = """
<ipsla xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-cfg">
<operation>
<definitions/>
</operation>
</ipsla>'''
</ipsla>"""

# subtree filter to get probe results using GET RPC
PROBE_OPER_RPC_REQ_FILTER = '''
PROBE_OPER_RPC_REQ_FILTER = """
<ipsla xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-man-ipsla-oper">
<operation-data>
<operations/>
</operation-data>
</ipsla>'''
</ipsla>"""

# subtree filter to get ipv6 address route using GET RPC
ROUTE_IPV6_RPC_REQ_FILTER = '''
ROUTE_IPV6_RPC_REQ_FILTER = """
<ipv6-rib xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv6-oper">
<vrfs>
<vrf>
@@ -313,10 +314,10 @@
</afs>
</vrf>
</vrfs>
</ipv6-rib>'''
</ipv6-rib>"""

# subtree filter to get ipv4 address route using GET RPC
ROUTE_IPV4_RPC_REQ_FILTER = '''
ROUTE_IPV4_RPC_REQ_FILTER = """
<rib xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ip-rib-ipv4-oper">
<vrfs>
<vrf>
@@ -344,60 +345,59 @@
</afs>
</vrf>
</vrfs>
</rib>'''
</rib>"""

# GET RPC to retrieve trace route data
TRACEROUTE_RPC_REQ = '''
TRACEROUTE_RPC_REQ = """
<traceroute xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-traceroute-act">
<ipv{version}>
<destination>{destination}</destination>
{vrf_tag}{source_tag}
{ttl_tag}{timeout_tag}
</ipv{version}>
</traceroute>'''
</traceroute>"""

# namespaces for XR environment monitoring native models
ENVMON_NAMESPACES = {'sysadmin-asr9k-envmon-ui': "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-asr9k-envmon-ui",
'sysadmin-envmon-ui': "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-envmon-ui",
'sysadmin-fretta-envmon-ui': "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-fretta-envmon-ui",
}
ENVMON_NAMESPACES = {
"sysadmin-asr9k-envmon-ui": "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-asr9k-envmon-ui",
"sysadmin-envmon-ui": "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-envmon-ui",
"sysadmin-fretta-envmon-ui": "http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-fretta-envmon-ui",
}

# subtree filters to get environment details using GET RPC
ENVMON_RPC_REQ_FILTER = {'sysadmin-asr9k-envmon-ui':
'''<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-asr9k-envmon-ui">
ENVMON_RPC_REQ_FILTER = {
"sysadmin-asr9k-envmon-ui": """<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-asr9k-envmon-ui">
<oper>
<temperatures/>
<fan/>
<power/>
</oper>
</environment>''',
'sysadmin-envmon-ui':
'''<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-envmon-ui">
</environment>""",
"sysadmin-envmon-ui": """<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-envmon-ui">
<oper>
<temperatures/>
<fan/>
<power/>
</oper>
</environment>''',
'sysadmin-fretta-envmon-ui':
'''<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-fretta-envmon-ui">
</environment>""",
"sysadmin-fretta-envmon-ui": """<environment xmlns="http://www.cisco.com/ns/yang/Cisco-IOS-XR-sysadmin-fretta-envmon-ui">
<oper>
<temperatures/>
<fan/>
<power/>
</oper>
</environment>''',
}
</environment>""",
}

# platform models without environment monitoring
PLAT_NO_ENVMON = ['R-IOSXRV9000-CC']
PLAT_NO_ENVMON = ["R-IOSXRV9000-CC"]

# subtree filter to get memory summary details using GET RPC
ENV_MEM_RPC_REQ_FILTER = '''
<memory-summary xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-nto-misc-oper"/>'''
ENV_MEM_RPC_REQ_FILTER = """
<memory-summary xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-nto-misc-oper"/>"""

# subtree filter to get system monitoring details using GET RPC
ENV_SYS_MON_RPC_REQ_FILTER = '''
ENV_SYS_MON_RPC_REQ_FILTER = """
<system-monitoring xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-wdsysmon-fd-oper">
<cpu-utilization/>
</system-monitoring>'''
</system-monitoring>"""
Loading