xpath_member_value)) {
member_dnode = yang_dnode_get(vty->candidate_config->dnode,
xpath_member_value);
- if (!yang_is_last_list_dnode(member_dnode))
+ if (!member_dnode || !yang_is_last_list_dnode(member_dnode))
return;
}
return CMD_WARNING_CONFIG_FAILED;
}
- nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL);
+ nb_cli_enqueue_change(vty, xpath_member_value, NB_OP_DESTROY, NULL);
/*
* If this is the last member, then we must remove the group altogether
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
- /* Create mesh group member. */
+ /* Create mesh group source. */
strlcat(xpath_value, "/source", sizeof(xpath_value));
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, saddr_str);
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
- /* Create mesh group member. */
+ /* Create mesh group source. */
strlcat(xpath_value, "/source", sizeof(xpath_value));
nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL);
{
struct pim_msdp_mg_mbr *mbr;
struct pim_msdp_mg *mg;
+ const struct lyd_node *mg_dnode;
switch (args->event) {
case NB_EV_VALIDATE:
break;
case NB_EV_APPLY:
mbr = nb_running_get_entry(args->dnode, NULL, true);
- mg = nb_running_get_entry(args->dnode, "../", true);
-
+ mg_dnode =
+ yang_dnode_get_parent(args->dnode, "msdp-mesh-groups");
+ mg = nb_running_get_entry(mg_dnode, NULL, true);
pim_msdp_mg_mbr_del(mg, mbr);
+ nb_running_unset_entry(args->dnode);
break;
}