Skip to content

Commit

Permalink
Add Extreme platform with 6 templates (#1526)
Browse files Browse the repository at this point in the history
* Add new platform 'extreme' + 6 templates (without tests)
  • Loading branch information
PavloSkliarenko authored Nov 6, 2023
1 parent 8a8a533 commit 2e6bfd7
Show file tree
Hide file tree
Showing 20 changed files with 1,553 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
tox.ini
.nox/
.coverage
.coverage.*
Expand Down
63 changes: 63 additions & 0 deletions ntc_templates/templates/extreme_show_ipconfig.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
Value USE_REDIRECTS (.*)
Value IP_OPTION_LSRR (.*)
Value IP_OPTION_SSRR (.*)
Value IP_OPTION_RR (.*)
Value IP_OPTION_TS (.*)
Value IP_OPTION_RA (.*)
Value ROUTE_SHARING (.*)
Value ROUTE_COMPRESSION (.*)
Value ORIGINATED_PACKETS (.*)
Value MAX_SHARED_GATEWAYS_CURRENT (\d+)
Value MAX_SHARED_GATEWAYS_CONFIGURED (\d+)
Value ROUTE_SHARING_HASH (.*)
Value IRDP_ADVERTISEMENT_ADDRESS (\S+)
Value IRDP_MAX_INTERVAL (\d+)
Value IRDP_MIN_INTERVAL (\d+)
Value IRDP_LIFETIME (\d+)
Value IRDP_PREFERENCE (\d+)
Value List INTERFACE (\S+)
Value List IP (\S+)
Value List SUBNET (/\d+)
Value List FLAGS (\S+)
Value List NSIA (\d+)

Start
^\s*Use\s+Redirects\s*:\s*${USE_REDIRECTS}\s*$$
^\s*IpOption\s+LSRR\s*:\s*${IP_OPTION_LSRR}\s*$$
^\s*IpOption\s+SSRR\s*:\s*${IP_OPTION_SSRR}\s*$$
^\s*IpOption\s+RR\s*:\s*${IP_OPTION_RR}\s*$$
^\s*IpOption\s+TS\s*:\s*${IP_OPTION_TS}\s*$$
^\s*IpOption\s+RA\s*:\s*${IP_OPTION_RA}\s*$$
^\s*Route\s+Sharing\s*:\s*${ROUTE_SHARING}\s*$$
^\s*Route\s+Compression\s*:\s*${ROUTE_COMPRESSION}\s*$$
^\s*Originated\s+Packets\s*:\s*${ORIGINATED_PACKETS}\s*$$
^\s*Max\s+Shared\s+Gateways\s*:\s*Current:\s*${MAX_SHARED_GATEWAYS_CURRENT}\s+Configured:\s*${MAX_SHARED_GATEWAYS_CONFIGURED}\s*$$
^\s*Route\s+Sharing\s+Hash\s*:\s*${ROUTE_SHARING_HASH}\s*$$
^\s*IRDP:\s*$$ -> Irdp
^\s*Interface\s+IP\s+Address\s+Flags\s+nSIA\s*$$ -> IpAdresses
^\s*Flags:\s+\(A\)\s+Address\s+Mask\s+Reply\s+Enabled\s+\(B\)\s+BOOTP\s+Enabled\s*$$
^\s*\(b\)\s+Broadcast\s+Forwarding\s+Enabled\s*$$
^\s*\(D\)\s+Duplicate\s+address\s+detected\s+on\s+VLAN,\s+\(E\)\s+Interface\s+Enabled\s*$$
^\s*\(f\)\s+Forwarding\s+Enabled\s+\(g\)\s+Ignore\s+IP\s+Broadcast\s+Enabled\s*$$
^\s*\(h\)\s+Directed\s+Broadcast\s+Forwarding\s+by\s+Hardware\s+Enabled\s*$$
^\s*\(I\)\s+IRDP\s+Advertisement\s+Enabled,\s+\(M\)\s+Send\s+Parameter\s+Problem\s+Enabled\s*$$
^\s*\(m\)\s+Multicast\s+forwarding\s+Enabled,\s+\(n\)\s+Multinetted\s+VLAN\s*$$
^\s*\(nSIA\s+\)\s+Number\s+of\s+Secondary\s+IP\s+Addresses\s*$$
^\s*\(P\)\s+Send\s+Port\s+Unreachables\s+Enabled,\s+\(R\)\s+Send\s+Redirects\s+Enabled\s*$$
^\s*\(r\)\s+Unicast\s+Reverse\s+Path\s+Enabled\s+on\s+at\s+least\s+one\s+port\s+of\s+the\s+VLAN\s*$$
^\s*\(t\)\s+Tentative\s+address,\s+\(T\)\s+Time\s+Stamp\s+Reply\s+Enabled\s*$$
^\s*\(u\)\s+Send\s+Unreachables\s+Enabled,\s+\(U\)\s+Interface\s+Up\s*$$
^\s*\(v\)\s+VRRP\s+Enabled,\s+\(X\)\s+Send\s+Time\s+Exceeded\s+Enabled\s*$$
^\s*
^. -> Error

Irdp
^\s*Advertisement\s+Address:\s+${IRDP_ADVERTISEMENT_ADDRESS}\s+Maximum\s+Interval:\s+${IRDP_MAX_INTERVAL}\s*$$
^\s*Minimum\s+Interval:\s+${IRDP_MIN_INTERVAL}\s+Lifetime:\s+${IRDP_LIFETIME}\s+Preference:\s+${IRDP_PREFERENCE}\s*$$
^\s* -> Start
^. -> Error

IpAdresses
^\s*${INTERFACE}\s+${IP}\s+${SUBNET}\s+${FLAGS}\s+${NSIA}\s*$$
^\s* -> Start
^. -> Error
18 changes: 18 additions & 0 deletions ntc_templates/templates/extreme_show_ports_description.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Value INTERFACE (\d+)
Value DISPLAY_STRING (\S+)
Value DESCRIPTION (.*)

# Broken. There is no good way to differ 'Display String' and 'Description' since
# both columns can be anything and empty. Since 'Display String' is empty often,
# just skip it.

Start
^\s*Port\s+Display\s+String\s+Description\s+String\s*$$ -> Ports
^\s*
^. -> Error

Ports
^(\s*=+)+\s*$$
^\s*${PORT}(?:\s+${DESCRIPTION})?\s*$$ -> Record
^\s*
^. -> Error
41 changes: 41 additions & 0 deletions ntc_templates/templates/extreme_show_ports_information.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Value INTERFACE (\d+)
Value FLAGS (\S+)
Value LINK_STATE (\S+)
Value ELSM (\S+)
Value OAM (\S+)
Value LINK_UPS (\d+)
Value NUM_STP (\d+)
Value NUM_VLAN (\d+)
Value NUM_PROTO (\d+)
Value JUMBO_SIZE (\d+)
Value QOS_PROFILE (\S+)
Value LOAD_MASTER (.*)

Start
^\s*Port\s+Flags\s+Link\s+ELSM\s+Link\s+Num\s+Num\s+Num\s+Jumbo\s+QOS\s+Load\s*$$ -> Ports
^\s*
^. -> Error

Ports
^State\s+/OAM\s+UPS\s+STP\s+VLAN\s+Proto\s+Size\s+profile\s+Master\*$$
^(\s*=+)+\s*$$
^\s*${PORT}\s+${FLAGS}\s+${LINK_STATE}\s+${ELSM}\s*/\s*${OAM}\s+${LINK_UPS}\s+${NUM_STP}\s+${NUM_VLAN}\s+${NUM_PROTO}\s+${JUMBO_SIZE}\s+${QOS_PROFILE}(?:\s+${LOAD_MASTER})?\s*$$ -> Record
^\s*>\s+indicates\s+Port\s+Display\s+Name\s+truncated\s+past\s+8\s+characters\s*$$
^\s*Flags\s+:\s+a\s+-\s+Load\s+Sharing\s+Algorithm\s+address-based,\s+D\s+-\s+Port\s+Disabled,\s*$$
^\s*e\s+-\s+Extreme\s+Discovery\s+Protocol\s+Enabled,\s+E\s+-\s+Port\s+Enabled,\s*$$
^\s*g\s+-\s+Egress\s+TOS\s+Enabled,\s+i\s+-\s+Isolation,\s+j\s+-\s+Jumbo\s+Frame\s+Enabled,\s*$$
^\s*l\s+-\s+Load\s+Sharing\s+Enabled,\s+m\s+-\s+MACLearning\s+Enabled,\s*$$
^\s*n\s+-\s+Ingress\s+TOS\s+Enabled,\s+o\s+-\s+Dot1p\s+Replacement\s+Enabled,\s*$$
^\s*P\s+-\s+Software\s+redundant\s+port\(Primary\),\s*$$
^\s*R\s+-\s+Software\s+redundant\s+port\(Redundant\),\s*$$
^\s*q\s+-\s+Background\s+QOS\s+Monitoring\s+Enabled,\s*$$
^\s*s\s+-\s+diffserv\s+Replacement\s+Enabled,\s*$$
^\s*v\s+-\s+Vman\s+Enabled,\s+f\s+-\s+Unicast\s+Flooding\s+Enabled,\s*$$
^\s*M\s+-\s+Multicast\s+Flooding\s+Enabled,\s+B\s+-\s+Broadcast\s+Flooding\s+Enabled\s*$$
^\s*L\s+-\s+Extreme\s+Link\s+Status\s+Monitoring\s+Enabled\s*$$
^\s*O\s+-\s+Ethernet\s+OAM\s+Enabled\s*$$
^\s*w\s+-\s+MACLearning\s+Disabled\s+with\s+Forwarding\s*$$
^\s*b\s+-\s+Rx\s+and\s+Tx\s+Flow\s+Control\s+Enabled,\s+x\s+-\s+Rx\s+Flow\s+Control\s+Enabled\s*$$
^\s*p\s+-\s+Priority\s+Flow\s+Control\s+Enabled\s*$$
^\s*
^. -> Error
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Value INTERFACE (\d+)
Value DESCRIPTION (.*)
Value VIRTUAL_ROUTER (.*)
Value TYPE (.*)
Value RANDOM_EARLY_DROP (.*)
Value ADMIN_STATE (.*)
Value LINK_STATE (\S+)
Value LINK_UPS_NUM (\d+)
Value LINK_UPS_LAST (.*)
Value LINK_DOWNS_NUM (\d+)
Value LINK_DOWNS_LAST (.*)
Value List VLAN_ID (\d+)

Start
^\s*Port:.*$$ -> Continue.Record
^\s*Port:\s*${PORT}\s*$$
^\s*Description\s+String:\s*\"${DESCRIPTION}\"\s*$$
^\s*Virtual-router:\s*${VIRTUAL_ROUTER}\s*$$
^\s*Type:\s*${TYPE}\s*$$
^\s*Random\s+Early\s+drop:\s*${RANDOM_EARLY_DROP}\s*$$
^\s*Admin\s+state:\s*${ADMIN_STATE}
^\s*Link\s+State:\s*${LINK_STATE}(,)?(\s)?.*$$
^\s*Link\s+Ups:\s*${LINK_UPS_NUM}\s+Last:\s*${LINK_UPS_LAST}\s*$$
^\s*Link\s+Downs:\s*${LINK_DOWNS_NUM}\s+Last:\s*${LINK_DOWNS_LAST}\s*$$
^\s*VLAN\s+cfg:\s*$$
^.*VLAN\s+ID:\s*${VLAN_ID}\s*$$
29 changes: 29 additions & 0 deletions ntc_templates/templates/extreme_show_sharing.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Value Filldown CONFIG_MASTER (\d+)
Value Filldown CURRENT_MASTER (\d+)
Value Filldown AGG_CONTROL (\S+)
Value List LD_SHARE_ALGORITHM (L2|L3|L3_L4|custom)
Value List LD_SHARE_GROUP (\d+)
Value List AGG_MBR (\S+)
Value List LINK_STATE (A|D|R|NP|L)
Value List LINK_UP_TRANSITIONS (\d+)

Start
^\s*Load\s+Sharing\s+Monitor\s*$$
^\s*Config\s+Current\s+Agg\s+Ld\s+Share\s+Ld\s+Share\s+Agg\s+Link\s+Link\s+Up\s*$$ -> SharingTable
^\s*
^. -> Error

SharingTable
^\s*Master\s+Master\s+Control\s+Algorithm\s+Group\s+Mbr\s+State\s+Transitions\s*$$
^(\s*=+)+\s*$$
^\s*\d.*$$ -> Continue.Record
^\s+${CONFIG_MASTER}(?:\s+${CURRENT_MASTER})?\s+${AGG_CONTROL}\s+${LD_SHARE_ALGORITHM}\s+${LD_SHARE_GROUP}\s+${AGG_MBR}\s+${LINK_STATE}\s+${LINK_UP_TRANSITIONS}\s*$$
^\s+${LD_SHARE_ALGORITHM}\s+${LD_SHARE_GROUP}\s+${AGG_MBR}\s+${LINK_STATE}\s+${LINK_UP_TRANSITIONS}\s*$$
^\s*Link\s+State:\s+A-Active,\s+D-Disabled,\s+R-Ready,\s+NP-Port\s+not\s+present,\s+L-Loopback\s*$$
^\s*Load\s+Sharing\s+Algorithm:\s+\(L2\)\s+Layer\s+2\s+address\s+based,\s+\(L3\)\s+Layer\s+3\s+address\s+based\s*$$
^\s*\(L3_L4\)\s+Layer\s+3\s+address\s+and\s+Layer\s+4\s+port\s+based\s*$$
^\s*\(custom\)\s+User-selected\s+address-based\s+configuration\s*$$
^\s*Custom\s+Algorithm\s+Configuration:\s+.*\s*$$
^\s*Number\s+of\s+load\s+sharing\s+trunks:\s+\d+\s*$$
^\s*
^. -> Error
17 changes: 17 additions & 0 deletions ntc_templates/templates/extreme_show_vlan_description.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Value VLAN_NAME (\S+)
Value VLAN_ID (\d+)
Value DESCRIPTION (.*)

Start
^(\s*=+)+\s*$$
^\s*Name\s+VID\s+Description\s*$$ -> VlanTable
^\s*
^. -> Error

VlanTable
^(\s*=+)+\s*$$
^\s*${NAME}\s+${ID}(?:\s+${DESCRIPTION})?\s*$$ -> Record
^\s*>\s+Indicates\s+description\s+string\s+truncated\s+past\s+\d+\s+characters\s*$$
^\s*Total\s+number\s+of\s+VLAN\(s\)\s*:\s*\d+\s*$$
^\s*
^. -> Error
7 changes: 7 additions & 0 deletions ntc_templates/templates/index
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,13 @@ ericsson_ipos_show_isis_adjacency.textfsm, .*, ericsson_ipos, sh[[ow]] isis adja
ericsson_ipos_show_version.textfsm, .*, ericsson_ipos, sh[[ow]] ver[[sion]]
ericsson_ipos_show_arp.textfsm, .*, ericsson_ipos, sh[[ow]] ar[[p]]

extreme_show_ports_information_detail.textfsm, .*, extreme, show ports information detail
extreme_show_ports_description.textfsm, .*, extreme, show ports description
extreme_show_ports_information.textfsm, .*, extreme, show ports information
extreme_show_vlan_description.textfsm, .*, extreme, show vlan description
extreme_show_ipconfig.textfsm, .*, extreme, show ipconfig
extreme_show_sharing.textfsm, .*, extreme, show sharing

fortinet_get_system_interface_physical.textfsm, .*, fortinet, g[[et]] sy[[stem]] in[[terface]] p[[hysical]]
fortinet_get_router_info_bgp_summary.textfsm, .*, fortinet, g[[et]] r[[outer]] info bg[[p]] su[[mmary]]
fortinet_get_system_ha_status.textfsm, .*, fortinet, g[[et]] sy[[stem]] ha s[[tatus]]
Expand Down
33 changes: 33 additions & 0 deletions tests/extreme/show_ipconfig/extreme_show_ipconfig.raw
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Use Redirects : Disabled
IpOption LSRR : Enabled
IpOption SSRR : Enabled
IpOption RR : Enabled
IpOption TS : Enabled
IpOption RA : Enabled
Route Sharing : Disabled
Route Compression : Disabled
Originated Packets : Don't require ipforwarding
Max Shared Gateways : Current: 4 Configured: 4
Route Sharing Hash : CRC Lower

IRDP:
Advertisement Address: 255.255.255.255 Maximum Interval: 600
Minimum Interval: 450 Lifetime: 1800 Preference: 0

Interface IP Address Flags nSIA
VLAN0255 10.255.254.3 /16 EU----MPuRX--------- 0
VLAN2222 10.1.222.3 /24 EUf---MPuRX--------- 0

Flags: (A) Address Mask Reply Enabled (B) BOOTP Enabled
(b) Broadcast Forwarding Enabled
(D) Duplicate address detected on VLAN, (E) Interface Enabled
(f) Forwarding Enabled (g) Ignore IP Broadcast Enabled
(h) Directed Broadcast Forwarding by Hardware Enabled
(I) IRDP Advertisement Enabled, (M) Send Parameter Problem Enabled
(m) Multicast forwarding Enabled, (n) Multinetted VLAN
(nSIA ) Number of Secondary IP Addresses
(P) Send Port Unreachables Enabled, (R) Send Redirects Enabled
(r) Unicast Reverse Path Enabled on at least one port of the VLAN
(t) Tentative address, (T) Time Stamp Reply Enabled
(u) Send Unreachables Enabled, (U) Interface Up
(v) VRRP Enabled, (X) Send Time Exceeded Enabled
34 changes: 34 additions & 0 deletions tests/extreme/show_ipconfig/extreme_show_ipconfig.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
parsed_sample:
- flags:
- "EU----MPuRX---------"
- "EUf---MPuRX---------"
interface:
- "VLAN0255"
- "VLAN2222"
ip:
- "10.255.254.3"
- "10.1.222.3"
ip_option_lsrr: "Enabled"
ip_option_ra: "Enabled"
ip_option_rr: "Enabled"
ip_option_ssrr: "Enabled"
ip_option_ts: "Enabled"
irdp_advertisement_address: "255.255.255.255"
irdp_lifetime: "1800"
irdp_max_interval: "600"
irdp_min_interval: "450"
irdp_preference: "0"
max_shared_gateways_configured: "4"
max_shared_gateways_current: "4"
nsia:
- "0"
- "0"
originated_packets: "Don't require ipforwarding"
route_compression: "Disabled"
route_sharing: "Disabled"
route_sharing_hash: "CRC Lower"
subnet:
- "/16"
- "/24"
use_redirects: "Disabled"
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Port Display String Description String
===== ==================== ==================================================
1 AggregateLink
2
3
4
5 MX5-2 - xe0/0/3
6 BLADE-3 - VC1-4
7 BLADE-3 - VC2-4
8 BGW-R1 - xe0/1/1 (LAG7)
9 FREE
10 SRV-R1 - xe-0/0/1 (LAG6)
11 3COM - Gi1/0/26 Link for PIM
12 C4948-1 - te1/49
13 Eltex3124-7 - te1/0/1
14 Eltex3124-6 - te1/0/1
15 Eltex3124-5 - te1/0/1
16 Eltex3124-4 - te1/0/1
17 MX5-1 - xe-0/0/3
18 MX5-1 - xe-0/0/1
19 CCR1036 - sfp1
20
21
22 RS-CORE-1 - Gi0/1
23
24 Uplink-GARS
25 CRM-139204
26 FREE
27 FREE
28 FREE
29 N3K-2 - eth1/1 (LAG29)
30 3COM - Te1/1/1
31 FREE
32
33 N9K-1 - eth1/46 (LAG33)
34 N3K-2 - eth1/2 (LAG29)
35 N9K-1 - eth1/47 (LAG33)
36 Carbon-Reductor-NetXtreme-1 MIRROR
37 VoipMonitor_Mirror
38 Eltex3324-1 - te1/0/1 (LAG38)
39 Eltex3324-1 - te1/0/2 (LAG38)
40 FREE
41 FREE
42 BLADE-2-VC2 - VC8
43 Storage-SMicro - eth0
44 SCST-SSD_Cache - eth1
45 Eltex5248-1 - Te1/0/1
46 VEEAM1 - eth1
47 BLADE-1-VC2 - VC1
48 BLADE-1-VC2 - VC8
===== ==================== ==================================================
Loading

0 comments on commit 2e6bfd7

Please sign in to comment.