summaryrefslogtreecommitdiff
path: root/vrrpd
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2020-04-04 13:38:51 -0300
committerRenato Westphal <renato@opensourcerouting.org>2020-04-23 10:14:32 -0300
commit60ee8be107c593212a9b53e8ed5c34c4c5e70af3 (patch)
treef86993b9f63afab4a8e0291f27fd8f938f5dec8d /vrrpd
parent97cd849362b45ecbcb20194b5771c5ce777de6bc (diff)
*: change the signature of the northbound callbacks to be more flexible
Having a fixed set of parameters for each northbound callback isn't a good idea since it makes it difficult to add new parameters whenever that becomes necessary, as several hundreds or thousands of existing callbacks need to be updated accordingly. To remediate this issue, this commit changes the signature of all northbound callbacks to have a single parameter: a pointer to a 'nb_cb_x_args' structure (where x is different for each type of callback). These structures encapsulate all real parameters (both input and output) the callbacks need to have access to. And adding a new parameter to a given callback is as simple as adding a new field to the corresponding 'nb_cb_x_args' structure, without needing to update any instance of that callback in any daemon. This commit includes a .cocci semantic patch that can be used to update old code to the new format automatically. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'vrrpd')
-rw-r--r--vrrpd/vrrp_northbound.c266
1 files changed, 123 insertions, 143 deletions
diff --git a/vrrpd/vrrp_northbound.c b/vrrpd/vrrp_northbound.c
index feaea6c038..c11e0352de 100644
--- a/vrrpd/vrrp_northbound.c
+++ b/vrrpd/vrrp_northbound.c
@@ -33,58 +33,55 @@
/*
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group
*/
-static int lib_interface_vrrp_vrrp_group_create(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+static int lib_interface_vrrp_vrrp_group_create(struct nb_cb_create_args *args)
{
struct interface *ifp;
uint8_t vrid;
uint8_t version = 3;
struct vrrp_vrouter *vr;
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- ifp = nb_running_get_entry(dnode, NULL, true);
- vrid = yang_dnode_get_uint8(dnode, "./virtual-router-id");
- version = yang_dnode_get_enum(dnode, "./version");
+ ifp = nb_running_get_entry(args->dnode, NULL, true);
+ vrid = yang_dnode_get_uint8(args->dnode, "./virtual-router-id");
+ version = yang_dnode_get_enum(args->dnode, "./version");
vr = vrrp_vrouter_create(ifp, vrid, version);
- nb_running_set_entry(dnode, vr);
+ nb_running_set_entry(args->dnode, vr);
return NB_OK;
}
-static int lib_interface_vrrp_vrrp_group_destroy(enum nb_event event,
- const struct lyd_node *dnode)
+static int
+lib_interface_vrrp_vrrp_group_destroy(struct nb_cb_destroy_args *args)
{
struct vrrp_vrouter *vr;
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- vr = nb_running_unset_entry(dnode);
+ vr = nb_running_unset_entry(args->dnode);
vrrp_vrouter_destroy(vr);
return NB_OK;
}
static const void *
-lib_interface_vrrp_vrrp_group_get_next(const void *parent_list_entry,
- const void *list_entry)
+lib_interface_vrrp_vrrp_group_get_next(struct nb_cb_get_next_args *args)
{
struct list *l = hash_to_list(vrrp_vrouters_hash);
struct listnode *ln;
const struct vrrp_vrouter *curr;
- const struct interface *ifp = parent_list_entry;
+ const struct interface *ifp = args->parent_list_entry;
/*
* If list_entry is null, we return the first vrrp instance with a
* matching interface
*/
- bool nextone = list_entry ? false : true;
+ bool nextone = args->list_entry ? false : true;
for (ALL_LIST_ELEMENTS_RO(l, ln, curr)) {
- if (curr == list_entry) {
+ if (curr == args->list_entry) {
nextone = true;
continue;
}
@@ -100,23 +97,23 @@ done:
return curr;
}
-static int lib_interface_vrrp_vrrp_group_get_keys(const void *list_entry,
- struct yang_list_keys *keys)
+static int
+lib_interface_vrrp_vrrp_group_get_keys(struct nb_cb_get_keys_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- keys->num = 1;
- snprintf(keys->key[0], sizeof(keys->key[0]), "%" PRIu32, vr->vrid);
+ args->keys->num = 1;
+ snprintf(args->keys->key[0], sizeof(args->keys->key[0]), "%" PRIu32,
+ vr->vrid);
return NB_OK;
}
static const void *
-lib_interface_vrrp_vrrp_group_lookup_entry(const void *parent_list_entry,
- const struct yang_list_keys *keys)
+lib_interface_vrrp_vrrp_group_lookup_entry(struct nb_cb_lookup_entry_args *args)
{
- uint32_t vrid = strtoul(keys->key[0], NULL, 10);
- const struct interface *ifp = parent_list_entry;
+ uint32_t vrid = strtoul(args->keys->key[0], NULL, 10);
+ const struct interface *ifp = args->parent_list_entry;
return vrrp_lookup(ifp, vrid);
}
@@ -125,20 +122,18 @@ lib_interface_vrrp_vrrp_group_lookup_entry(const void *parent_list_entry,
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/version
*/
static int
-lib_interface_vrrp_vrrp_group_version_modify(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+lib_interface_vrrp_vrrp_group_version_modify(struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
uint8_t version;
- vr = nb_running_get_entry(dnode, NULL, true);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
vrrp_event(vr->v4, VRRP_EVENT_SHUTDOWN);
vrrp_event(vr->v6, VRRP_EVENT_SHUTDOWN);
- version = yang_dnode_get_enum(dnode, NULL);
+ version = yang_dnode_get_enum(args->dnode, NULL);
vr->version = version;
vrrp_check_start(vr);
@@ -170,24 +165,23 @@ static void vrrp_yang_add_del_virtual_address(const struct lyd_node *dnode,
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v4/virtual-address
*/
static int lib_interface_vrrp_vrrp_group_v4_virtual_address_create(
- enum nb_event event, const struct lyd_node *dnode,
- union nb_resource *resource)
+ struct nb_cb_create_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- vrrp_yang_add_del_virtual_address(dnode, true);
+ vrrp_yang_add_del_virtual_address(args->dnode, true);
return NB_OK;
}
static int lib_interface_vrrp_vrrp_group_v4_virtual_address_destroy(
- enum nb_event event, const struct lyd_node *dnode)
+ struct nb_cb_destroy_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- vrrp_yang_add_del_virtual_address(dnode, false);
+ vrrp_yang_add_del_virtual_address(args->dnode, false);
return NB_OK;
}
@@ -198,11 +192,11 @@ static int lib_interface_vrrp_vrrp_group_v4_virtual_address_destroy(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_current_priority_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint8(xpath, vr->v4->priority);
+ return yang_data_new_uint8(args->xpath, vr->v4->priority);
}
/*
@@ -210,15 +204,15 @@ lib_interface_vrrp_vrrp_group_v4_current_priority_get_elem(
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v4/vrrp-interface
*/
static struct yang_data *
-lib_interface_vrrp_vrrp_group_v4_vrrp_interface_get_elem(const char *xpath,
- const void *list_entry)
+lib_interface_vrrp_vrrp_group_v4_vrrp_interface_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
struct yang_data *val = NULL;
if (vr->v4->mvl_ifp)
- val = yang_data_new_string(xpath, vr->v4->mvl_ifp->name);
+ val = yang_data_new_string(args->xpath, vr->v4->mvl_ifp->name);
return val;
}
@@ -228,17 +222,17 @@ lib_interface_vrrp_vrrp_group_v4_vrrp_interface_get_elem(const char *xpath,
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v4/source-address
*/
static struct yang_data *
-lib_interface_vrrp_vrrp_group_v4_source_address_get_elem(const char *xpath,
- const void *list_entry)
+lib_interface_vrrp_vrrp_group_v4_source_address_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
struct yang_data *val = NULL;
struct ipaddr ip;
memset(&ip, 0x00, sizeof(ip));
if (memcmp(&vr->v4->src.ipaddr_v4, &ip.ipaddr_v4, sizeof(ip.ipaddr_v4)))
- val = yang_data_new_ip(xpath, &vr->v4->src);
+ val = yang_data_new_ip(args->xpath, &vr->v4->src);
return val;
}
@@ -246,13 +240,12 @@ lib_interface_vrrp_vrrp_group_v4_source_address_get_elem(const char *xpath,
/*
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v4/state
*/
-static struct yang_data *
-lib_interface_vrrp_vrrp_group_v4_state_get_elem(const char *xpath,
- const void *list_entry)
+static struct yang_data *lib_interface_vrrp_vrrp_group_v4_state_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_enum(xpath, vr->v4->fsm.state);
+ return yang_data_new_enum(args->xpath, vr->v4->fsm.state);
}
/*
@@ -261,23 +254,22 @@ lib_interface_vrrp_vrrp_group_v4_state_get_elem(const char *xpath,
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_master_advertisement_interval_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint16(xpath, vr->v4->master_adver_interval);
+ return yang_data_new_uint16(args->xpath, vr->v4->master_adver_interval);
}
/*
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v4/skew-time
*/
-static struct yang_data *
-lib_interface_vrrp_vrrp_group_v4_skew_time_get_elem(const char *xpath,
- const void *list_entry)
+static struct yang_data *lib_interface_vrrp_vrrp_group_v4_skew_time_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint16(xpath, vr->v4->skew_time);
+ return yang_data_new_uint16(args->xpath, vr->v4->skew_time);
}
/*
@@ -286,11 +278,11 @@ lib_interface_vrrp_vrrp_group_v4_skew_time_get_elem(const char *xpath,
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_counter_state_transition_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v4->stats.trans_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v4->stats.trans_cnt);
}
/*
@@ -299,11 +291,11 @@ lib_interface_vrrp_vrrp_group_v4_counter_state_transition_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_counter_tx_advertisement_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v4->stats.adver_tx_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v4->stats.adver_tx_cnt);
}
/*
@@ -312,11 +304,11 @@ lib_interface_vrrp_vrrp_group_v4_counter_tx_advertisement_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_counter_tx_gratuitous_arp_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v4->stats.garp_tx_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v4->stats.garp_tx_cnt);
}
/*
@@ -325,11 +317,11 @@ lib_interface_vrrp_vrrp_group_v4_counter_tx_gratuitous_arp_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v4_counter_rx_advertisement_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v4->stats.adver_rx_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v4->stats.adver_rx_cnt);
}
/*
@@ -337,24 +329,23 @@ lib_interface_vrrp_vrrp_group_v4_counter_rx_advertisement_get_elem(
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v6/virtual-address
*/
static int lib_interface_vrrp_vrrp_group_v6_virtual_address_create(
- enum nb_event event, const struct lyd_node *dnode,
- union nb_resource *resource)
+ struct nb_cb_create_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- vrrp_yang_add_del_virtual_address(dnode, true);
+ vrrp_yang_add_del_virtual_address(args->dnode, true);
return NB_OK;
}
static int lib_interface_vrrp_vrrp_group_v6_virtual_address_destroy(
- enum nb_event event, const struct lyd_node *dnode)
+ struct nb_cb_destroy_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
- vrrp_yang_add_del_virtual_address(dnode, false);
+ vrrp_yang_add_del_virtual_address(args->dnode, false);
return NB_OK;
}
@@ -365,11 +356,11 @@ static int lib_interface_vrrp_vrrp_group_v6_virtual_address_destroy(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_current_priority_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint8(xpath, vr->v6->priority);
+ return yang_data_new_uint8(args->xpath, vr->v6->priority);
}
/*
@@ -377,14 +368,14 @@ lib_interface_vrrp_vrrp_group_v6_current_priority_get_elem(
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v6/vrrp-interface
*/
static struct yang_data *
-lib_interface_vrrp_vrrp_group_v6_vrrp_interface_get_elem(const char *xpath,
- const void *list_entry)
+lib_interface_vrrp_vrrp_group_v6_vrrp_interface_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
struct yang_data *val = NULL;
if (vr->v6->mvl_ifp)
- val = yang_data_new_string(xpath, vr->v6->mvl_ifp->name);
+ val = yang_data_new_string(args->xpath, vr->v6->mvl_ifp->name);
return val;
}
@@ -394,14 +385,14 @@ lib_interface_vrrp_vrrp_group_v6_vrrp_interface_get_elem(const char *xpath,
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v6/source-address
*/
static struct yang_data *
-lib_interface_vrrp_vrrp_group_v6_source_address_get_elem(const char *xpath,
- const void *list_entry)
+lib_interface_vrrp_vrrp_group_v6_source_address_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
struct yang_data *val = NULL;
if (ipaddr_isset(&vr->v6->src))
- val = yang_data_new_ip(xpath, &vr->v6->src);
+ val = yang_data_new_ip(args->xpath, &vr->v6->src);
return val;
}
@@ -409,13 +400,12 @@ lib_interface_vrrp_vrrp_group_v6_source_address_get_elem(const char *xpath,
/*
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v6/state
*/
-static struct yang_data *
-lib_interface_vrrp_vrrp_group_v6_state_get_elem(const char *xpath,
- const void *list_entry)
+static struct yang_data *lib_interface_vrrp_vrrp_group_v6_state_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_enum(xpath, vr->v6->fsm.state);
+ return yang_data_new_enum(args->xpath, vr->v6->fsm.state);
}
/*
@@ -424,23 +414,22 @@ lib_interface_vrrp_vrrp_group_v6_state_get_elem(const char *xpath,
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_master_advertisement_interval_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint16(xpath, vr->v6->master_adver_interval);
+ return yang_data_new_uint16(args->xpath, vr->v6->master_adver_interval);
}
/*
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/v6/skew-time
*/
-static struct yang_data *
-lib_interface_vrrp_vrrp_group_v6_skew_time_get_elem(const char *xpath,
- const void *list_entry)
+static struct yang_data *lib_interface_vrrp_vrrp_group_v6_skew_time_get_elem(
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint16(xpath, vr->v6->skew_time);
+ return yang_data_new_uint16(args->xpath, vr->v6->skew_time);
}
/*
@@ -449,11 +438,11 @@ lib_interface_vrrp_vrrp_group_v6_skew_time_get_elem(const char *xpath,
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_counter_state_transition_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v6->stats.trans_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v6->stats.trans_cnt);
}
/*
@@ -462,11 +451,11 @@ lib_interface_vrrp_vrrp_group_v6_counter_state_transition_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_counter_tx_advertisement_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
- const struct vrrp_vrouter *vr = list_entry;
+ const struct vrrp_vrouter *vr = args->list_entry;
- return yang_data_new_uint32(xpath, vr->v6->stats.adver_tx_cnt);
+ return yang_data_new_uint32(args->xpath, vr->v6->stats.adver_tx_cnt);
}
/*
@@ -475,7 +464,7 @@ lib_interface_vrrp_vrrp_group_v6_counter_tx_advertisement_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_counter_tx_neighbor_advertisement_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
/* TODO: implement me. */
return NULL;
@@ -487,7 +476,7 @@ lib_interface_vrrp_vrrp_group_v6_counter_tx_neighbor_advertisement_get_elem(
*/
static struct yang_data *
lib_interface_vrrp_vrrp_group_v6_counter_rx_advertisement_get_elem(
- const char *xpath, const void *list_entry)
+ struct nb_cb_get_elem_args *args)
{
/* TODO: implement me. */
return NULL;
@@ -497,18 +486,16 @@ lib_interface_vrrp_vrrp_group_v6_counter_rx_advertisement_get_elem(
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/priority
*/
static int
-lib_interface_vrrp_vrrp_group_priority_modify(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+lib_interface_vrrp_vrrp_group_priority_modify(struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
uint8_t priority;
- vr = nb_running_get_entry(dnode, NULL, true);
- priority = yang_dnode_get_uint8(dnode, NULL);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
+ priority = yang_dnode_get_uint8(args->dnode, NULL);
vrrp_set_priority(vr, priority);
return NB_OK;
@@ -518,18 +505,16 @@ lib_interface_vrrp_vrrp_group_priority_modify(enum nb_event event,
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/preempt
*/
static int
-lib_interface_vrrp_vrrp_group_preempt_modify(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+lib_interface_vrrp_vrrp_group_preempt_modify(struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
bool preempt;
- vr = nb_running_get_entry(dnode, NULL, true);
- preempt = yang_dnode_get_bool(dnode, NULL);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
+ preempt = yang_dnode_get_bool(args->dnode, NULL);
vr->preempt_mode = preempt;
return NB_OK;
@@ -539,18 +524,16 @@ lib_interface_vrrp_vrrp_group_preempt_modify(enum nb_event event,
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/accept-mode
*/
static int
-lib_interface_vrrp_vrrp_group_accept_mode_modify(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+lib_interface_vrrp_vrrp_group_accept_mode_modify(struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
bool accept;
- vr = nb_running_get_entry(dnode, NULL, true);
- accept = yang_dnode_get_bool(dnode, NULL);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
+ accept = yang_dnode_get_bool(args->dnode, NULL);
vr->accept_mode = accept;
return NB_OK;
@@ -561,17 +544,16 @@ lib_interface_vrrp_vrrp_group_accept_mode_modify(enum nb_event event,
* /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/advertisement-interval
*/
static int lib_interface_vrrp_vrrp_group_advertisement_interval_modify(
- enum nb_event event, const struct lyd_node *dnode,
- union nb_resource *resource)
+ struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
uint16_t advert_int;
- vr = nb_running_get_entry(dnode, NULL, true);
- advert_int = yang_dnode_get_uint16(dnode, NULL);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
+ advert_int = yang_dnode_get_uint16(args->dnode, NULL);
vrrp_set_advertisement_interval(vr, advert_int);
return NB_OK;
@@ -581,18 +563,16 @@ static int lib_interface_vrrp_vrrp_group_advertisement_interval_modify(
* XPath: /frr-interface:lib/interface/frr-vrrpd:vrrp/vrrp-group/shutdown
*/
static int
-lib_interface_vrrp_vrrp_group_shutdown_modify(enum nb_event event,
- const struct lyd_node *dnode,
- union nb_resource *resource)
+lib_interface_vrrp_vrrp_group_shutdown_modify(struct nb_cb_modify_args *args)
{
- if (event != NB_EV_APPLY)
+ if (args->event != NB_EV_APPLY)
return NB_OK;
struct vrrp_vrouter *vr;
bool shutdown;
- vr = nb_running_get_entry(dnode, NULL, true);
- shutdown = yang_dnode_get_bool(dnode, NULL);
+ vr = nb_running_get_entry(args->dnode, NULL, true);
+ shutdown = yang_dnode_get_bool(args->dnode, NULL);
vr->shutdown = shutdown;