From 10e2df6530183a202ab85c2311bcdc94e9037e5b Mon Sep 17 00:00:00 2001 From: Nathan Bahr Date: Wed, 2 Oct 2024 19:03:48 +0000 Subject: pimd,yang: Reimplement RPF lookup vty in router pim Add rpf-lookup-mode MODE vty command under router pim block. Including NB piping and config write. Using the mode still pending. Signed-off-by: Nathan Bahr --- pimd/pim_cmd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'pimd/pim_cmd.c') diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 3fabe1706c..1d89ec100a 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -8851,6 +8851,24 @@ done: return ret; } +DEFPY_YANG(pim_rpf_lookup_mode, pim_rpf_lookup_mode_cmd, + "[no] rpf-lookup-mode ![urib-only|mrib-only|mrib-then-urib|lower-distance|longer-prefix]$mode", + NO_STR + "RPF lookup behavior\n" + "Lookup in unicast RIB only\n" + "Lookup in multicast RIB only\n" + "Try multicast RIB first, fall back to unicast RIB\n" + "Lookup both, use entry with lower distance\n" + "Lookup both, use entry with longer prefix\n") +{ + if (no) + nb_cli_enqueue_change(vty, "./mcast-rpf-lookup", NB_OP_DESTROY, NULL); + else + nb_cli_enqueue_change(vty, "./mcast-rpf-lookup", NB_OP_MODIFY, mode); + + return nb_cli_apply_changes(vty, NULL); +} + struct cmd_node pim_node = { .name = "pim", .node = PIM_NODE, @@ -9017,6 +9035,8 @@ void pim_cmd_init(void) install_element(PIM_NODE, &pim_bsr_candidate_rp_group_cmd); install_element(PIM_NODE, &pim_bsr_candidate_bsr_cmd); + install_element(PIM_NODE, &pim_rpf_lookup_mode_cmd); + install_element(INTERFACE_NODE, &interface_ip_igmp_cmd); install_element(INTERFACE_NODE, &interface_no_ip_igmp_cmd); install_element(INTERFACE_NODE, &interface_ip_igmp_join_cmd); -- cgit v1.2.3