diff options
Diffstat (limited to 'pimd/pim_nb_config.c')
| -rw-r--r-- | pimd/pim_nb_config.c | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 5b418f2597..b55d08bab9 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) @@ -2811,13 +2857,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp else if (yang_dnode_get(args->dnode, "prefix-list")) { plist = yang_dnode_get_string(args->dnode, "./prefix-list"); - if (!pim_get_all_mcast_group(&group)) { - flog_err( - EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } - + pim_get_all_mcast_group(&group); result = pim_no_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); @@ -2909,11 +2949,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp pim = vrf->info; plist = yang_dnode_get_string(args->dnode, NULL); yang_dnode_get_pimaddr(&rp_addr, args->dnode, "../rp-address"); - if (!pim_get_all_mcast_group(&group)) { - flog_err(EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } + pim_get_all_mcast_group(&group); return pim_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); } @@ -2940,11 +2976,7 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp pim = vrf->info; yang_dnode_get_pimaddr(&rp_addr, args->dnode, "../rp-address"); plist = yang_dnode_get_string(args->dnode, NULL); - if (!pim_get_all_mcast_group(&group)) { - flog_err(EC_LIB_DEVELOPMENT, - "Unable to convert 224.0.0.0/4 to prefix"); - return NB_ERR_INCONSISTENCY; - } + pim_get_all_mcast_group(&group); return pim_no_rp_cmd_worker(pim, rp_addr, group, plist, args->errmsg, args->errmsg_len); break; |
