bgpd: fix unsetting of multipath as-set

in the nortbound callback for the boolean leaf multi-path-as-set, the
actual value of the leaf was being ignored. As a result, going from
as-set to no-as-set was having no effect.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
This commit is contained in:
Emanuele Di Pascale 2021-01-07 14:46:59 +01:00
parent 0e11b1e2ba
commit 174c5be33c

View File

@ -894,6 +894,9 @@ int bgp_global_route_selection_options_allow_multiple_as_modify(
"../multi-path-as-set")) {
SET_FLAG(bgp->flags,
BGP_FLAG_MULTIPATH_RELAX_AS_SET);
} else {
UNSET_FLAG(bgp->flags,
BGP_FLAG_MULTIPATH_RELAX_AS_SET);
}
} else {
UNSET_FLAG(bgp->flags, BGP_FLAG_ASPATH_MULTIPATH_RELAX);
@ -923,15 +926,10 @@ int bgp_global_route_selection_options_multi_path_as_set_modify(
return NB_OK;
case NB_EV_APPLY:
bgp = nb_running_get_entry(args->dnode, NULL, true);
if (!CHECK_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET)) {
if (yang_dnode_get_bool(args->dnode, NULL))
SET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
} else
zlog_debug(
"%s multi-path-as-set as part of allow-multiple-as modify cb.",
__func__);
else
UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
break;
}