From d4898d31ba9556aaaa9de8650f7c5691c2af33a1 Mon Sep 17 00:00:00 2001 From: Ali Shahbazi <57268306+alishahbazi360@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:23:20 +0100 Subject: [PATCH 1/2] Add VLAN count and license feature parsing to template --- .../templates/cisco_asa_show_version.textfsm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ntc_templates/templates/cisco_asa_show_version.textfsm b/ntc_templates/templates/cisco_asa_show_version.textfsm index 52e38d88f4..a6f680eb14 100644 --- a/ntc_templates/templates/cisco_asa_show_version.textfsm +++ b/ntc_templates/templates/cisco_asa_show_version.textfsm @@ -16,6 +16,11 @@ Value FAILOVER (\S+) Value CLUSTER (\S+) Value List SERIAL (\S+) Value LAST_MOD (.+) +Value VLAN_COUNT (\d+) +Value VLAN_DESC (.*) +Value LICENSE_FEATURE_NAME ([-\w\s/]+) +Value LICENSE_FEATURE_VALUE (\S+) +Value LICENSE_FEATURE_TYPE (\S+) Start ^.*Software\sVersion\s${VERSION} @@ -90,5 +95,11 @@ Start ^WebVPN.*: ^WARNING: ^Running\s+Activation\s+Key\s*: + ^VLANs\s*:\s+${VLAN_COUNT}\s+${VLAN_DESC} + ^Licensed features for this platform: -> LicenseFeatures ^\s*$$ - ^. -> Error + ^. -> Next + +LicenseFeatures + ^${LICENSE_FEATURE_NAME}\s*:\s+${LICENSE_FEATURE_VALUE}\s+${LICENSE_FEATURE_TYPE} -> Record + ^\s*$$ -> Start From 3c908a1edd74718fb163ed145860f5ee54279f8f Mon Sep 17 00:00:00 2001 From: Ali Shahbazi <57268306+alishahbazi360@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:25:31 +0100 Subject: [PATCH 2/2] Add interface number and status fields to template --- .../cisco_asa_show_interface_detail.textfsm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ntc_templates/templates/cisco_asa_show_interface_detail.textfsm b/ntc_templates/templates/cisco_asa_show_interface_detail.textfsm index e1bce4a601..b464d30d7f 100644 --- a/ntc_templates/templates/cisco_asa_show_interface_detail.textfsm +++ b/ntc_templates/templates/cisco_asa_show_interface_detail.textfsm @@ -49,6 +49,9 @@ Value SWITCH_EGRESS_POLICY_DROPS (\d+) Value IN_RESET_DROPS (\d+) Value OUT_RESET_DROPS (\d+) Value VLAN_ID (\d+) +Value IFACE_NUM (\d+) +Value IFACE_CFG_STATUS (\S+) +Value IFACE_STATE (\S+) # # Control Point Interface States # @@ -120,8 +123,11 @@ Start ^Interface -> Continue.Record ^Interface\s+${INTERFACE}\s+"${INTERFACE_NAME}",\s+is\s+${LINK_STATUS},\s+line\s+protocol\s+is\s+${PROTOCOL_STATUS} ^\s+Topology\s+Information: -> Topology + ^\s*Interface number is ${IFACE_NUM} + ^\s*Interface config status is ${IFACE_CFG_STATUS} + ^\s*Interface state is ${IFACE_STATE} ^\s*$$ - ^. -> Error + ^. -> Next ControlPoint ^\s+Interface\s+number\s+is\s+${CONTROL_INTERFACE_NUMBER} @@ -132,6 +138,9 @@ ControlPoint ^\s+Queue\s+Stats: ^\s+RX\[${RXRING_NUMBER}\]:\s+${RXRING_PACKETS}\s+packets,\s+${RXRING_BYTES}\s+bytes,\s+${RXRING_OVERRUN}\s+overrun -> RXRingBlocks ^\s+TX\[${TXRING_NUMBER}\]:\s+${TXRING_PACKETS}\s+packets,\s+${TXRING_BYTES}\s+bytes,\s+${TXRING_UNDERRUN}\s+underruns -> TXRingBlocks + ^\s*Interface number is ${IFACE_NUM} + ^\s*Interface config status is ${IFACE_CFG_STATUS} + ^\s*Interface state is ${IFACE_STATE} RXRingBlocks ^\s+RX\[${RXRING_NUMBER}\]:\s+${RXRING_PACKETS}\s+packets,\s+${RXRING_BYTES}\s+bytes,\s+${RXRING_OVERRUN}\s+overrun @@ -143,7 +152,7 @@ RXRingBlocks ^Interface -> Continue.Record ^Interface\s+${INTERFACE}\s+"${INTERFACE_NAME}",\s+is\s+${LINK_STATUS},\s+line\s+protocol\s+is\s+${PROTOCOL_STATUS} -> Start ^\s*$$ - ^. -> Error + ^. -> Next TXRingBlocks ^\s+TX\[${TXRING_NUMBER}\]:\s+${TXRING_PACKETS}\s+packets,\s+${TXRING_BYTES}\s+bytes,\s+${TXRING_UNDERRUN}\s+underruns @@ -155,7 +164,7 @@ TXRingBlocks ^Interface -> Continue.Record ^Interface\s+${INTERFACE}\s+"${INTERFACE_NAME}",\s+is\s+${LINK_STATUS},\s+line\s+protocol\s+is\s+${PROTOCOL_STATUS} -> Start ^\s*$$ - ^. -> Error + ^. -> Next Topology ^\s{4,}\S+ @@ -165,4 +174,4 @@ Topology ^\s+RX\[${RXRING_NUMBER}\]:\s+${RXRING_PACKETS}\s+packets,\s+${RXRING_BYTES}\s+bytes,\s+${RXRING_OVERRUN}\s+overrun -> RXRingBlocks ^\s+TX\[${TXRING_NUMBER}\]:\s+${TXRING_PACKETS}\s+packets,\s+${TXRING_BYTES}\s+bytes,\s+${TXRING_UNDERRUN}\s+underruns -> TXRingBlocks ^\s*$$ - ^. -> Error + ^. -> Next