diff --git a/ntc_templates/templates/arista_eos_show_ip_mroute_vrf_all_detail.textfsm b/ntc_templates/templates/arista_eos_show_ip_mroute_vrf_all_detail.textfsm new file mode 100644 index 0000000000..235cb41aaf --- /dev/null +++ b/ntc_templates/templates/arista_eos_show_ip_mroute_vrf_all_detail.textfsm @@ -0,0 +1,45 @@ +Value Filldown VRF (\S+) +Value Filldown MULTICAST_GROUP (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) +Value Required RPF_SOURCE (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) +Value RP (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) +Value UPTIME (\d+d\d+h|\d+:\d+:\d+) +Value FLAGS (\S+) +Value RPF_ROUTE (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}) +Value RPF_ROUTING_TABLE ([UM]) +Value RPF_ROUTE_ADMINISTRATIVE_DISTANCE (\d+) +Value RPF_ROUTE_METRIC (\d+) +Value RPF_ROUTE_VIA (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) +Value INCOMING_INTERFACE (\S+) +Value UPSTREAM_JOINED_STATE (\S+) +Value UPSTREAM_RPT_JOINED_STATE (\S+) +Value List OUTGOING_INTERFACE_LIST (\S+) + +Start + ^VRF:${VRF} + ^PIM + ^RPF + ^\s+M\s+-\s+From + ^Flags + ^\s+[RWIHZANTVF]\s+- + ^${MULTICAST_GROUP} + ^\s+?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) -> Continue.Record + ^\s+${RPF_SOURCE},\s+${UPTIME},\s+(RP\s+${RP},\s+)?flags:\s+${FLAGS} + ^\s+Incoming\s+interface:\s+${INCOMING_INTERFACE} + ^\s+RPF\s+route:\s+\[${RPF_ROUTING_TABLE}\]\s+${RPF_ROUTE}\s+\[${RPF_ROUTE_ADMINISTRATIVE_DISTANCE}/${RPF_ROUTE_METRIC}\]\s+via\s+${RPF_ROUTE_VIA} + ^\s+Outgoing\s+interface\s+list: + ^\s+${OUTGOING_INTERFACE_LIST}$$ + ^\s+Interfaces\s+not\s+in\s+OIL +# match interface names that are not in the OIL + ^\s+\S+:\s+ + ^\s+Upstream\s+joined\s+state:\s+${UPSTREAM_JOINED_STATE} + ^\s+Upstream\s+RPT\s+joined\s+state:\s+${UPSTREAM_RPT_JOINED_STATE} -> Record + ^\s+State\s+summarization\s+macros: + ^\s+Could + ^\s+Register + ^\s+Join + ^\s+RPT\s+join\s+desired + ^\s+Prune + ^\s+No\s+interfaces\s+in\s+(immediate|inherited)\s+olist + ^.* -> Error + +EOF diff --git a/ntc_templates/templates/index b/ntc_templates/templates/index index 6727c36647..9ed2e5456b 100644 --- a/ntc_templates/templates/index +++ b/ntc_templates/templates/index @@ -65,6 +65,7 @@ allied_telesis_awplus_show_arp.textfsm, .*, allied_telesis_awplus, sh[[ow]] ar[[ arista_eos_show_mac_security_participants_detail.textfsm, .*, arista_eos, sh[[ow]] ma[[c]] secu[[rity]] part[[icipants]] det[[ail]] arista_eos_show_interfaces_transceiver_detail.textfsm, .*, arista_eos, sh[[ow]] inte[[rfaces]] tr[[ansceiver]] de[[tail]] arista_eos_show_mac_security_mka_counters.textfsm, .*, arista_eos, sh[[ow]] ma[[c]] secu[[rity]] mk[[a]] count[[ers]] +arista_eos_show_ip_mroute_vrf_all_detail.textfsm, .*, arista_eos, sh[[ow]] i[[p]] m[[route]](?: vrf a[[ll]] )?d[[etail]] arista_eos_show_environment_temperature.textfsm, .*, arista_eos, sh[[ow]] en[[vironment]] t[[emperature]] arista_eos_show_ip_ospf_interface_brief.textfsm, .*, arista_eos, sh[[ow]] i[[p]] o[[spf]] int[[erface]] br[[ief]] arista_eos_show_interfaces_description.textfsm, .*, arista_eos, sh[[ow]] int[[erfaces]] des[[cription]] diff --git a/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.raw b/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.raw new file mode 100644 index 0000000000..29267e884c --- /dev/null +++ b/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.raw @@ -0,0 +1,143 @@ +VRF:default +PIM Bidirectional Mode Multicast Routing Table +RPF route: U - From unicast routing table + M - From multicast routing table +PIM Sparse Mode Multicast Routing Table +Flags: E - Entry forwarding on the RPT, J - Joining to the SPT + R - RPT bit is set, S - SPT bit is set, L - Source is attached + W - Wildcard entry, X - External component interest + I - SG Include Join alert rcvd, P - Programmed in hardware + H - Joining SPT due to policy, D - Joining SPT due to protocol + Z - Entry marked for deletion, C - Learned from a DR via a register + A - Learned via Anycast RP Router, M - Learned via MSDP + N - May notify MSDP, K - Keepalive timer not running + T - Switching Incoming Interface, B - Learned via Border Router + V - Source is reachable via Evpn Tenant Domain + F - Learned via MVPN +RPF route: U - From unicast routing table + M - From multicast routing table +224.0.1.129 + 169.254.132.172, 118d18h, flags: PE + Incoming interface: Null + Upstream joined state: upNotJoined + Upstream RPT joined state: upRptNotJoined + State summarization macros: + Could register (S,G): False + Register stop (S,G): True + Join desired (S,G): False + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): True + No interfaces in inherited olist (S,G): True +224.0.23.192 + 0.0.0.0, 38d14h, RP 204.14.0.136, flags: W + Incoming interface: Register + Outgoing interface list: + Ethernet2/1 + Ethernet2/2 + Upstream joined state: upJoined + Upstream RPT joined state: upRptNotJoined + State summarization macros: + Join desired (*,G): True + Join desired (*,*,RP): False + RPT join desired (*,G): True + No interfaces in immediate olist (*,G): False + No interfaces in immediate olist (*,*,G): True + 192.26.98.17, 8:57:21, flags: PE + Incoming interface: Register + Outgoing interface list: + Ethernet2/1 + Upstream joined state: upNotJoined + Upstream RPT joined state: upRptNotPruned + State summarization macros: + Could register (S,G): False + Register stop (S,G): False + Join desired (S,G): False + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): True + No interfaces in inherited olist (S,G): False + 192.168.98.17, 8:57:21, flags: SP + Incoming interface: Ethernet10 + RPF route: [U] 192.168.98.0/27 [20/0] via 10.100.10.6 + Outgoing interface list: + Ethernet2/1 + Upstream joined state: upNotJoined + Upstream RPT joined state: upRptNotPruned + State summarization macros: + Could register (S,G): False + Register stop (S,G): True + Join desired (S,G): True + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): False + No interfaces in inherited olist (S,G): False +224.0.23.190 + 0.0.0.0, 38d14h, RP 204.14.0.136, flags: W + Incoming interface: Register + Outgoing interface list: + Ethernet0/1 + Upstream joined state: upJoined + Upstream RPT joined state: upRptNotJoined + State summarization macros: + Join desired (*,G): True + Join desired (*,*,RP): False + RPT join desired (*,G): True + No interfaces in immediate olist (*,G): False + No interfaces in immediate olist (*,*,G): True + 10.205.227.165, 38d14h, flags: SBNP + Incoming interface: Ethernet32 + Outgoing interface list: + Ethernet2/1 + Interfaces not in OIL: + Ethernet0/1: Not DR, RPT Pruned + Upstream joined state: upJoined + Upstream RPT joined state: upRptNotPruned + State summarization macros: + Could register (S,G): True + Register stop (S,G): True + Join desired (S,G): True + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): False + No interfaces in inherited olist (S,G): False + 10.205.227.166, 18d7h, RP 204.14.0.136, flags: SBNP + Incoming interface: Ethernet32 + Outgoing interface list: + Ethernet0/1 + Ethernet2/1 + Upstream joined state: upJoined + Upstream RPT joined state: upRptNotPruned + State summarization macros: + Could register (S,G): True + Register stop (S,G): True + Join desired (S,G): True + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): False + No interfaces in inherited olist (S,G): False +VRF:FOO +PIM Bidirectional Mode Multicast Routing Table +RPF route: U - From unicast routing table + M - From multicast routing table +PIM Sparse Mode Multicast Routing Table +Flags: E - Entry forwarding on the RPT, J - Joining to the SPT + R - RPT bit is set, S - SPT bit is set, L - Source is attached + W - Wildcard entry, X - External component interest + I - SG Include Join alert rcvd, P - Programmed in hardware + H - Joining SPT due to policy, D - Joining SPT due to protocol + Z - Entry marked for deletion, C - Learned from a DR via a register + A - Learned via Anycast RP Router, M - Learned via MSDP + N - May notify MSDP, K - Keepalive timer not running + T - Switching Incoming Interface, B - Learned via Border Router + V - Source is reachable via Evpn Tenant Domain + F - Learned via MVPN +RPF route: U - From unicast routing table + M - From multicast routing table +224.0.1.130 + 169.254.132.173, 1d18h, flags: PE + Incoming interface: Null + Upstream joined state: upNotJoined + Upstream RPT joined state: upRptNotJoined + State summarization macros: + Could register (S,G): False + Register stop (S,G): True + Join desired (S,G): False + Prune desired (S,G,Rpt): False + No interfaces in immediate olist (S,G): True + No interfaces in inherited olist (S,G): True diff --git a/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.yml b/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.yml new file mode 100644 index 0000000000..8a9ab0b388 --- /dev/null +++ b/tests/arista_eos/show_ip_mroute_vrf_all_detail/arista_eos_show_ip_mroute_vrf_all.yml @@ -0,0 +1,130 @@ +--- +parsed_sample: + - flags: "PE" + incoming_interface: "Null" + multicast_group: "224.0.1.129" + outgoing_interface_list: [] + rp: "" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "169.254.132.172" + upstream_joined_state: "upNotJoined" + upstream_rpt_joined_state: "upRptNotJoined" + uptime: "118d18h" + vrf: "default" + - flags: "W" + incoming_interface: "Register" + multicast_group: "224.0.23.192" + outgoing_interface_list: + - "Ethernet2/1" + - "Ethernet2/2" + rp: "204.14.0.136" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "0.0.0.0" + upstream_joined_state: "upJoined" + upstream_rpt_joined_state: "upRptNotJoined" + uptime: "38d14h" + vrf: "default" + - flags: "PE" + incoming_interface: "Register" + multicast_group: "224.0.23.192" + outgoing_interface_list: + - "Ethernet2/1" + rp: "" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "192.26.98.17" + upstream_joined_state: "upNotJoined" + upstream_rpt_joined_state: "upRptNotPruned" + uptime: "8:57:21" + vrf: "default" + - flags: "SP" + incoming_interface: "Ethernet10" + multicast_group: "224.0.23.192" + outgoing_interface_list: + - "Ethernet2/1" + rp: "" + rpf_route: "192.168.98.0/27" + rpf_route_administrative_distance: "20" + rpf_route_metric: "0" + rpf_route_via: "10.100.10.6" + rpf_routing_table: "U" + rpf_source: "192.168.98.17" + upstream_joined_state: "upNotJoined" + upstream_rpt_joined_state: "upRptNotPruned" + uptime: "8:57:21" + vrf: "default" + - flags: "W" + incoming_interface: "Register" + multicast_group: "224.0.23.190" + outgoing_interface_list: + - "Ethernet0/1" + rp: "204.14.0.136" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "0.0.0.0" + upstream_joined_state: "upJoined" + upstream_rpt_joined_state: "upRptNotJoined" + uptime: "38d14h" + vrf: "default" + - flags: "SBNP" + incoming_interface: "Ethernet32" + multicast_group: "224.0.23.190" + outgoing_interface_list: + - "Ethernet2/1" + rp: "" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "10.205.227.165" + upstream_joined_state: "upJoined" + upstream_rpt_joined_state: "upRptNotPruned" + uptime: "38d14h" + vrf: "default" + - flags: "SBNP" + incoming_interface: "Ethernet32" + multicast_group: "224.0.23.190" + outgoing_interface_list: + - "Ethernet0/1" + - "Ethernet2/1" + rp: "204.14.0.136" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "10.205.227.166" + upstream_joined_state: "upJoined" + upstream_rpt_joined_state: "upRptNotPruned" + uptime: "18d7h" + vrf: "default" + - flags: "PE" + incoming_interface: "Null" + multicast_group: "224.0.1.130" + outgoing_interface_list: [] + rp: "" + rpf_route: "" + rpf_route_administrative_distance: "" + rpf_route_metric: "" + rpf_route_via: "" + rpf_routing_table: "" + rpf_source: "169.254.132.173" + upstream_joined_state: "upNotJoined" + upstream_rpt_joined_state: "upRptNotJoined" + uptime: "1d18h" + vrf: "FOO"