From e3c581ba285fd038ff991de5ebdc31404f633992 Mon Sep 17 00:00:00 2001 From: chart2 Date: Mon, 2 Mar 2020 22:35:13 +1100 Subject: [PATCH 1/8] Add OSPF Type 1 (Router) LSDB template --- ...o_ios_show_ip_ospf_database_router.textfsm | 42 ++++ templates/index | 1 + ...cisco_ios_show_ip_ospf_database_router.raw | 118 ++++++++++ ...cisco_ios_show_ip_ospf_database_router.yml | 206 ++++++++++++++++++ 4 files changed, 367 insertions(+) create mode 100644 templates/cisco_ios_show_ip_ospf_database_router.textfsm create mode 100644 tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw create mode 100644 tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm new file mode 100644 index 0000000000..f1f37fa90e --- /dev/null +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -0,0 +1,42 @@ +Value Filldown ROUTER_ID (\d+\.\d+\.\d+\.\d+) +Value Filldown PROCESS_ID (\d+) +Value Filldown AREA (\d+\.\d+\.\d+\.\d+|\d+) +Value Filldown LSA_AGE (\d+) +Value Filldown LSA_OPTIONS (.*) +Value Filldown LSA_TYPE (.*) +Value Filldown LSA_ID (\d+\.\d+\.\d+\.\d+) +Value Filldown LSA_ADV_ROUTER (\d+\.\d+\.\d+\.\d+) +Value Filldown LSA_SEQ_NUMBER (\d+) +Value Filldown LSA_CHECKSUM (\S+) +Value Filldown LSA_LENGTH (\d+) +Value Filldown LSA_NUM_LINKS (\d+) +Value LS_LINK_TYPE ((a Stub Network)|(a Transit Network)) +Value LS_LINK_ID (\d+\.\d+\.\d+\.\d+) +Value LS_LINK_DATA (\d+\.\d+\.\d+\.\d+) +Value LS_MTID_METRICS (\d+) +Value LS_TOS_0_METRICS (\d+) + +Start + ^\s+OSPF Router with ID \(${ROUTER_ID}\) \(Process ID ${PROCESS_ID}\) + ^\s+Router Link States \(Area ${AREA}\) -> LSAInfo + +LSAInfo + ^\s+LS age: ${LSA_AGE} + ^\s+Options: \(${LSA_OPTIONS}\) + ^\s+LS Type: ${LSA_TYPE} + ^\s+Link State ID: ${LSA_ID} + ^\s+Advertising Router: ${LSA_ADV_ROUTER} + ^\s+LS Seq Number: ${LSA_SEQ_NUMBER} + ^\s+Checksum: ${LSA_CHECKSUM} + ^\s+Length: ${LSA_LENGTH} + ^\s+Number of Links: ${LSA_NUM_LINKS} -> LSAs + +LSAs + ^\s+Link connected to: ${LS_LINK_TYPE} + ^\s+\(Link ID\) ((Network\/subnet number)|(Designated Router address)): ${LS_LINK_ID} + ^\s+\(Link Data\) ((Network Mask)|(Router Interface address)): ${LS_LINK_DATA} + ^\s+Number of MTID metrics: ${LS_MTID_METRICS} + ^\s+TOS 0 Metrics: ${LS_TOS_0_METRICS} -> Next.Record + ^\s -> LSAInfo + +EOF \ No newline at end of file diff --git a/templates/index b/templates/index index ad4a9af163..22d055b9f0 100644 --- a/templates/index +++ b/templates/index @@ -160,6 +160,7 @@ cisco_ios_show_ip_source_binding.textfsm, .*, cisco_ios, sh[[ow]] ip sou[[rce]] cisco_ios_show_mac-address-table.textfsm, .*, cisco_ios, sh[[ow]] m[[ac-address-table]] cisco_ios_show_ip_bgp_neighbors.textfsm, .*, cisco_ios, sh[[ow]] ip bgp nei[[ghbors]] cisco_ios_show_ip_ospf_database.textfsm, .*, cisco_ios, sh[[ow]] ip ospf data[[base]] +cisco_ios_show_ip_ospf_database_router.textfsm, .*, cisco_ios, sh[[ow]] ip ospf data[[base]] r[[outer]] cisco_ios_show_ip_ospf_neighbor.textfsm, .*, cisco_ios, sh[[ow]] ip ospf nei[[ghbor]] cisco_ios_show_ip_access-lists.textfsm, .*, cisco_ios, sh[[ow]] ip acce[[ss-lists]] cisco_ios_show_power_available.textfsm, .*, cisco_ios, sh[[ow]] pow[[er]] a[[vailable]] diff --git a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw new file mode 100644 index 0000000000..bcfbb5ba15 --- /dev/null +++ b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw @@ -0,0 +1,118 @@ + OSPF Router with ID (100.1.1.1) (Process ID 1) + + Router Link States (Area 0) + + LS age: 1584 + Options: (No TOS-capability, DC) + LS Type: Router Links + Link State ID: 100.1.1.1 + Advertising Router: 100.1.1.1 + LS Seq Number: 800000D7 + Checksum: 0xB1A2 + Length: 60 + Number of Links: 3 + + Link connected to: a Stub Network + (Link ID) Network/subnet number: 100.1.1.1 + (Link Data) Network Mask: 255.255.255.255 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.2.1 + (Link Data) Router Interface address: 192.168.2.1 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.1.2 + (Link Data) Router Interface address: 192.168.1.1 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + + LS age: 1304 + Options: (No TOS-capability, DC) + LS Type: Router Links + Link State ID: 100.2.2.2 + Advertising Router: 100.2.2.2 + LS Seq Number: 800000D5 + Checksum: 0x291F + Length: 60 + Number of Links: 3 + + Link connected to: a Stub Network + (Link ID) Network/subnet number: 100.2.2.2 + (Link Data) Network Mask: 255.255.255.255 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.3.2 + (Link Data) Router Interface address: 192.168.3.1 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.2.1 + (Link Data) Router Interface address: 192.168.2.2 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + + LS age: 1590 + Options: (No TOS-capability, DC) + LS Type: Router Links + Link State ID: 100.3.3.3 + Advertising Router: 100.3.3.3 + LS Seq Number: 800000CE + Checksum: 0x261F + Length: 60 + Number of Links: 3 + + Link connected to: a Stub Network + (Link ID) Network/subnet number: 100.3.3.3 + (Link Data) Network Mask: 255.255.255.255 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.4.2 + (Link Data) Router Interface address: 192.168.4.1 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.1.2 + (Link Data) Router Interface address: 192.168.1.2 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + + LS age: 595 + Options: (No TOS-capability, DC) + LS Type: Router Links + Link State ID: 100.4.4.4 + Advertising Router: 100.4.4.4 + LS Seq Number: 800000CB + Checksum: 0xB782 + Length: 60 + Number of Links: 3 + + Link connected to: a Stub Network + (Link ID) Network/subnet number: 100.4.4.4 + (Link Data) Network Mask: 255.255.255.255 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.4.2 + (Link Data) Router Interface address: 192.168.4.2 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + + Link connected to: a Transit Network + (Link ID) Designated Router address: 192.168.3.2 + (Link Data) Router Interface address: 192.168.3.2 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 \ No newline at end of file diff --git a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml new file mode 100644 index 0000000000..6800e7c1f7 --- /dev/null +++ b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml @@ -0,0 +1,206 @@ +--- +parsed_sample: + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.1.1.1" + lsa_adv_router: "100.1.1.1" + lsa_seq_number: "800000" + lsa_checksum: "0xB1A2" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Stub Network" + ls_link_id: "100.1.1.1" + ls_link_data: "255.255.255.255" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.1.1.1" + lsa_adv_router: "100.1.1.1" + lsa_seq_number: "800000" + lsa_checksum: "0xB1A2" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.2.1" + ls_link_data: "192.168.2.1" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.1.1.1" + lsa_adv_router: "100.1.1.1" + lsa_seq_number: "800000" + lsa_checksum: "0xB1A2" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.1.2" + ls_link_data: "192.168.1.1" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.2.2.2" + lsa_adv_router: "100.2.2.2" + lsa_seq_number: "800000" + lsa_checksum: "0x291F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Stub Network" + ls_link_id: "100.2.2.2" + ls_link_data: "255.255.255.255" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.2.2.2" + lsa_adv_router: "100.2.2.2" + lsa_seq_number: "800000" + lsa_checksum: "0x291F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.3.2" + ls_link_data: "192.168.3.1" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.2.2.2" + lsa_adv_router: "100.2.2.2" + lsa_seq_number: "800000" + lsa_checksum: "0x291F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.2.1" + ls_link_data: "192.168.2.2" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.3.3.3" + lsa_adv_router: "100.3.3.3" + lsa_seq_number: "800000" + lsa_checksum: "0x261F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Stub Network" + ls_link_id: "100.3.3.3" + ls_link_data: "255.255.255.255" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.3.3.3" + lsa_adv_router: "100.3.3.3" + lsa_seq_number: "800000" + lsa_checksum: "0x261F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.4.2" + ls_link_data: "192.168.4.1" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.3.3.3" + lsa_adv_router: "100.3.3.3" + lsa_seq_number: "800000" + lsa_checksum: "0x261F" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.1.2" + ls_link_data: "192.168.1.2" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.4.4.4" + lsa_adv_router: "100.4.4.4" + lsa_seq_number: "800000" + lsa_checksum: "0xB782" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Stub Network" + ls_link_id: "100.4.4.4" + ls_link_data: "255.255.255.255" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.4.4.4" + lsa_adv_router: "100.4.4.4" + lsa_seq_number: "800000" + lsa_checksum: "0xB782" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.4.2" + ls_link_data: "192.168.4.2" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1584" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.4.4.4" + lsa_adv_router: "100.4.4.4" + lsa_seq_number: "800000" + lsa_checksum: "0xB782" + lsa_length: "60" + lsa_num_links: "3" + ls_link_type: "a Transit Network" + ls_link_id: "192.168.3.2" + ls_link_data: "192.168.3.2" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" From e106162383ef21b33f6b8bbc3445ad980771b10f Mon Sep 17 00:00:00 2001 From: chart2 Date: Mon, 2 Mar 2020 22:58:18 +1100 Subject: [PATCH 2/8] Correct index file ordering --- templates/index | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/index b/templates/index index 22d055b9f0..fb9db863a7 100644 --- a/templates/index +++ b/templates/index @@ -141,6 +141,7 @@ cisco_ios_show_running-config_partition_route-map.textfsm, .*, cisco_ios, sh[[ow cisco_ios_show_capability_feature_routing.textfsm, .*, cisco_ios, sh[[ow]] cap[[ability]] f[[eature]] r[[outing]] cisco_ios_show_authentication_sessions.textfsm, .*, cisco_ios, show authen[[tication]] ses[[sions]] cisco_ios_show_environment_temperature.textfsm, .*, cisco_ios, sh[[ow]] envi[[ronment]] t[[emperature]] +cisco_ios_show_ip_ospf_database_router.textfsm, .*, cisco_ios, sh[[ow]] ip ospf data[[base]] r[[outer]] cisco_ios_show_ip_ospf_interface_brief.textfsm, .*, cisco_ios, sh[[ow]] ip ospf int[[erface]] cisco_ios_show_processes_memory_sorted.textfsm, .*, cisco_ios, sh[[ow]] pro[[cesses]] mem[[ory]] so[[rted]] cisco_ios_show_interfaces_description.textfsm, .*, cisco_ios, sh[[ow]] int[[erfaces]] des[[cription]] @@ -160,7 +161,6 @@ cisco_ios_show_ip_source_binding.textfsm, .*, cisco_ios, sh[[ow]] ip sou[[rce]] cisco_ios_show_mac-address-table.textfsm, .*, cisco_ios, sh[[ow]] m[[ac-address-table]] cisco_ios_show_ip_bgp_neighbors.textfsm, .*, cisco_ios, sh[[ow]] ip bgp nei[[ghbors]] cisco_ios_show_ip_ospf_database.textfsm, .*, cisco_ios, sh[[ow]] ip ospf data[[base]] -cisco_ios_show_ip_ospf_database_router.textfsm, .*, cisco_ios, sh[[ow]] ip ospf data[[base]] r[[outer]] cisco_ios_show_ip_ospf_neighbor.textfsm, .*, cisco_ios, sh[[ow]] ip ospf nei[[ghbor]] cisco_ios_show_ip_access-lists.textfsm, .*, cisco_ios, sh[[ow]] ip acce[[ss-lists]] cisco_ios_show_power_available.textfsm, .*, cisco_ios, sh[[ow]] pow[[er]] a[[vailable]] From 8413f2dfce4a8435417018f5a284bdb49915785b Mon Sep 17 00:00:00 2001 From: chart2 Date: Tue, 3 Mar 2020 09:40:20 +1100 Subject: [PATCH 3/8] Correct TextFSM linting --- templates/cisco_ios_show_ip_ospf_database_router.textfsm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm index f1f37fa90e..ca87b18444 100644 --- a/templates/cisco_ios_show_ip_ospf_database_router.textfsm +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -19,6 +19,8 @@ Value LS_TOS_0_METRICS (\d+) Start ^\s+OSPF Router with ID \(${ROUTER_ID}\) \(Process ID ${PROCESS_ID}\) ^\s+Router Link States \(Area ${AREA}\) -> LSAInfo + ^\s*$$ + ^. -> Error LSAInfo ^\s+LS age: ${LSA_AGE} @@ -30,6 +32,8 @@ LSAInfo ^\s+Checksum: ${LSA_CHECKSUM} ^\s+Length: ${LSA_LENGTH} ^\s+Number of Links: ${LSA_NUM_LINKS} -> LSAs + ^\s*$$ + ^. -> Error LSAs ^\s+Link connected to: ${LS_LINK_TYPE} @@ -38,5 +42,7 @@ LSAs ^\s+Number of MTID metrics: ${LS_MTID_METRICS} ^\s+TOS 0 Metrics: ${LS_TOS_0_METRICS} -> Next.Record ^\s -> LSAInfo + ^\s*$$ + ^. -> Error EOF \ No newline at end of file From e8c609d23ab0c2e45a972a33e0a8406ab3dde295 Mon Sep 17 00:00:00 2001 From: chart2 Date: Tue, 3 Mar 2020 19:21:07 +1100 Subject: [PATCH 4/8] Add blank line to bottom of raw command per CLI output --- .../cisco_ios_show_ip_ospf_database_router.raw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw index bcfbb5ba15..5acbfe9839 100644 --- a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw +++ b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw @@ -115,4 +115,4 @@ (Link ID) Designated Router address: 192.168.3.2 (Link Data) Router Interface address: 192.168.3.2 Number of MTID metrics: 0 - TOS 0 Metrics: 1 \ No newline at end of file + TOS 0 Metrics: 1 From 0441bb5d55feef2fce65c90328482c5e79248462 Mon Sep 17 00:00:00 2001 From: ChristopherJHart Date: Sat, 7 Mar 2020 22:18:29 +1100 Subject: [PATCH 5/8] Update templates/cisco_ios_show_ip_ospf_database_router.textfsm Fix bug with detecting hexadecimal LSA sequence numbers Co-Authored-By: Mikhail Yohman --- templates/cisco_ios_show_ip_ospf_database_router.textfsm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm index ca87b18444..79f09c5ac9 100644 --- a/templates/cisco_ios_show_ip_ospf_database_router.textfsm +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -6,7 +6,7 @@ Value Filldown LSA_OPTIONS (.*) Value Filldown LSA_TYPE (.*) Value Filldown LSA_ID (\d+\.\d+\.\d+\.\d+) Value Filldown LSA_ADV_ROUTER (\d+\.\d+\.\d+\.\d+) -Value Filldown LSA_SEQ_NUMBER (\d+) +Value Filldown LSA_SEQ_NUMBER (\S+) Value Filldown LSA_CHECKSUM (\S+) Value Filldown LSA_LENGTH (\d+) Value Filldown LSA_NUM_LINKS (\d+) @@ -45,4 +45,4 @@ LSAs ^\s*$$ ^. -> Error -EOF \ No newline at end of file +EOF From 34dd6df9b7737414ed1e044222f6bb78e91e9940 Mon Sep 17 00:00:00 2001 From: chart2 Date: Sun, 8 Mar 2020 10:20:14 +1100 Subject: [PATCH 6/8] Add P2P network support, fix LSA Age bug --- ...o_ios_show_ip_ospf_database_router.textfsm | 8 +- ...cisco_ios_show_ip_ospf_database_router.raw | 52 ++++--- ...cisco_ios_show_ip_ospf_database_router.yml | 138 +++++++++++------- 3 files changed, 122 insertions(+), 76 deletions(-) diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm index ca87b18444..2a32cad134 100644 --- a/templates/cisco_ios_show_ip_ospf_database_router.textfsm +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -6,11 +6,11 @@ Value Filldown LSA_OPTIONS (.*) Value Filldown LSA_TYPE (.*) Value Filldown LSA_ID (\d+\.\d+\.\d+\.\d+) Value Filldown LSA_ADV_ROUTER (\d+\.\d+\.\d+\.\d+) -Value Filldown LSA_SEQ_NUMBER (\d+) +Value Filldown LSA_SEQ_NUMBER (\S+) Value Filldown LSA_CHECKSUM (\S+) Value Filldown LSA_LENGTH (\d+) Value Filldown LSA_NUM_LINKS (\d+) -Value LS_LINK_TYPE ((a Stub Network)|(a Transit Network)) +Value LS_LINK_TYPE ((a Stub Network)|(a Transit Network)|(another Router \(point-to-point\))) Value LS_LINK_ID (\d+\.\d+\.\d+\.\d+) Value LS_LINK_DATA (\d+\.\d+\.\d+\.\d+) Value LS_MTID_METRICS (\d+) @@ -37,11 +37,11 @@ LSAInfo LSAs ^\s+Link connected to: ${LS_LINK_TYPE} - ^\s+\(Link ID\) ((Network\/subnet number)|(Designated Router address)): ${LS_LINK_ID} + ^\s+\(Link ID\) ((Network\/subnet number)|(Designated Router address)|(Neighboring Router ID)): ${LS_LINK_ID} ^\s+\(Link Data\) ((Network Mask)|(Router Interface address)): ${LS_LINK_DATA} ^\s+Number of MTID metrics: ${LS_MTID_METRICS} ^\s+TOS 0 Metrics: ${LS_TOS_0_METRICS} -> Next.Record - ^\s -> LSAInfo + ^\s+LS age: ${LSA_AGE} -> LSAInfo ^\s*$$ ^. -> Error diff --git a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw index 5acbfe9839..88982dc80d 100644 --- a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw +++ b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.raw @@ -2,15 +2,15 @@ Router Link States (Area 0) - LS age: 1584 + LS age: 14 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 100.1.1.1 Advertising Router: 100.1.1.1 - LS Seq Number: 800000D7 - Checksum: 0xB1A2 - Length: 60 - Number of Links: 3 + LS Seq Number: 80000206 + Checksum: 0x8A21 + Length: 72 + Number of Links: 4 Link connected to: a Stub Network (Link ID) Network/subnet number: 100.1.1.1 @@ -24,20 +24,26 @@ Number of MTID metrics: 0 TOS 0 Metrics: 1 - Link connected to: a Transit Network - (Link ID) Designated Router address: 192.168.1.2 + Link connected to: another Router (point-to-point) + (Link ID) Neighboring Router ID: 100.3.3.3 (Link Data) Router Interface address: 192.168.1.1 Number of MTID metrics: 0 TOS 0 Metrics: 1 + Link connected to: a Stub Network + (Link ID) Network/subnet number: 192.168.1.0 + (Link Data) Network Mask: 255.255.255.252 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + - LS age: 1304 + LS age: 1694 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 100.2.2.2 Advertising Router: 100.2.2.2 - LS Seq Number: 800000D5 - Checksum: 0x291F + LS Seq Number: 80000202 + Checksum: 0xCA4F Length: 60 Number of Links: 3 @@ -60,15 +66,15 @@ TOS 0 Metrics: 1 - LS age: 1590 + LS age: 15 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 100.3.3.3 Advertising Router: 100.3.3.3 - LS Seq Number: 800000CE - Checksum: 0x261F - Length: 60 - Number of Links: 3 + LS Seq Number: 800001FD + Checksum: 0x3969 + Length: 72 + Number of Links: 4 Link connected to: a Stub Network (Link ID) Network/subnet number: 100.3.3.3 @@ -82,20 +88,26 @@ Number of MTID metrics: 0 TOS 0 Metrics: 1 - Link connected to: a Transit Network - (Link ID) Designated Router address: 192.168.1.2 + Link connected to: another Router (point-to-point) + (Link ID) Neighboring Router ID: 100.1.1.1 (Link Data) Router Interface address: 192.168.1.2 Number of MTID metrics: 0 TOS 0 Metrics: 1 + Link connected to: a Stub Network + (Link ID) Network/subnet number: 192.168.1.0 + (Link Data) Network Mask: 255.255.255.252 + Number of MTID metrics: 0 + TOS 0 Metrics: 1 + - LS age: 595 + LS age: 1752 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 100.4.4.4 Advertising Router: 100.4.4.4 - LS Seq Number: 800000CB - Checksum: 0xB782 + LS Seq Number: 800001F7 + Checksum: 0x5CB0 Length: 60 Number of Links: 3 diff --git a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml index 6800e7c1f7..394d48d18a 100644 --- a/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml +++ b/tests/cisco_ios/show_ip_ospf_database_router/cisco_ios_show_ip_ospf_database_router.yml @@ -3,15 +3,15 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "14" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.1.1.1" lsa_adv_router: "100.1.1.1" - lsa_seq_number: "800000" - lsa_checksum: "0xB1A2" - lsa_length: "60" - lsa_num_links: "3" + lsa_seq_number: "80000206" + lsa_checksum: "0x8A21" + lsa_length: "72" + lsa_num_links: "4" ls_link_type: "a Stub Network" ls_link_id: "100.1.1.1" ls_link_data: "255.255.255.255" @@ -20,15 +20,15 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "14" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.1.1.1" lsa_adv_router: "100.1.1.1" - lsa_seq_number: "800000" - lsa_checksum: "0xB1A2" - lsa_length: "60" - lsa_num_links: "3" + lsa_seq_number: "80000206" + lsa_checksum: "0x8A21" + lsa_length: "72" + lsa_num_links: "4" ls_link_type: "a Transit Network" ls_link_id: "192.168.2.1" ls_link_data: "192.168.2.1" @@ -37,30 +37,47 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "14" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.1.1.1" lsa_adv_router: "100.1.1.1" - lsa_seq_number: "800000" - lsa_checksum: "0xB1A2" - lsa_length: "60" - lsa_num_links: "3" - ls_link_type: "a Transit Network" - ls_link_id: "192.168.1.2" + lsa_seq_number: "80000206" + lsa_checksum: "0x8A21" + lsa_length: "72" + lsa_num_links: "4" + ls_link_type: "another Router (point-to-point)" + ls_link_id: "100.3.3.3" ls_link_data: "192.168.1.1" ls_mtid_metrics: "0" ls_tos_0_metrics: "1" - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "14" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.1.1.1" + lsa_adv_router: "100.1.1.1" + lsa_seq_number: "80000206" + lsa_checksum: "0x8A21" + lsa_length: "72" + lsa_num_links: "4" + ls_link_type: "a Stub Network" + ls_link_id: "192.168.1.0" + ls_link_data: "255.255.255.252" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1694" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.2.2.2" lsa_adv_router: "100.2.2.2" - lsa_seq_number: "800000" - lsa_checksum: "0x291F" + lsa_seq_number: "80000202" + lsa_checksum: "0xCA4F" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Stub Network" @@ -71,13 +88,13 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "1694" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.2.2.2" lsa_adv_router: "100.2.2.2" - lsa_seq_number: "800000" - lsa_checksum: "0x291F" + lsa_seq_number: "80000202" + lsa_checksum: "0xCA4F" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Transit Network" @@ -88,13 +105,13 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "1694" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.2.2.2" lsa_adv_router: "100.2.2.2" - lsa_seq_number: "800000" - lsa_checksum: "0x291F" + lsa_seq_number: "80000202" + lsa_checksum: "0xCA4F" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Transit Network" @@ -105,15 +122,15 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "15" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.3.3.3" lsa_adv_router: "100.3.3.3" - lsa_seq_number: "800000" - lsa_checksum: "0x261F" - lsa_length: "60" - lsa_num_links: "3" + lsa_seq_number: "800001FD" + lsa_checksum: "0x3969" + lsa_length: "72" + lsa_num_links: "4" ls_link_type: "a Stub Network" ls_link_id: "100.3.3.3" ls_link_data: "255.255.255.255" @@ -122,15 +139,15 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "15" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.3.3.3" lsa_adv_router: "100.3.3.3" - lsa_seq_number: "800000" - lsa_checksum: "0x261F" - lsa_length: "60" - lsa_num_links: "3" + lsa_seq_number: "800001FD" + lsa_checksum: "0x3969" + lsa_length: "72" + lsa_num_links: "4" ls_link_type: "a Transit Network" ls_link_id: "192.168.4.2" ls_link_data: "192.168.4.1" @@ -139,30 +156,47 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "15" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.3.3.3" lsa_adv_router: "100.3.3.3" - lsa_seq_number: "800000" - lsa_checksum: "0x261F" - lsa_length: "60" - lsa_num_links: "3" - ls_link_type: "a Transit Network" - ls_link_id: "192.168.1.2" + lsa_seq_number: "800001FD" + lsa_checksum: "0x3969" + lsa_length: "72" + lsa_num_links: "4" + ls_link_type: "another Router (point-to-point)" + ls_link_id: "100.1.1.1" ls_link_data: "192.168.1.2" ls_mtid_metrics: "0" ls_tos_0_metrics: "1" - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "15" + lsa_options: "No TOS-capability, DC" + lsa_type: "Router Links" + lsa_id: "100.3.3.3" + lsa_adv_router: "100.3.3.3" + lsa_seq_number: "800001FD" + lsa_checksum: "0x3969" + lsa_length: "72" + lsa_num_links: "4" + ls_link_type: "a Stub Network" + ls_link_id: "192.168.1.0" + ls_link_data: "255.255.255.252" + ls_mtid_metrics: "0" + ls_tos_0_metrics: "1" + - router_id: "100.1.1.1" + process_id: "1" + area: "0" + lsa_age: "1752" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.4.4.4" lsa_adv_router: "100.4.4.4" - lsa_seq_number: "800000" - lsa_checksum: "0xB782" + lsa_seq_number: "800001F7" + lsa_checksum: "0x5CB0" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Stub Network" @@ -173,13 +207,13 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "1752" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.4.4.4" lsa_adv_router: "100.4.4.4" - lsa_seq_number: "800000" - lsa_checksum: "0xB782" + lsa_seq_number: "800001F7" + lsa_checksum: "0x5CB0" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Transit Network" @@ -190,13 +224,13 @@ parsed_sample: - router_id: "100.1.1.1" process_id: "1" area: "0" - lsa_age: "1584" + lsa_age: "1752" lsa_options: "No TOS-capability, DC" lsa_type: "Router Links" lsa_id: "100.4.4.4" lsa_adv_router: "100.4.4.4" - lsa_seq_number: "800000" - lsa_checksum: "0xB782" + lsa_seq_number: "800001F7" + lsa_checksum: "0x5CB0" lsa_length: "60" lsa_num_links: "3" ls_link_type: "a Transit Network" From 22c94951b5b6726e40d2b70fe4c705b877e7a3e8 Mon Sep 17 00:00:00 2001 From: chart2 Date: Mon, 9 Mar 2020 07:18:40 +1100 Subject: [PATCH 7/8] Match one or more LSA options and types --- templates/cisco_ios_show_ip_ospf_database_router.textfsm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm index 93affb26db..b753a2bccc 100644 --- a/templates/cisco_ios_show_ip_ospf_database_router.textfsm +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -2,7 +2,7 @@ Value Filldown ROUTER_ID (\d+\.\d+\.\d+\.\d+) Value Filldown PROCESS_ID (\d+) Value Filldown AREA (\d+\.\d+\.\d+\.\d+|\d+) Value Filldown LSA_AGE (\d+) -Value Filldown LSA_OPTIONS (.*) +Value Filldown LSA_OPTIONS (.+) Value Filldown LSA_TYPE (.*) Value Filldown LSA_ID (\d+\.\d+\.\d+\.\d+) Value Filldown LSA_ADV_ROUTER (\d+\.\d+\.\d+\.\d+) From 87a1f370b2fea88a82c483db9fc3f8194fa5a62e Mon Sep 17 00:00:00 2001 From: chart2 Date: Mon, 9 Mar 2020 07:34:04 +1100 Subject: [PATCH 8/8] Simplify LS_LINK_TYPE regex, add regex for spacing --- ...o_ios_show_ip_ospf_database_router.textfsm | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/templates/cisco_ios_show_ip_ospf_database_router.textfsm b/templates/cisco_ios_show_ip_ospf_database_router.textfsm index b753a2bccc..64be3dc95a 100644 --- a/templates/cisco_ios_show_ip_ospf_database_router.textfsm +++ b/templates/cisco_ios_show_ip_ospf_database_router.textfsm @@ -3,45 +3,45 @@ Value Filldown PROCESS_ID (\d+) Value Filldown AREA (\d+\.\d+\.\d+\.\d+|\d+) Value Filldown LSA_AGE (\d+) Value Filldown LSA_OPTIONS (.+) -Value Filldown LSA_TYPE (.*) +Value Filldown LSA_TYPE (.+) Value Filldown LSA_ID (\d+\.\d+\.\d+\.\d+) Value Filldown LSA_ADV_ROUTER (\d+\.\d+\.\d+\.\d+) Value Filldown LSA_SEQ_NUMBER (\S+) Value Filldown LSA_CHECKSUM (\S+) Value Filldown LSA_LENGTH (\d+) Value Filldown LSA_NUM_LINKS (\d+) -Value LS_LINK_TYPE ((a Stub Network)|(a Transit Network)|(another Router \(point-to-point\))) +Value LS_LINK_TYPE (.+?) Value LS_LINK_ID (\d+\.\d+\.\d+\.\d+) Value LS_LINK_DATA (\d+\.\d+\.\d+\.\d+) Value LS_MTID_METRICS (\d+) Value LS_TOS_0_METRICS (\d+) Start - ^\s+OSPF Router with ID \(${ROUTER_ID}\) \(Process ID ${PROCESS_ID}\) - ^\s+Router Link States \(Area ${AREA}\) -> LSAInfo + ^\s+OSPF\s+Router\s+with\s+ID\s+\(${ROUTER_ID}\)\s+\(Process\s+ID\s+${PROCESS_ID}\) + ^\s+Router\s+Link\s+States\s+\(Area ${AREA}\) -> LSAInfo ^\s*$$ ^. -> Error LSAInfo - ^\s+LS age: ${LSA_AGE} - ^\s+Options: \(${LSA_OPTIONS}\) - ^\s+LS Type: ${LSA_TYPE} - ^\s+Link State ID: ${LSA_ID} - ^\s+Advertising Router: ${LSA_ADV_ROUTER} - ^\s+LS Seq Number: ${LSA_SEQ_NUMBER} - ^\s+Checksum: ${LSA_CHECKSUM} - ^\s+Length: ${LSA_LENGTH} - ^\s+Number of Links: ${LSA_NUM_LINKS} -> LSAs + ^\s+LS\s+age:\s+${LSA_AGE} + ^\s+Options:\s+\(${LSA_OPTIONS}\) + ^\s+LS\s+Type:\s+${LSA_TYPE} + ^\s+Link\s+State\s+ID:\s+${LSA_ID} + ^\s+Advertising Router:\s+${LSA_ADV_ROUTER} + ^\s+LS\s+Seq\s+Number:\s+${LSA_SEQ_NUMBER} + ^\s+Checksum:\s+${LSA_CHECKSUM} + ^\s+Length:\s+${LSA_LENGTH} + ^\s+Number\s+of\s+Links:\s+${LSA_NUM_LINKS} -> LSAs ^\s*$$ ^. -> Error LSAs - ^\s+Link connected to: ${LS_LINK_TYPE} - ^\s+\(Link ID\) ((Network\/subnet number)|(Designated Router address)|(Neighboring Router ID)): ${LS_LINK_ID} - ^\s+\(Link Data\) ((Network Mask)|(Router Interface address)): ${LS_LINK_DATA} - ^\s+Number of MTID metrics: ${LS_MTID_METRICS} - ^\s+TOS 0 Metrics: ${LS_TOS_0_METRICS} -> Next.Record - ^\s+LS age: ${LSA_AGE} -> LSAInfo + ^\s+Link\s+connected\s+to:\s+${LS_LINK_TYPE}$$ + ^\s+\(Link ID\)\s+((Network\/subnet\s+number)|(Designated\s+Router\s+address)|(Neighboring\s+Router ID)):\s+${LS_LINK_ID} + ^\s+\(Link Data\)\s+((Network\s+Mask)|(Router\s+Interface\s+address)):\s+${LS_LINK_DATA} + ^\s+Number\s+of\s+MTID\s+metrics:\s+${LS_MTID_METRICS} + ^\s+TOS\s+0\s+Metrics:\s+${LS_TOS_0_METRICS} -> Next.Record + ^\s+LS\s+age:\s+${LSA_AGE} -> LSAInfo ^\s*$$ ^. -> Error