Skip to content

Update Huawei VRP display vlan #2016

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
79 changes: 47 additions & 32 deletions ntc_templates/templates/huawei_vrp_display_vlan.textfsm
Original file line number Diff line number Diff line change
@@ -1,42 +1,57 @@
Value Filldown VLAN_ID (\d+)
Value Filldown VLAN_TYPE (\w+)
Value Filldown MODE ((TG|UT))
Value INTERFACE ([A-Z0-9/th\-runk]+)
Value VLAN_NAME (.+)
# Complement huawei_vrp_display_vlan_brief.textfsm
Value Key,Required VLAN_ID (\d+)
Value VLAN_TYPE (\S+)
Value VLAN_STATUS (\S+)
Value VLAN_MAC_LEARNING (\S+)
Value VLAN_DESCRIPTION (\S+|\S.+\S)
Value VLAN_PROPERTY (\S+)
Value VLAN_BROADCAST (\S+)
Value VLAN_MULTICAST (\S+)
Value VLAN_UNICAST (\S+)
Value VLAN_STATISTICS (\S+)

Start
^The\s+total\s+number\s+of\s+VLANs
^-+$$
^U:\s+Up;\s+D:\s+Down;\s+TG:\s+Tagged;\s+UT:\s+Untagged;
^MP:\s+Vlan-mapping;\s+ST:\s+Vlan-stacking;
^#:\s+ProtocolTransparent-vlan;\s+\*:\s+Management-vlan;
^VID\s+Type\s+Ports -> VLANS
^VID\s+Status\s+Property -> STATUS
^\s*\*\s+:\s+management-vlan\s*$$
^\s*The\s+total\s+number\s+of\s+(VLAN|vlan)s\s+is\s*:\s+\d+\s*$$
^\s*-+\s*$$
^\s*U:\s*Up;\s*D:\s*Down;\s*TG:\s*Tagged;\s*UT:\s*Untagged;\s*$$
^\s*MP:\s+Vlan-mapping;\s+ST:\s+Vlan-stacking;\s*$$
^\s*#:\s+ProtocolTransparent-vlan;\s+\*:\s+Management-vlan;\s*$$
^\s*MAC-LRN:\s+MAC-address\s+learning;\s+STAT:\s+Statistic;\s*$$
^\s*BC:\s+Broadcast;\s+MC:\s+Multicast;\s+UC:\s+Unknown-unicast;\s*$$
^\s*FWD:\s+Forward;\s+DSD:\s+Discard;\s*$$
^\s*VID\s+(?:Type\s+)?Ports\s*$$ -> VLANS_SW
^\s*VID\s+Name\s+Status\s+Ports\s*$$ -> VLANS_AP
^\s*VID\s+Status\s+Property\s+MAC\-LRN\s+Statistics\s+Description\s*$$ -> STATUS_SW
^\s*VID\s+Type\s+Status\s+Property\s+MAC\-LRN\s+STAT\s+BC\s+MC\s+UC\s+Description\s*$$ -> STATUS_SW_2
^\s*VLAN\s+ID\s+Type\s+Status\s+MAC\s+Learning\s+Broadcast\/Multicast\/Unicast\s+Property\s*$$ -> STATUS_AP
^. -> Error

VLANS
^-+$$
^${VLAN_ID}\s+${VLAN_TYPE}\s*$$ -> Record
^${VLAN_ID}\s+${VLAN_TYPE}\s+${MODE}:${INTERFACE}\(\w+\)\s* -> Continue.Record
^${VLAN_ID}\s+${VLAN_TYPE}\s+${MODE}:(?:\S+\s+){1}\s+${INTERFACE}\(\w+\)\s* -> Continue.Record
^${VLAN_ID}\s+${VLAN_TYPE}\s+${MODE}:(?:\S+\s+){2}\s+${INTERFACE}\(\w+\)\s* -> Continue.Record
^${VLAN_ID}\s+${VLAN_TYPE}\s+${MODE}:(?:\S+\s+){3}\s+${INTERFACE}\(\w+\)\s* -> Continue.Record
^${VLAN_ID}\s+${VLAN_TYPE}\s+${MODE}:(?:\S+\s+){4}\s+${INTERFACE}\(\w+\)\s* -> Continue.Record
^\d+
^\s{6,}${MODE}:${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}(?:\S+\s+){1}${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}(?:\S+\s+){2}${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}(?:\S+\s+){3}${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}(?:\S+\s+){4}${INTERFACE}\(\w+\)\s* -> Continue.Record
^\s{6,}
VLANS_SW
^\s*-+\s*$$
^\s*\d+\s+
^\s+\S+
^\s*$$ -> Start
^. -> Error

VLANS_AP
^\s*-+\s*$$
^\s*\d+\s+
^\s+\S+
^\s*$$ -> Start
^. -> Error

STATUS_SW
^\s*-+\s*$$
^\s*${VLAN_ID}\s+${VLAN_STATUS}\s+${VLAN_PROPERTY}\s+${VLAN_MAC_LEARNING}\s+${VLAN_STATISTICS}\s+${VLAN_DESCRIPTION}\s*$$ -> Record
^. -> Error

STATUS_SW_2
^\s*-+\s*$$
^\s*${VLAN_ID}\s+${VLAN_TYPE}\s+${VLAN_STATUS}\s+${VLAN_PROPERTY}\s+${VLAN_MAC_LEARNING}\s+${VLAN_STATISTICS}\s+${VLAN_BROADCAST}\s+${VLAN_MULTICAST}\s+${VLAN_UNICAST}\s+${VLAN_DESCRIPTION}\s*$$ -> Record
^. -> Error

STATUS
^-+$$ -> Clearall
^${VLAN_ID}\s+${VLAN_STATUS}\s+\S+\s+\S+\s+\S+\s+${VLAN_NAME} -> Continue.Record
^\d+ -> Clearall
STATUS_AP
^\s*-+\s*$$
^\s*${VLAN_ID}\s+${VLAN_TYPE}\s+${VLAN_STATUS}\s+${VLAN_MAC_LEARNING}\s+${VLAN_BROADCAST}\s+${VLAN_MULTICAST}\s+${VLAN_UNICAST}\s+${VLAN_PROPERTY}\s*$$ -> Record
^. -> Error
64 changes: 64 additions & 0 deletions ntc_templates/templates/huawei_vrp_display_vlan_brief.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
Value Key,Required,Filldown VLAN_ID (\d+)
Value Filldown VLAN_NAME (\w.+\w|\w+)
Value Filldown MODE ((TG|UT))
Value Filldown VLAN_STATUS ((enable|disable))
Value Filldown VLAN_TYPE ((common|uncommon))
Value List INTERFACE ([\w+\.\-\/]+)
Value List INTERFACE_STATUS ((U|D))

Start
^\s*\*\s+:\s+management-vlan\s*$$
^\s*The\s+total\s+number\s+of\s+(VLAN|vlan)s\s+is\s*:\s+\d+\s*$$
^\s*-+\s*$$
^\s*U:\s*Up;\s*D:\s*Down;\s*TG:\s*Tagged;\s*UT:\s*Untagged;\s*$$
^\s*MP:\s+Vlan-mapping;\s+ST:\s+Vlan-stacking;\s*$$
^\s*#:\s+ProtocolTransparent-vlan;\s+\*:\s+Management-vlan;\s*$$
^\s*MAC-LRN:\s+MAC-address\s+learning;\s+STAT:\s+Statistic;\s*$$
^\s*BC:\s+Broadcast;\s+MC:\s+Multicast;\s+UC:\s+Unknown-unicast;\s*$$
^\s*FWD:\s+Forward;\s+DSD:\s+Discard;\s*$$
^\s*VID\s+(?:Type\s+)?Ports\s*$$ -> VLANS_SW
^\s*VID\s+Name\s+Status\s+Ports\s*$$ -> VLANS_AP
^\s*VID\s+(?:Type\s+)?Status\s+Property\s+MAC\-LRN\s+(STAT|Statistics)\s+(?:BC\s+)?(?:MC\s+)?(?:UC\s+)?Description\s*$$ -> STATUS_SW
Copy link
Collaborator

@mjbear mjbear Apr 18, 2025

Choose a reason for hiding this comment

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

@evilmonkey19
What do you think about consolidating some of the repeated and optional chars for BC, MC, UC?

Edit: This could allow for BC BC to be supported, but that's not likely. 😅

If you think this is too complex we can avoid it.

Suggested change
^\s*VID\s+(?:Type\s+)?Status\s+Property\s+MAC\-LRN\s+(STAT|Statistics)\s+(?:BC\s+)?(?:MC\s+)?(?:UC\s+)?Description\s*$$ -> STATUS_SW
^\s*VID\s+(?:Type\s+)?Status\s+Property\s+MAC\-LRN\s+(STAT|Statistics)\s+(?:(?:[BMU]C\s+)?)*Description\s*$$ -> STATUS_SW

^\s*VLAN\s+ID\s+Type\s+Status\s+MAC\s+Learning\s+Broadcast\/Multicast\/Unicast\s+Property\s*$$ -> STATUS_AP
^. -> Error

VLANS_SW
^\d+ -> Continue.Record
^\s+(UT|TG): -> Continue.Record
^\s*${VLAN_ID}\s+(?:${VLAN_TYPE}\s+)? -> Continue
^.+(?:(-|common|uncommon)\s+)?${MODE}:\s*${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^.+(?:(-|common|uncommon)\s+)?(UT|TG):\s*[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^.+(?:(-|common|uncommon)\s+)?(UT|TG):\s*[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^.+(?:(-|common|uncommon)\s+)?(UT|TG):\s*[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+${MODE}:\s*[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+(UT|TG):\s*[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+(UT|TG):\s*[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\d+
^\s+\S+
^\s*-+\s*$$
^\s*$$ -> Start
^. -> Error

VLANS_AP
^\d+ -> Continue.Record
^\s*${VLAN_ID}\s+(?:${VLAN_NAME}\s+)?${VLAN_STATUS}\s+ -> Continue
^.+(-|enable|disable)\s+${MODE}:\s*${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^.+(-|enable|disable)\s+(UT|TG):\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^.+(-|enable|disable)\s+(UT|TG):\s+[\w+\.\-\/\(\)]+\s+[\w+\.\-\/\(\)]+\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\s+${INTERFACE}\(${INTERFACE_STATUS}\)\s* -> Continue
^\d+
^\s+\S+
^\s*-+\s*$$
^. -> Error

STATUS_SW
^\s*-+\s*$$
^\s*\d+\s+\w+\s+\w+\s+\w+\s+\w+\s+\S.+\S\s*$$
^. -> Error

STATUS_AP
^\s*-+\s*$$
^\s*\d+\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$$
^. -> Error
3 changes: 2 additions & 1 deletion ntc_templates/templates/index
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,7 @@ huawei_smartax_port_vlan.textfsm, .*, huawei_smartax, port vlan\s*
huawei_smartax_ont_add.textfsm, .*, huawei_smartax, ont add\s*

huawei_vrp_display_lldp_neighbor.textfsm:huawei_vrp_display_lldp_neighbor2.textfsm, .*, huawei_vrp, dis[[play]] lldp nei[[ghbor]]
huawei_vrp_display_vlan.textfsm:huawei_vrp_display_vlan_brief.textfsm, .*, huawei_vrp, di[[splay]] v[[lan]]$
huawei_vrp_display_traffic-filter_applied-record.textfsm, .*, huawei_vrp, dis[[play]] traffic-filter applied-record
huawei_vrp_display_ip_vpn-instance_interface.textfsm, .*, huawei_vrp, di[[splay]] ip vpn[[-instance]] interface
huawei_vrp_display_snmp-agent_community_read.textfsm, .*, huawei_vrp, dis[[play]] snm[[p-agent]] c[[ommunity]] (r[[ead]]|w[[rite]])
Expand All @@ -756,6 +757,7 @@ huawei_vrp_display_mac-address.textfsm, .*, huawei_vrp, disp[[lay]] mac[[-addres
huawei_vrp_display_temperature.textfsm, .*, huawei_vrp, dis[[play]] tem[[perature]]
huawei_vrp_display_nat_server.textfsm, .*, huawei_vrp, dis[[play]] na[[t]] ser[[ver]]
huawei_vrp_display_sn_license.textfsm, .*, huawei_vrp, dis[[play]] sn l[[icence]]
huawei_vrp_display_vlan_brief.textfsm, .*, huawei_vrp, di[[splay]] v[[lan]] b[[rief]]
huawei_vrp_display_arp_brief.textfsm, .*, huawei_vrp, dis[[play]] arp br[[ief]]
huawei_vrp_display_interface.textfsm, .*, huawei_vrp, dis[[play]] inter[[face]]\s*((?!brief|counters|description).)*$
huawei_vrp_display_isis_peer.textfsm, .*, huawei_vrp, disp[[lay]] isis p[[eer]]
Expand All @@ -765,7 +767,6 @@ huawei_vrp_display_arp_all.textfsm, .*, huawei_vrp, disp[[lay]] ar[[p]] all
huawei_vrp_display_startup.textfsm, .*, huawei_vrp, dis[[play]] star[[tup]]
huawei_vrp_display_version.textfsm, .*, huawei_vrp, dis[[play]] ver[[sion]]
huawei_vrp_display_device.textfsm, .*, huawei_vrp, di[[splay]] de[[vice]]( a[[ll]]|c[[ard]])?
huawei_vrp_display_vlan.textfsm, .*, huawei_vrp, di[[splay]] v[[lan]]

ipinfusion_ocnos_show_lldp_table.textfsm, .*, ipinfusion_ocnos, show ll[[dp]] t[[able]]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ VID Type Ports
XGE0/0/11(D) XGE0/0/12(D)
20 common TG:40GE0/0/1(D) 40GE0/0/2(D) 40GE0/0/3(D) 40GE0/0/4(D)
40GE0/0/5(D) 40GE0/0/6(D)
30 common UT:XGE0/0/13(D) XGE0/0/142(D) XGE0/0/15(D) XGE0/0/16(D)
30 common UT:XGE0/0/13(D) XGE0/0/14(D) XGE0/0/15(D) XGE0/0/16(D)
XGE0/0/17(D) XGE0/0/18(D)
TG:40GE0/0/1(D) 40GE0/0/2(D) 40GE0/0/3(D) 40GE0/0/4(D)
40GE0/0/5(D) 40GE0/0/6(D)
Expand Down
Loading
Loading