#include "ripd/ripd.h"
#include "ripd/rip_debug.h"
#include "ripd/rip_cli.h"
+#include "ripd/rip_interface.h"
/*
* XPath: /frr-ripd:ripd/instance
socket = -1;
rip = rip_create(vrf_name, vrf, socket);
- yang_dnode_set_entry(dnode, rip);
+ nb_running_set_entry(dnode, rip);
break;
}
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_unset_entry(dnode);
rip_clean(rip);
return NB_OK;
static const void *ripd_instance_get_next(const void *parent_list_entry,
const void *list_entry)
{
- const struct rip *rip = list_entry;
+ struct rip *rip = (struct rip *)list_entry;
if (list_entry == NULL)
rip = RB_MIN(rip_instance_head, &rip_instances);
else
- rip = RB_NEXT(rip_instance_head, (struct rip *)rip);
+ rip = RB_NEXT(rip_instance_head, rip);
return rip;
}
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->ecmp = yang_dnode_get_bool(dnode, NULL);
if (!rip->ecmp)
rip_ecmp_disable(rip);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
default_information = yang_dnode_get_bool(dnode, NULL);
memset(&p, 0, sizeof(struct prefix_ipv4));
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->default_metric = yang_dnode_get_uint8(dnode, NULL);
/* rip_update_default_metric (); */
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->distance = yang_dnode_get_uint8(dnode, NULL);
return NB_OK;
apply_mask_ipv4(&prefix);
/* Get RIP distance node. */
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rn = route_node_get(rip->distance_table, (struct prefix *)&prefix);
rn->info = rip_distance_new();
- yang_dnode_set_entry(dnode, rn);
+ nb_running_set_entry(dnode, rn);
return NB_OK;
}
if (event != NB_EV_APPLY)
return NB_OK;
- rn = yang_dnode_get_entry(dnode, true);
+ rn = nb_running_unset_entry(dnode);
rdistance = rn->info;
rip_distance_free(rdistance);
rn->info = NULL;
return NB_OK;
/* Set distance value. */
- rn = yang_dnode_get_entry(dnode, true);
+ rn = nb_running_get_entry(dnode, NULL, true);
distance = yang_dnode_get_uint8(dnode, NULL);
rdistance = rn->info;
rdistance->distance = distance;
acl_name = yang_dnode_get_string(dnode, NULL);
/* Set access-list */
- rn = yang_dnode_get_entry(dnode, true);
+ rn = nb_running_get_entry(dnode, NULL, true);
rdistance = rn->info;
if (rdistance->access_list)
free(rdistance->access_list);
return NB_OK;
/* Reset access-list configuration. */
- rn = yang_dnode_get_entry(dnode, true);
+ rn = nb_running_get_entry(dnode, NULL, true);
rdistance = rn->info;
free(rdistance->access_list);
rdistance->access_list = NULL;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
p.family = AF_INET;
p.prefixlen = IPV4_MAX_BITLEN;
yang_dnode_get_ipv4(&p.prefix, dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
p.family = AF_INET;
p.prefixlen = IPV4_MAX_BITLEN;
yang_dnode_get_ipv4(&p.prefix, dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
yang_dnode_get_ipv4p(&p, dnode, NULL);
apply_mask_ipv4((struct prefix_ipv4 *)&p);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
yang_dnode_get_ipv4p(&p, dnode, NULL);
apply_mask_ipv4((struct prefix_ipv4 *)&p);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_enable_if_add(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_enable_if_delete(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, "./interface");
offset = rip_offset_list_new(rip, ifname);
- yang_dnode_set_entry(dnode, offset);
+ nb_running_set_entry(dnode, offset);
return NB_OK;
}
direct = yang_dnode_get_enum(dnode, "./direction");
- offset = yang_dnode_get_entry(dnode, true);
+ offset = nb_running_unset_entry(dnode);
if (offset->direct[direct].alist_name) {
free(offset->direct[direct].alist_name);
offset->direct[direct].alist_name = NULL;
direct = yang_dnode_get_enum(dnode, "../direction");
alist_name = yang_dnode_get_string(dnode, NULL);
- offset = yang_dnode_get_entry(dnode, true);
+ offset = nb_running_get_entry(dnode, NULL, true);
if (offset->direct[direct].alist_name)
free(offset->direct[direct].alist_name);
offset->direct[direct].alist_name = strdup(alist_name);
direct = yang_dnode_get_enum(dnode, "../direction");
metric = yang_dnode_get_uint8(dnode, NULL);
- offset = yang_dnode_get_entry(dnode, true);
+ offset = nb_running_get_entry(dnode, NULL, true);
offset->direct[direct].metric = metric;
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->passive_default = yang_dnode_get_bool(dnode, NULL);
rip_passive_nondefault_clean(rip);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_passive_nondefault_set(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_passive_nondefault_unset(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_passive_nondefault_unset(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
ifname = yang_dnode_get_string(dnode, NULL);
return rip_passive_nondefault_set(rip, ifname);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "./protocol");
rip->redist[type].enabled = true;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "./protocol");
rip->redist[type].enabled = false;
struct rip *rip;
int type;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "./protocol");
if (rip->enabled)
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "../protocol");
rmap_name = yang_dnode_get_string(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "../protocol");
free(rip->redist[type].route_map.name);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "../protocol");
metric = yang_dnode_get_uint8(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
type = yang_dnode_get_enum(dnode, "../protocol");
rip->redist[type].metric_config = false;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
yang_dnode_get_ipv4p(&p, dnode, NULL);
apply_mask_ipv4(&p);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
yang_dnode_get_ipv4p(&p, dnode, NULL);
apply_mask_ipv4(&p);
{
struct rip *rip;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
/* Reset update timer thread. */
rip_event(rip, RIP_UPDATE_EVENT, 0);
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->garbage_time = yang_dnode_get_uint32(dnode, NULL);
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->timeout_time = yang_dnode_get_uint32(dnode, NULL);
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->update_time = yang_dnode_get_uint32(dnode, NULL);
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->version_recv = yang_dnode_get_enum(dnode, NULL);
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- rip = yang_dnode_get_entry(dnode, true);
+ rip = nb_running_get_entry(dnode, NULL, true);
rip->version_send = yang_dnode_get_enum(dnode, NULL);
return NB_OK;
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->split_horizon = yang_dnode_get_enum(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->v2_broadcast = yang_dnode_get_bool(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->ri_receive = yang_dnode_get_enum(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->ri_send = yang_dnode_get_enum(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->auth_type = yang_dnode_get_enum(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->md5_auth_len = yang_dnode_get_enum(dnode, NULL);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
ri->md5_auth_len = yang_get_default_enum(
"%s/authentication-scheme/md5-auth-length", RIP_IFACE);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
XFREE(MTYPE_RIP_INTERFACE_STRING, ri->auth_str);
ri->auth_str = XSTRDUP(MTYPE_RIP_INTERFACE_STRING,
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
XFREE(MTYPE_RIP_INTERFACE_STRING, ri->auth_str);
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
XFREE(MTYPE_RIP_INTERFACE_STRING, ri->key_chain);
ri->key_chain = XSTRDUP(MTYPE_RIP_INTERFACE_STRING,
if (event != NB_EV_APPLY)
return NB_OK;
- ifp = yang_dnode_get_entry(dnode, true);
+ ifp = nb_running_get_entry(dnode, NULL, true);
ri = ifp->info;
XFREE(MTYPE_RIP_INTERFACE_STRING, ri->key_chain);
.nodes = {
{
.xpath = "/frr-ripd:ripd/instance",
- .cbs.create = ripd_instance_create,
- .cbs.destroy = ripd_instance_destroy,
- .cbs.get_next = ripd_instance_get_next,
- .cbs.get_keys = ripd_instance_get_keys,
- .cbs.lookup_entry = ripd_instance_lookup_entry,
- .cbs.cli_show = cli_show_router_rip,
+ .cbs = {
+ .cli_show = cli_show_router_rip,
+ .create = ripd_instance_create,
+ .destroy = ripd_instance_destroy,
+ .get_keys = ripd_instance_get_keys,
+ .get_next = ripd_instance_get_next,
+ .lookup_entry = ripd_instance_lookup_entry,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/allow-ecmp",
- .cbs.modify = ripd_instance_allow_ecmp_modify,
- .cbs.cli_show = cli_show_rip_allow_ecmp,
+ .cbs = {
+ .cli_show = cli_show_rip_allow_ecmp,
+ .modify = ripd_instance_allow_ecmp_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/default-information-originate",
- .cbs.modify = ripd_instance_default_information_originate_modify,
- .cbs.cli_show = cli_show_rip_default_information_originate,
+ .cbs = {
+ .cli_show = cli_show_rip_default_information_originate,
+ .modify = ripd_instance_default_information_originate_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/default-metric",
- .cbs.modify = ripd_instance_default_metric_modify,
- .cbs.cli_show = cli_show_rip_default_metric,
+ .cbs = {
+ .cli_show = cli_show_rip_default_metric,
+ .modify = ripd_instance_default_metric_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/distance/default",
- .cbs.modify = ripd_instance_distance_default_modify,
- .cbs.cli_show = cli_show_rip_distance,
+ .cbs = {
+ .cli_show = cli_show_rip_distance,
+ .modify = ripd_instance_distance_default_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/distance/source",
- .cbs.create = ripd_instance_distance_source_create,
- .cbs.destroy = ripd_instance_distance_source_destroy,
- .cbs.cli_show = cli_show_rip_distance_source,
+ .cbs = {
+ .cli_show = cli_show_rip_distance_source,
+ .create = ripd_instance_distance_source_create,
+ .destroy = ripd_instance_distance_source_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/distance/source/distance",
- .cbs.modify = ripd_instance_distance_source_distance_modify,
+ .cbs = {
+ .modify = ripd_instance_distance_source_distance_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/distance/source/access-list",
- .cbs.modify = ripd_instance_distance_source_access_list_modify,
- .cbs.destroy = ripd_instance_distance_source_access_list_destroy,
+ .cbs = {
+ .destroy = ripd_instance_distance_source_access_list_destroy,
+ .modify = ripd_instance_distance_source_access_list_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/explicit-neighbor",
- .cbs.create = ripd_instance_explicit_neighbor_create,
- .cbs.destroy = ripd_instance_explicit_neighbor_destroy,
- .cbs.cli_show = cli_show_rip_neighbor,
+ .cbs = {
+ .cli_show = cli_show_rip_neighbor,
+ .create = ripd_instance_explicit_neighbor_create,
+ .destroy = ripd_instance_explicit_neighbor_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/network",
- .cbs.create = ripd_instance_network_create,
- .cbs.destroy = ripd_instance_network_destroy,
- .cbs.cli_show = cli_show_rip_network_prefix,
+ .cbs = {
+ .cli_show = cli_show_rip_network_prefix,
+ .create = ripd_instance_network_create,
+ .destroy = ripd_instance_network_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/interface",
- .cbs.create = ripd_instance_interface_create,
- .cbs.destroy = ripd_instance_interface_destroy,
- .cbs.cli_show = cli_show_rip_network_interface,
+ .cbs = {
+ .cli_show = cli_show_rip_network_interface,
+ .create = ripd_instance_interface_create,
+ .destroy = ripd_instance_interface_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/offset-list",
- .cbs.create = ripd_instance_offset_list_create,
- .cbs.destroy = ripd_instance_offset_list_destroy,
- .cbs.cli_show = cli_show_rip_offset_list,
+ .cbs = {
+ .cli_show = cli_show_rip_offset_list,
+ .create = ripd_instance_offset_list_create,
+ .destroy = ripd_instance_offset_list_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/offset-list/access-list",
- .cbs.modify = ripd_instance_offset_list_access_list_modify,
+ .cbs = {
+ .modify = ripd_instance_offset_list_access_list_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/offset-list/metric",
- .cbs.modify = ripd_instance_offset_list_metric_modify,
+ .cbs = {
+ .modify = ripd_instance_offset_list_metric_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/passive-default",
- .cbs.modify = ripd_instance_passive_default_modify,
- .cbs.cli_show = cli_show_rip_passive_default,
+ .cbs = {
+ .cli_show = cli_show_rip_passive_default,
+ .modify = ripd_instance_passive_default_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/passive-interface",
- .cbs.create = ripd_instance_passive_interface_create,
- .cbs.destroy = ripd_instance_passive_interface_destroy,
- .cbs.cli_show = cli_show_rip_passive_interface,
+ .cbs = {
+ .cli_show = cli_show_rip_passive_interface,
+ .create = ripd_instance_passive_interface_create,
+ .destroy = ripd_instance_passive_interface_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/non-passive-interface",
- .cbs.create = ripd_instance_non_passive_interface_create,
- .cbs.destroy = ripd_instance_non_passive_interface_destroy,
- .cbs.cli_show = cli_show_rip_non_passive_interface,
+ .cbs = {
+ .cli_show = cli_show_rip_non_passive_interface,
+ .create = ripd_instance_non_passive_interface_create,
+ .destroy = ripd_instance_non_passive_interface_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/redistribute",
- .cbs.create = ripd_instance_redistribute_create,
- .cbs.destroy = ripd_instance_redistribute_destroy,
- .cbs.apply_finish = ripd_instance_redistribute_apply_finish,
- .cbs.cli_show = cli_show_rip_redistribute,
+ .cbs = {
+ .apply_finish = ripd_instance_redistribute_apply_finish,
+ .cli_show = cli_show_rip_redistribute,
+ .create = ripd_instance_redistribute_create,
+ .destroy = ripd_instance_redistribute_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/redistribute/route-map",
- .cbs.modify = ripd_instance_redistribute_route_map_modify,
- .cbs.destroy = ripd_instance_redistribute_route_map_destroy,
+ .cbs = {
+ .destroy = ripd_instance_redistribute_route_map_destroy,
+ .modify = ripd_instance_redistribute_route_map_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/redistribute/metric",
- .cbs.modify = ripd_instance_redistribute_metric_modify,
- .cbs.destroy = ripd_instance_redistribute_metric_destroy,
+ .cbs = {
+ .destroy = ripd_instance_redistribute_metric_destroy,
+ .modify = ripd_instance_redistribute_metric_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/static-route",
- .cbs.create = ripd_instance_static_route_create,
- .cbs.destroy = ripd_instance_static_route_destroy,
- .cbs.cli_show = cli_show_rip_route,
+ .cbs = {
+ .cli_show = cli_show_rip_route,
+ .create = ripd_instance_static_route_create,
+ .destroy = ripd_instance_static_route_destroy,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/timers",
- .cbs.apply_finish = ripd_instance_timers_apply_finish,
- .cbs.cli_show = cli_show_rip_timers,
+ .cbs = {
+ .apply_finish = ripd_instance_timers_apply_finish,
+ .cli_show = cli_show_rip_timers,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/timers/flush-interval",
- .cbs.modify = ripd_instance_timers_flush_interval_modify,
+ .cbs = {
+ .modify = ripd_instance_timers_flush_interval_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/timers/holddown-interval",
- .cbs.modify = ripd_instance_timers_holddown_interval_modify,
+ .cbs = {
+ .modify = ripd_instance_timers_holddown_interval_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/timers/update-interval",
- .cbs.modify = ripd_instance_timers_update_interval_modify,
+ .cbs = {
+ .modify = ripd_instance_timers_update_interval_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/version",
- .cbs.cli_show = cli_show_rip_version,
+ .cbs = {
+ .cli_show = cli_show_rip_version,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/version/receive",
- .cbs.modify = ripd_instance_version_receive_modify,
+ .cbs = {
+ .modify = ripd_instance_version_receive_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/version/send",
- .cbs.modify = ripd_instance_version_send_modify,
+ .cbs = {
+ .modify = ripd_instance_version_send_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/split-horizon",
- .cbs.modify = lib_interface_rip_split_horizon_modify,
- .cbs.cli_show = cli_show_ip_rip_split_horizon,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_split_horizon,
+ .modify = lib_interface_rip_split_horizon_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/v2-broadcast",
- .cbs.modify = lib_interface_rip_v2_broadcast_modify,
- .cbs.cli_show = cli_show_ip_rip_v2_broadcast,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_v2_broadcast,
+ .modify = lib_interface_rip_v2_broadcast_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/version-receive",
- .cbs.modify = lib_interface_rip_version_receive_modify,
- .cbs.cli_show = cli_show_ip_rip_receive_version,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_receive_version,
+ .modify = lib_interface_rip_version_receive_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/version-send",
- .cbs.modify = lib_interface_rip_version_send_modify,
- .cbs.cli_show = cli_show_ip_rip_send_version,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_send_version,
+ .modify = lib_interface_rip_version_send_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme",
- .cbs.cli_show = cli_show_ip_rip_authentication_scheme,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_authentication_scheme,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme/mode",
- .cbs.modify = lib_interface_rip_authentication_scheme_mode_modify,
+ .cbs = {
+ .modify = lib_interface_rip_authentication_scheme_mode_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme/md5-auth-length",
- .cbs.modify = lib_interface_rip_authentication_scheme_md5_auth_length_modify,
- .cbs.destroy = lib_interface_rip_authentication_scheme_md5_auth_length_destroy,
+ .cbs = {
+ .destroy = lib_interface_rip_authentication_scheme_md5_auth_length_destroy,
+ .modify = lib_interface_rip_authentication_scheme_md5_auth_length_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-password",
- .cbs.modify = lib_interface_rip_authentication_password_modify,
- .cbs.destroy = lib_interface_rip_authentication_password_destroy,
- .cbs.cli_show = cli_show_ip_rip_authentication_string,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_authentication_string,
+ .destroy = lib_interface_rip_authentication_password_destroy,
+ .modify = lib_interface_rip_authentication_password_modify,
+ },
},
{
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-key-chain",
- .cbs.modify = lib_interface_rip_authentication_key_chain_modify,
- .cbs.destroy = lib_interface_rip_authentication_key_chain_destroy,
- .cbs.cli_show = cli_show_ip_rip_authentication_key_chain,
+ .cbs = {
+ .cli_show = cli_show_ip_rip_authentication_key_chain,
+ .destroy = lib_interface_rip_authentication_key_chain_destroy,
+ .modify = lib_interface_rip_authentication_key_chain_modify,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor",
- .cbs.get_next = ripd_instance_state_neighbors_neighbor_get_next,
- .cbs.get_keys = ripd_instance_state_neighbors_neighbor_get_keys,
- .cbs.lookup_entry = ripd_instance_state_neighbors_neighbor_lookup_entry,
+ .cbs = {
+ .get_keys = ripd_instance_state_neighbors_neighbor_get_keys,
+ .get_next = ripd_instance_state_neighbors_neighbor_get_next,
+ .lookup_entry = ripd_instance_state_neighbors_neighbor_lookup_entry,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/address",
- .cbs.get_elem = ripd_instance_state_neighbors_neighbor_address_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_neighbors_neighbor_address_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/last-update",
- .cbs.get_elem = ripd_instance_state_neighbors_neighbor_last_update_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_neighbors_neighbor_last_update_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/bad-packets-rcvd",
- .cbs.get_elem = ripd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/neighbors/neighbor/bad-routes-rcvd",
- .cbs.get_elem = ripd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/routes/route",
- .cbs.get_next = ripd_instance_state_routes_route_get_next,
- .cbs.get_keys = ripd_instance_state_routes_route_get_keys,
- .cbs.lookup_entry = ripd_instance_state_routes_route_lookup_entry,
+ .cbs = {
+ .get_keys = ripd_instance_state_routes_route_get_keys,
+ .get_next = ripd_instance_state_routes_route_get_next,
+ .lookup_entry = ripd_instance_state_routes_route_lookup_entry,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/routes/route/prefix",
- .cbs.get_elem = ripd_instance_state_routes_route_prefix_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_routes_route_prefix_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/routes/route/next-hop",
- .cbs.get_elem = ripd_instance_state_routes_route_next_hop_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_routes_route_next_hop_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/routes/route/interface",
- .cbs.get_elem = ripd_instance_state_routes_route_interface_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_routes_route_interface_get_elem,
+ },
},
{
.xpath = "/frr-ripd:ripd/instance/state/routes/route/metric",
- .cbs.get_elem = ripd_instance_state_routes_route_metric_get_elem,
+ .cbs = {
+ .get_elem = ripd_instance_state_routes_route_metric_get_elem,
+ },
},
{
.xpath = "/frr-ripd:clear-rip-route",
- .cbs.rpc = clear_rip_route_rpc,
+ .cbs = {
+ .rpc = clear_rip_route_rpc,
+ },
},
{
.xpath = NULL,