Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a4d07d8
Create cisco_xr_show_running-config_interface.raw
jorlandobr Nov 17, 2025
ebb351e
Add files via upload
jorlandobr Nov 17, 2025
d3a5b69
Add files via upload
jorlandobr Nov 17, 2025
658c2a9
Update index
jorlandobr Nov 17, 2025
7b93b86
Update index
jorlandobr Nov 17, 2025
f4a36b2
Update ntc_templates/templates/cisco_xr_show_running-config_interface…
jorlandobr Nov 17, 2025
ce6591b
Update ntc_templates/templates/cisco_xr_show_running-config_interface…
jorlandobr Nov 17, 2025
a09bdac
Update ntc_templates/templates/cisco_xr_show_running-config_interface…
jorlandobr Nov 17, 2025
ada1cb0
Update ntc_templates/templates/cisco_xr_show_running-config_interface…
jorlandobr Nov 17, 2025
5233e42
Update cisco_xr_show_running-config_interface.raw
jorlandobr Nov 18, 2025
f1d3408
Regenerate XR test data with MTU defined
mjbear Nov 18, 2025
1e99cfd
Add files via upload
jorlandobr Nov 18, 2025
b58d0c5
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
1f8a092
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
cbb6180
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
5d56720
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
b45cc54
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
6f00d42
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
7d54747
Update cisco_xr_show_running-config_interface.yml
jorlandobr Nov 18, 2025
de84e12
Update ntc_templates/templates/cisco_xr_show_running-config_interface…
jorlandobr Nov 18, 2025
6dba580
Normalize IP_NETMASK to be NETMASK
mjbear Nov 20, 2025
01fad39
Normalize inner/outer Q-in-Q capture groups
mjbear Nov 20, 2025
96a7bab
Change recording pattern and match date
mjbear Nov 20, 2025
af9cac4
Add ipv4 secondary address to test data
mjbear Jun 13, 2026
4c32ccc
Add second IPv6 address and handle eui-64 ones
mjbear Jun 13, 2026
819e346
Change IP address capture groups to plural
mjbear Jun 13, 2026
ffd946a
Change IPv6 prefix length capture group name
mjbear Jun 13, 2026
8feb15d
Change netmask and IPv6 prefix length to plural
mjbear Jun 13, 2026
7bab46b
Refactor regex patterns in Cisco XR template
jorlandobr Jun 16, 2026
e4590b7
Update running-config for new interfaces and settings
jorlandobr Jun 16, 2026
cb4f1e1
Refactor interface configurations in YAML file
jorlandobr Jun 16, 2026
8570e97
Refactor interface configuration in YAML file
jorlandobr Jun 16, 2026
b027dd7
Replace null with 'None' in prefixv6_lengths
jorlandobr Jun 16, 2026
e9671e9
Change ip_netmasks to netmasks (normalization)
mjbear Jun 21, 2026
20f7d97
Change prefixv6_lengths to ipv6_prefix_lengths
mjbear Jun 21, 2026
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
9 changes: 7 additions & 2 deletions docs/dev/data_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Example: Imagine the extra programming logic needed to consume structured data w
| `CHASSIS_ID` | often represents CDP or LLDP neighbor chassis ID |
| `DESCRIPTION` | often used for port or interface descriptions |
| `GATEWAY` | gateway address for a subnet |
| `INNER_VLAN` | inner 802.1Q VLAN in relation to dot1Q / Q-in-Q tunneling |
| `INTERFACE` | full word instead of IFACE, INTF, INTFC, etc |
| `IP_ADDRESS` | for a single IP address, often IPv4 |
| `IP_ADDRESSES` | for lists of IPv4 addresses, but in the case of some templates there may be a mix of IP protocol versions |
Expand All @@ -38,6 +39,8 @@ Example: Imagine the extra programming logic needed to consume structured data w
| `IPV6_ADDRESS` | for a single IPv6 address |
| `IPV6_ADDRESSES` | for lists of IPv6 addresses |
| `IPV6_GATEWAY` | for IPv6 gateway address |
| `IPV6_PREFIX_LENGTH` | for IPv6 prefix length |
| `IPV6_PREFIX_LENGTHS` | for lists of IPv6 prefix lengths |
| `LOCAL_INTERFACE` | often represents local interface or port for CDP or LLDP |
| `LOCAL_IP_ADDRESS` | local IP address in the case of First Hop Redundancy Protocols (FHRP) |
| `MAC_ADDRESS` | instead of MAC or MACADDR |
Expand All @@ -50,8 +53,10 @@ Example: Imagine the extra programming logic needed to consume structured data w
| `NEIGHBOR_INTERFACE` | often represents neighbor or remote interface or port for CDP or LLDP |
| `NEIGHBOR_INTERFACE_DESCRIPTION` | represents CDP or LLDP neighbor (remote host) interface or port descriptions (Note: see NEIGHBOR_INTERFACE) |
| `NEIGHBOR_NAME` | often represents neighbor name for CDP or LLDP |
| `NETMASK` | for IPv4 dotted quad masks |
| `NETWORK` | for network numbers or subnet address (without the mask or prefix/slash notation); in place of ROUTE |
| `NETMASK` | for IPv4 dotted quad mask (netmask) |
| `NETMASKS` | for lists of IPv4 dotted quad masks (netmasks) |
| `NETWORK` | for network number or subnet address (without the mask or prefix/slash notation); in place of ROUTE |
| `OUTER_VLAN` | outer 802.1Q VLAN in relation to dot1Q / Q-in-Q tunneling |
| `PID` | represents Part IDs (PIDs), Stock Keeping Units (SKUs), and in some cases Models or Model Numbers
| `PLATFORM` | often represents CDP or LLDP neighbor's platform or model name/number |
| `PREFIX_LENGTH` | instead of PREFIX or CIDR for the numbers of a slash notation or CIDR mask |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Value Required INTERFACE (\S+)
Value DESCRIPTION (.*)
Value BANDWIDTH (\d+)
Value OUTER_VLAN (\d+)
Value INNER_VLAN (\d+)
Value VRF (\S+)
Value MAC_ADDRESS (\S+?)
Value List IP_ADDRESSES (\d+.\d+.\d+.\d+)
Value List NETMASKS (\d+.\d+.\d+.\d+)
Value List IPV6_ADDRESSES ([0-9a-fA-F:]+)
Value List IPV6_PREFIX_LENGTHS (\d+)
Value LOAD_INTERVAL (\d+)
Value MTU (\d+)
Value MTU_IPV4 (\d+)
Value UNICAST_SOURCE (\S+)
Value UNICAST_SOURCE_V6 (\S+)
Value INPUT_POLICY (\S+)
Value OUTPUT_POLICY (\S+)
Value ACCESS_GROUP (\S+)
Value ACCESS_GROUP_V6 (\S+)
Value FLOW_MONITOR (\S+)
Value FLOW_MONITOR_V6 (\S+)
Value FLOW_MPLS (\S+)
Value FLOW_SAMPLER (\S+)
Value FLOW_SAMPLER_V6 (\S+)
Value FLOW_MPLS_SAMPLER (\S+)

Start
^interface\s+${INTERFACE}
^\s+description\s+${DESCRIPTION}
^\s+bandwidth\s+${BANDWIDTH}
^\s+service-policy\s+input\s+${INPUT_POLICY}
^\s+service-policy\s+output\s+${OUTPUT_POLICY}
^\s+vrf\s+${VRF}
^\s+ipv4\s+address\s+${IP_ADDRESSES}\s+${NETMASKS}(?:\s+secondary)?
^\s+ipv4\s+verify\s+unicast\s+source\s+reachable-via\s+${UNICAST_SOURCE}(?:\s+allow\S)?
^\s+ipv4\s+unnumbered\s+\S
^\s+ipv6\s+(nd|verify)\s+\S
^\s+ipv(4|6)\s+flowspec\s+disable
^\s+ipv6\s+verify\s+unicast\s+source\s+reachable-via\s+${UNICAST_SOURCE_V6}\s+allow-self-ping
^\s+ipv6\s+address\s+${IPV6_ADDRESSES}(?:\/+${IPV6_PREFIX_LENGTHS})?((?:\s+\S)?)
^\s+mac-address\s+${MAC_ADDRESS}
^\s+mtu\s+${MTU}
^\s+ipv4\s+mtu\s+${MTU_IPV4}
^\s+ipv6\s+enable
^\s+ipv6\s+mtu\s+\S
^\s+load-interval\s+${LOAD_INTERVAL}
^\s+flow\s+ipv4\s+monitor\s+${FLOW_MONITOR}\s+sampler\s+${FLOW_SAMPLER}\s+ingress
^\s+flow\s+ipv6\s+monitor\s+${FLOW_MONITOR_V6}\s+sampler\s+${FLOW_SAMPLER_V6}\s+ingress
^\s+flow\s+mpls\s+monitor\s+${FLOW_MPLS}\s+sampler\s+${FLOW_MPLS_SAMPLER}\s+ingress
^\s+encapsulation\s+(?:untagge|dot1q\s+${OUTER_VLAN})?(?:\s+second-dot1q\s+${INNER_VLAN})?
^\s+(mac-accounting|satellite-fabric-link|bfd|remote-ports|rewrite|carrier-delay|lacp|!)
^\s+(bundle|dampening|mpls|shutdown|nv|lldp|l2transport|cdp|negotiation|ethernet|speed|logging)
^\s+ipv4\s+access-group\s+${ACCESS_GROUP}\s+(ingress|egress)
^\s+ipv6\s+access-group\s+${ACCESS_GROUP_V6}\s+(ingress|egress)
^\S+ -> Record
# date stamp
^\w+\s+\w+\s+\d+
^. -> Error
1 change: 1 addition & 0 deletions ntc_templates/templates/index
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,7 @@ cisco_xr_show_controllers_hundredgige_all.textfsm, .*, cisco_xr, sh[[ow]] contro
cisco_xr_show_configuration_commit_list.textfsm, .*, cisco_xr, sh[[ow]] conf[[iguration]] c[[ommit]] l[[ist]]
cisco_xr_show_asic-errors_all_location.textfsm, .*, cisco_xr, sh[[ow]] asic-er[[rors]] all loc[[ation]]
cisco_xr_show_bgp_instance_all_summary.textfsm, .*, cisco_xr, sh[[ow]] bg[[p]] ins[[tance]] (\S+) sum[[mary]]
cisco_xr_show_running-config_interface.textfsm, .*, cisco_xr, sh[[ow]] run[[ning-config]] int[[erface]]
cisco_xr_admin_show_environment_power.textfsm, .*, cisco_xr, adm[[in]] sh[[ow]] env[[ironment]] p[[ower]]
cisco_xr_show_dhcp_ipv4_proxy_binding.textfsm, .*, cisco_xr, sh[[ow]] dh[[cp]] ipv4 p[[roxy]] b[[inding]]
cisco_xr_show_mpls_ldp_neighbor_brief.textfsm, .*, cisco_xr, sh[[ow]] mp[[ls]] ld[[p]] neigh[[bor]] br[[ief]]
Expand Down
Comment thread
jorlandobr marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
Thu Nov 6 12:54:14.972 BRA
interface TenGigE2/1/0/0.1234256
description TESTONE | 50M
bandwidth 50000
service-policy input IN_BAND_S_50000_V1
service-policy output OUT_BAND_S_50000_V1
ipv4 address 10.242.26.65 255.255.255.252
ipv4 verify unicast source reachable-via rx allow-self-ping
ipv6 verify unicast source reachable-via tx allow-self-ping
ipv6 address fe80:a8:2:b0::309/126
load-interval 30
encapsulation dot1q 1234
ipv4 access-group iACL ingress
ipv6 access-group FilterPackIPv6 ingress
!
interface TenGigE2/4/0/2.22227
description PEOPLE | 100M
bandwidth 100000
service-policy input IN_BAND_S_100000_V1
service-policy output OUT_BAND_S_100000_V1
ipv4 address 10.23.125.209 255.255.255.252
ipv4 verify unicast source reachable-via tx allow-self-ping
ipv6 verify unicast source reachable-via rx allow-self-ping
ipv6 address fe80:a8:2:b8::a671/126
load-interval 30
encapsulation dot1q 2222 second-dot1q 7
ipv4 access-group iACL ingress
ipv6 access-group FilterPackIPv6 ingress
!
interface TenGigE2/4/0/2.22229
description AVENIDA | 100M
bandwidth 100000
service-policy input IN_BAND_S_100000_V1
service-policy output OUT_BAND_S_100000_V1
ipv4 address 10.228.247.93 255.255.255.252
ipv4 verify unicast source reachable-via any allow-self-ping
ipv6 verify unicast source reachable-via any allow-self-ping
ipv6 address fe80:a8:2:b8::10ed/126
load-interval 30
encapsulation dot1q 2222 second-dot1q 9
ipv4 access-group iACL ingress
ipv6 access-group FilterPackIPv6 ingress
!
interface TenGigE2/4/0/2.10012
description MONTE EVEREST | 1500K
bandwidth 1500
service-policy output OUT_SIP_VOICE_1500
vrf FONE_CLIENT:5341
ipv4 address 10.86.193.193 255.255.255.252
ipv4 verify unicast source reachable-via rx allow-self-ping
load-interval 30
encapsulation dot1q 1001 second-dot1q 2
!
interface TenGigE2/4/0/2.1002
description TEST PASS| 100M
bandwidth 100000
service-policy input IN_100000K_1_0_1_0_0_1_1
service-policy output OUT_100000K_1_0_1_0_0_1_1
vrf FEED_HUB:1245
ipv4 address 10.245.37.157 255.255.255.252
ipv6 address fe80:a8:2:2b8::751/126
load-interval 30
encapsulation dot1q 1002
!
interface TenGigE2/4/0/2.10023
description BLUE | 2048K
bandwidth 2048
service-policy input IN_BLUE_2M_0_0_0_98_0_1_XR_V1
service-policy output OUT_BLUE_2M_0_0_0_98_0_1_XR_V1
vrf OBS_CHIN:1236
ipv4 address 192.168.226.53 255.255.255.252
ipv6 address fe80:a8:2:2b8::ac5/126
load-interval 30
encapsulation dot1q 1002 second-dot1q 3
!
interface TenGigE3/0/0/0
description TEST MTU and FLOW
mtu 9216
ipv4 mtu 9000
flow ipv4 monitor IPV4-MONITOR sampler IPV4-SAMPLER ingress
flow ipv6 monitor IPV6-MONITOR sampler IPV6-SAMPLER ingress
flow mpls monitor MPLS-MONITOR sampler MPLS-SAMPLER ingress
!
interface TenGigE3/0/0/1
description TEST EGRESS ACL
shutdown
ipv4 access-group iACL-IN ingress
ipv4 access-group iACL-OUT egress
ipv6 access-group FilterPackIPv6-IN ingress
ipv6 access-group FilterPackIPv6-OUT egress
!
interface Bundle-Ether10
description TEST STRINGS
bfd mode ietf
bfd address-family ipv4 multiplier 3
bfd address-family ipv4 destination 10.230.130.4
bfd address-family ipv4 fast-detect
bfd address-family ipv4 minimum-interval 100
mtu 9208
lldp
ipv4 flowspec disable
ipv6 flowspec disable
service-policy output SubRate_200
mac-accounting ingress
encapsulation dot1q 31 exact
rewrite ingress tag pop 1 symmetric
ipv4 mtu 9180
ipv4 address 10.230.130.5 255.255.255.254
ipv6 address 2804:a8:2:b8::13a9/126
ipv6 address fe80::1000:16:3/126 link-local
ipv6 address fe80::1000:16:2 link-local

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The missing prefix length on raw file line 111, and 113 likely resulted in the None as seen in the parsed yaml file on lines 259 and 261.

The /19 prefix length on line 114 may seem off, but is otherwise valid.

ipv6 address fe80:388:129:16::3/64 eui-64
ipv6 address fe80:388:129:16::24 eui-64
ipv6 address fe80:0cB8:0:1::/19
ipv6 address fe80:0D18:0:1::/64 eui-64
logging events link-status
mpls
mtu 9180
!
interface Bundle-Ether100
shutdown
description satellite100
cdp
carrier-delay up 0 down 0
lacp period short
load-interval 30
dampening
ethernet udld
l2transport
speed 1000
negotiation auto
nv
satellite-fabric-link satellite 100
remote-ports GigabitEthernet 0/0/0 - 43
!
!
!
Loading
Loading