diff options
| author | Nathan Bahr <nbahr@atcorp.com> | 2024-10-02 19:03:48 +0000 |
|---|---|---|
| committer | Nathan Bahr <nbahr@atcorp.com> | 2024-12-13 17:36:34 +0000 |
| commit | 10e2df6530183a202ab85c2311bcdc94e9037e5b (patch) | |
| tree | 47f77d703865ccb8ffc02d0cdc67c4d7d2061d20 /pimd/pim_nb_config.c | |
| parent | ba0a6868e53ecb87eb3101b0926e42152046f931 (diff) | |
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 <nbahr@atcorp.com>
Diffstat (limited to 'pimd/pim_nb_config.c')
| -rw-r--r-- | pimd/pim_nb_config.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index fb7047aa49..905bc5a137 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -1847,6 +1847,34 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_re } /* + * XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/mcast-rpf-lookup + */ +int routing_control_plane_protocols_control_plane_protocol_pim_address_family_mcast_rpf_lookup_modify( + struct nb_cb_modify_args *args) +{ + struct vrf *vrf; + struct pim_instance *pim; + enum pim_rpf_lookup_mode old_mode; + + switch (args->event) { + case NB_EV_VALIDATE: + case NB_EV_PREPARE: + case NB_EV_ABORT: + break; + case NB_EV_APPLY: + vrf = nb_running_get_entry(args->dnode, NULL, true); + pim = vrf->info; + old_mode = pim->rpf_mode; + pim->rpf_mode = yang_dnode_get_enum(args->dnode, NULL); + + /* TODO: Signal to redo lookups? */ + break; + } + + return NB_OK; +} + +/* * XPath: /frr-interface:lib/interface/frr-pim:pim/address-family */ int lib_interface_pim_address_family_create(struct nb_cb_create_args *args) @@ -2666,9 +2694,8 @@ int lib_interface_pim_address_family_mroute_oif_modify( #ifdef PIM_ENFORCE_LOOPFREE_MFC iif = nb_running_get_entry(args->dnode, NULL, false); - if (!iif) { + if (!iif) return NB_OK; - } pim_iifp = iif->info; pim = pim_iifp->pim; |
