Skip to content

Aruba 'show interface' fails with error when VRF is defined #2252

@Christophoclese

Description

@Christophoclese
ISSUE TYPE
  • Template Issue with error and raw data
TEMPLATE USING

aruba_aoscx_show_interface.textfsm

Value Required INTERFACE (\S+)
Value LINK_STATUS (\w+)
Value LINK_ADMIN (\w+)
Value LINK_STATE_INFO (\.*)
Value LINK_TRANSITIONS (\d+)
Value INTERFACE_DESC (.*)
Value HW_TYPE (\w+)
Value MAC_ADDRESS (\S+)
Value MTU (\d+)
Value IF_TYPE (\S+)
Value IP_ADDRESS (\S+)
Value DUPLEX (\w+)
Value QOS_TRUST (\S+)
Value SPEED (\S+\s\S+) 
Value AUTO_NEG (\S+)
Value FLOW_CONTROL (\S+)
Value ERROR_CONTROL (\S+)
Value VLAN_MODE (\S+)
Value VLAN_ACCESS (\S+)
Value VLAN_NATIVE (\S+)
Value List VLAN_TRUNK ([^,]+)
Value List AGGREGATED_INTERFACES (\S+)
Value RX_TOTAL_PACKETS (\d+)
Value RX_TOTAL_BYTES (\d+)
Value RX_UNICAST_PACKETS (\d+)
Value RX_MCAST_PACKETS (\d+)
Value RX_BROADCAST_PACKETS (\d+)
Value RX_ERRORS (\d+)
Value RX_DROPPED (\d+)
Value RX_CRC_FCS (\d+)
Value TX_TOTAL_PACKETS (\d+)
Value TX_TOTAL_BYTES (\d+)
Value TX_UNICAST_PACKETS (\d+)
Value TX_MCAST_PACKETS (\d+)
Value TX_BROADCAST_PACKETS (\d+)
Value TX_ERRORS (\d+)
Value TX_DROPPED (\d+)
Value TX_CRC_FCS (\S+)
Value TX_COLLISION (\d+)

Start
  ^\s*(Interface|Aggregate)\s+\S+\s+is -> Continue.Record
  ^\s*(Interface|Aggregate)\s+${INTERFACE}\s+is\s+${LINK_STATUS}
  ^\s*Admin\s*state\s*is\s*${LINK_ADMIN}
  ^\s*Link\s*transitions\s*:\s*${LINK_TRANSITIONS}
  ^\s*Description\s*:\s*${INTERFACE_DESC}
  ^\s*State\s*information\s*:\s*${LINK_STATE_INFO}
  ^\s*Hardware\s*:\s*${HW_TYPE},?\s*MAC\s*Address:\s+${MAC_ADDRESS}
  ^\s*MAC\s+Address\s*:\s*${MAC_ADDRESS}
  ^\s*IPv4\s+address\s+${IP_ADDRESS}
  ^\s*MTU\s*${MTU}
  ^\s*Type\s*${IF_TYPE}
  ^\s*${DUPLEX}-duplex
  ^\s*qos\s*trust\s*${QOS_TRUST}
  ^\s*Speed\s*:*\s*${SPEED}
  ^\s*Auto-negotiation\s*is\s*${AUTO_NEG}
  ^\s*Flow-control\s*:\s*${FLOW_CONTROL}
  ^\s*Error-control\s*:\s*${ERROR_CONTROL}
  ^\s*VLAN Mode\s*:\s*${VLAN_MODE}
  ^\s*Access VLAN\s*:\s*${VLAN_ACCESS}
  ^\s*Native VLAN\s*:\s*${VLAN_NATIVE}
  ^\s*Allowed VLAN List\s*:\s+${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){1}${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){2}${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){3}${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){4}${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:\s+(?:[^,]+,){5}${VLAN_TRUNK},* -> Continue
  ^\s*Allowed VLAN List\s*:
  ^\s*Link state
  ^\s*Aggregated-interfaces\s*:\s+${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){1}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){2}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){3}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){4}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){5}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){6}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:\s+(?:\S+\s+){7}${AGGREGATED_INTERFACES}\s* -> Continue
  ^\s*Aggregated-interfaces\s*:
  ^\s*Aggregation-key
  ^\s*Aggregate\s+mode
  ^\s*Persona
  ^\s*rate-limit\s+broadcast
  ^\s*L3\s+Counters
  ^\s*MDI mode
  ^\s*Rate collection interval
  ^\s*Energy-Efficient
  ^\s*Rx -> Rx
  ^\s*Rate\s+RX\s+TX\s+Total -> Rate
  ^\s*Statistic\s+RX\s+TX\s+Total -> Statistic
  ^. -> Error

Rx
  ^\s*${RX_TOTAL_PACKETS} total packets\s*${RX_TOTAL_BYTES} total bytes
  ^\s*${RX_UNICAST_PACKETS}   unicast packets
  ^\s*${RX_MCAST_PACKETS}   multicast packets
  ^\s*${RX_BROADCAST_PACKETS}   broadcast packets
  ^\s*${RX_ERRORS} errors\s*${RX_DROPPED} dropped
  ^\s*${RX_CRC_FCS} CRC/FCS
  ^\s*Tx -> Tx
  ^. -> Error

Tx
  ^\s*${TX_TOTAL_PACKETS} total packets\s*${TX_TOTAL_BYTES} total bytes
  ^\s*${TX_UNICAST_PACKETS}   unicast packets
  ^\s*${TX_MCAST_PACKETS}   multicast packets
  ^\s*${TX_BROADCAST_PACKETS}   broadcast packets
  ^\s*${TX_ERRORS} errors\s*${TX_DROPPED} dropped
  ^\s*${TX_CRC_FCS} CRC/FCS
  ^\s*${TX_COLLISION}\s*collision
  ^\s*$$ -> Start
  ^. -> Error

Rate
  ^\s*----
  ^\s*Mbits\s+/\s+sec
  ^\s*KPkts\s+/\s+sec
  ^\s+Unicast
  ^\s+Multicast
  ^\s+Broadcast
  ^\s+Utilization
  ^\s*$$ -> Statistic
  ^. -> Error

Statistic
  ^\s*Statistic\s+RX\s+TX\s+Total
  ^\s*----
  ^\s*Packets\s+${RX_TOTAL_PACKETS}\s+${TX_TOTAL_PACKETS}\s+\d+
  ^\s+Unicast\s+${RX_UNICAST_PACKETS}\s+${TX_UNICAST_PACKETS}\s+\d+
  ^\s+Multicast\s+${RX_MCAST_PACKETS}\s+${TX_MCAST_PACKETS}\s+\d+
  ^\s+Broadcast\s+${RX_BROADCAST_PACKETS}\s+${TX_BROADCAST_PACKETS}\s+\d+
  ^\s*Bytes\s+${RX_TOTAL_BYTES}\s+${TX_TOTAL_BYTES}\s+\d+
  ^\s*Jumbos
  ^\s*Pause\s+Frames
  ^\s*Dropped\s+${RX_DROPPED}\s+${TX_DROPPED}\s+\d+
  ^\s*Errors\s+${RX_ERRORS}\s+${TX_ERRORS}\s+\d+
  ^\s+CRC/FCS\s+${RX_CRC_FCS}\s+${TX_CRC_FCS}\s+\d+
  ^\s+Collision\s+\S+\s+${TX_COLLISION}\s+\d+
  ^\s*Runts
  ^\s*Giants
  ^\s*L3\s+Packets
  ^\s*$$ -> Start
  ^. -> Error
SAMPLE COMMAND OUTPUT

Output truncated:

pas-mdf-core-sw01-2# show interface
[...]

Interface 1/1/52 is up
 Admin state is up
 Link state: up for 4 months (since Tue Jul 29 20:06:38 PDT 2025)
 Link transitions: 1
 Description:
 Persona:
 Hardware: Ethernet, MAC Address: 38:bd:7a:c2:8c:40
 MTU 9500
 Type 100G-DAC1 / 100G QSFP28 1m DAC
 Full-duplex
 qos trust none
 Speed 100000 Mb/s
 Auto-negotiation is on
 Flow-control: off
 Error-control: RS-FEC
 Rate collection interval: 300 seconds

 Rate                               RX                   TX        Total (RX+TX)
 ---------------- -------------------- -------------------- --------------------
 Mbits / sec                      0.56                 3.24                 3.80
 KPkts / sec                      0.42                 1.52                 1.94
   Unicast                        0.32                 1.30                 1.62
   Multicast                      0.07                 0.21                 0.28
   Broadcast                      0.03                 0.01                 0.04
 Utilization %                    0.00                 0.00                 0.00

 Statistic                          RX                   TX                Total
 ---------------- -------------------- -------------------- --------------------
 Packets                    5729028326          13700151165          19429179491
   Unicast                  4904016385          12250304051          17154320436
   Multicast                 486021037           1332553017           1818574054
   Broadcast                 338990904            117294097            456285001
 Bytes                   1494428515877        2160396465030        3654824980907
 Jumbos                      131758623            194495842            326254465
 Dropped                             0                    0                    0
 Pause Frames                        0                    0                    0
 Errors                              0                    0                    0
   CRC/FCS                           0                  n/a                    0
   Collision                       n/a                    0                    0
   Runts                             0                  n/a                    0
   Giants                            0                  n/a                    0

Interface loopback1 is up
 Admin state is up
 VRF name is default
 Description:
 Hardware: Loopback, MAC Address: 38:bd:7a:c2:8c:40
 IPv4 address 10.255.255.1/32
 MTU 1500
 Type --
 Full-duplex
 Speed 0 Mb/s
 Auto-negotiation is off
 Flow-control: off
 Error-control: off
 MDI mode: none
 L3 Counters: Rx Disabled, Tx Disabled

Interface vlan6 is up
 Admin state is up
 Description:
 Hardware: Ethernet, MAC Address: 38:bd:7a:c2:8c:40
 IPv4 address 10.24.6.3/24
    active-gateway L3 source mac 38:bd:7a:c2:8c:40
    active-gateway ip mac 12:02:00:00:00:00
    active-gateway ip 10.24.6.1
 L3 Counters: Rx Disabled, Tx Disabled

[...]
SUMMARY

If a VRF is configured on an interface it causes parsing to fail.

STEPS TO REPRODUCE
  1. Attempt to execute aruba_aoscx_show_interface.textfsm against a device which contains at least one interface assigned to a VRF.
EXPECTED RESULTS

Interfaces are parsed successfully.

ACTUAL RESULTS

A parsing error occurs:

Parsing failed for 'show interface' command:

Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/nautobot_device_onboarding/nornir_plays/command_getter.py", line 181, in netmiko_send_commands
parsed_output = parse_output(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ntc_templates/parse.py", line 77, in parse_output
cli_table.ParseCmd(data, attrs)
File "/usr/local/lib/python3.12/site-packages/textfsm/clitable.py", line 278, in ParseCmd
self.table = self._ParseCmdItem(self.raw, template_file=template_files[0])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/clitable.py", line 312, in _ParseCmdItem
for record in fsm.ParseText(cmd_input):
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 912, in ParseText
self._CheckLine(line)
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 961, in _CheckLine
if self._Operations(rule, line):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/textfsm/parser.py", line 1043, in _Operations
raise TextFSMError(
textfsm.parser.TextFSMError: State Error raised. Rule Line: 90. Input Line: VRF name is default

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions