diff options
Diffstat (limited to 'pimd/pim_nb_config.c')
| -rw-r--r-- | pimd/pim_nb_config.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index fb7047aa49..30895e0377 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -1037,6 +1037,8 @@ pim6_msdp_err(pim_msdp_peer_authentication_key_modify, nb_cb_modify_args); pim6_msdp_err(pim_msdp_peer_authentication_key_destroy, nb_cb_destroy_args); pim6_msdp_err(pim_msdp_log_neighbor_events_modify, nb_cb_modify_args); pim6_msdp_err(pim_msdp_log_sa_events_modify, nb_cb_modify_args); +pim6_msdp_err(pim_msdp_originator_id_modify, nb_cb_modify_args); +pim6_msdp_err(pim_msdp_originator_id_destroy, nb_cb_destroy_args); pim6_msdp_err(pim_msdp_shutdown_modify, nb_cb_modify_args); #if PIM_IPV != 6 @@ -1173,6 +1175,50 @@ int pim_msdp_log_sa_events_modify(struct nb_cb_modify_args *args) /* * XPath: + * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/originator-id + */ +int pim_msdp_originator_id_modify(struct nb_cb_modify_args *args) +{ + struct pim_instance *pim; + struct vrf *vrf; + + 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; + yang_dnode_get_ipv4(&pim->msdp.originator_id, args->dnode, NULL); + break; + } + + return NB_OK; +} + +int pim_msdp_originator_id_destroy(struct nb_cb_destroy_args *args) +{ + struct pim_instance *pim; + struct vrf *vrf; + + 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; + pim->msdp.originator_id.s_addr = INADDR_ANY; + break; + } + + return NB_OK; +} + +/* + * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/msdp/shutdown */ int pim_msdp_shutdown_modify(struct nb_cb_modify_args *args) |
