libs, daemons: changes to permit c++ compilation

Some misc changes to resolve some c++ compilation errors.
The goal is only to permit an external module - a plugin,
for example - to see frr headers, not to support or encourage
contributions in c++. The changes include: avoiding use
of keywords like 'new', 'delete'; cleaning up implicit
type-casting from 'void *' in several places.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
Mark Stapp 2019-01-15 13:34:23 -05:00 committed by Renato Westphal
parent fb85ce1b81
commit d01b92fd75
13 changed files with 91 additions and 80 deletions

View File

@ -2749,7 +2749,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance", .xpath = "/frr-isisd:isis/instance",
.cbs.create = isis_instance_create, .cbs.create = isis_instance_create,
.cbs.delete = isis_instance_delete, .cbs.destroy = isis_instance_delete,
.cbs.cli_show = cli_show_router_isis, .cbs.cli_show = cli_show_router_isis,
.priority = NB_DFLT_PRIORITY - 1, .priority = NB_DFLT_PRIORITY - 1,
}, },
@ -2761,7 +2761,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/area-address", .xpath = "/frr-isisd:isis/instance/area-address",
.cbs.create = isis_instance_area_address_create, .cbs.create = isis_instance_area_address_create,
.cbs.delete = isis_instance_area_address_delete, .cbs.destroy = isis_instance_area_address_delete,
.cbs.cli_show = cli_show_isis_area_address, .cbs.cli_show = cli_show_isis_area_address,
}, },
{ {
@ -2833,7 +2833,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay", .xpath = "/frr-isisd:isis/instance/spf/ietf-backoff-delay",
.cbs.create = isis_instance_spf_ietf_backoff_delay_create, .cbs.create = isis_instance_spf_ietf_backoff_delay_create,
.cbs.delete = isis_instance_spf_ietf_backoff_delay_delete, .cbs.destroy = isis_instance_spf_ietf_backoff_delay_delete,
.cbs.apply_finish = ietf_backoff_delay_apply_finish, .cbs.apply_finish = ietf_backoff_delay_apply_finish,
.cbs.cli_show = cli_show_isis_spf_ietf_backoff, .cbs.cli_show = cli_show_isis_spf_ietf_backoff,
}, },
@ -2872,7 +2872,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/area-password", .xpath = "/frr-isisd:isis/instance/area-password",
.cbs.create = isis_instance_area_password_create, .cbs.create = isis_instance_area_password_create,
.cbs.delete = isis_instance_area_password_delete, .cbs.destroy = isis_instance_area_password_delete,
.cbs.apply_finish = area_password_apply_finish, .cbs.apply_finish = area_password_apply_finish,
.cbs.cli_show = cli_show_isis_area_pwd, .cbs.cli_show = cli_show_isis_area_pwd,
}, },
@ -2891,7 +2891,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/domain-password", .xpath = "/frr-isisd:isis/instance/domain-password",
.cbs.create = isis_instance_domain_password_create, .cbs.create = isis_instance_domain_password_create,
.cbs.delete = isis_instance_domain_password_delete, .cbs.destroy = isis_instance_domain_password_delete,
.cbs.apply_finish = domain_password_apply_finish, .cbs.apply_finish = domain_password_apply_finish,
.cbs.cli_show = cli_show_isis_domain_pwd, .cbs.cli_show = cli_show_isis_domain_pwd,
}, },
@ -2910,7 +2910,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4",
.cbs.create = isis_instance_default_information_originate_ipv4_create, .cbs.create = isis_instance_default_information_originate_ipv4_create,
.cbs.delete = isis_instance_default_information_originate_ipv4_delete, .cbs.destroy = isis_instance_default_information_originate_ipv4_delete,
.cbs.apply_finish = default_info_origin_ipv4_apply_finish, .cbs.apply_finish = default_info_origin_ipv4_apply_finish,
.cbs.cli_show = cli_show_isis_def_origin_ipv4, .cbs.cli_show = cli_show_isis_def_origin_ipv4,
}, },
@ -2921,17 +2921,17 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/route-map", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/route-map",
.cbs.modify = isis_instance_default_information_originate_ipv4_route_map_modify, .cbs.modify = isis_instance_default_information_originate_ipv4_route_map_modify,
.cbs.delete = isis_instance_default_information_originate_ipv4_route_map_delete, .cbs.destroy = isis_instance_default_information_originate_ipv4_route_map_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/metric", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv4/metric",
.cbs.modify = isis_instance_default_information_originate_ipv4_metric_modify, .cbs.modify = isis_instance_default_information_originate_ipv4_metric_modify,
.cbs.delete = isis_instance_default_information_originate_ipv4_metric_delete, .cbs.destroy = isis_instance_default_information_originate_ipv4_metric_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6",
.cbs.create = isis_instance_default_information_originate_ipv6_create, .cbs.create = isis_instance_default_information_originate_ipv6_create,
.cbs.delete = isis_instance_default_information_originate_ipv6_delete, .cbs.destroy = isis_instance_default_information_originate_ipv6_delete,
.cbs.apply_finish = default_info_origin_ipv6_apply_finish, .cbs.apply_finish = default_info_origin_ipv6_apply_finish,
.cbs.cli_show = cli_show_isis_def_origin_ipv6, .cbs.cli_show = cli_show_isis_def_origin_ipv6,
}, },
@ -2942,51 +2942,51 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/route-map", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/route-map",
.cbs.modify = isis_instance_default_information_originate_ipv6_route_map_modify, .cbs.modify = isis_instance_default_information_originate_ipv6_route_map_modify,
.cbs.delete = isis_instance_default_information_originate_ipv6_route_map_delete, .cbs.destroy = isis_instance_default_information_originate_ipv6_route_map_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/metric", .xpath = "/frr-isisd:isis/instance/default-information-originate/ipv6/metric",
.cbs.modify = isis_instance_default_information_originate_ipv6_metric_modify, .cbs.modify = isis_instance_default_information_originate_ipv6_metric_modify,
.cbs.delete = isis_instance_default_information_originate_ipv6_metric_delete, .cbs.destroy = isis_instance_default_information_originate_ipv6_metric_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv4", .xpath = "/frr-isisd:isis/instance/redistribute/ipv4",
.cbs.create = isis_instance_redistribute_ipv4_create, .cbs.create = isis_instance_redistribute_ipv4_create,
.cbs.delete = isis_instance_redistribute_ipv4_delete, .cbs.destroy = isis_instance_redistribute_ipv4_delete,
.cbs.apply_finish = redistribute_ipv4_apply_finish, .cbs.apply_finish = redistribute_ipv4_apply_finish,
.cbs.cli_show = cli_show_isis_redistribute_ipv4, .cbs.cli_show = cli_show_isis_redistribute_ipv4,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv4/route-map", .xpath = "/frr-isisd:isis/instance/redistribute/ipv4/route-map",
.cbs.modify = isis_instance_redistribute_ipv4_route_map_modify, .cbs.modify = isis_instance_redistribute_ipv4_route_map_modify,
.cbs.delete = isis_instance_redistribute_ipv4_route_map_delete, .cbs.destroy = isis_instance_redistribute_ipv4_route_map_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv4/metric", .xpath = "/frr-isisd:isis/instance/redistribute/ipv4/metric",
.cbs.modify = isis_instance_redistribute_ipv4_metric_modify, .cbs.modify = isis_instance_redistribute_ipv4_metric_modify,
.cbs.delete = isis_instance_redistribute_ipv4_metric_delete, .cbs.destroy = isis_instance_redistribute_ipv4_metric_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv6", .xpath = "/frr-isisd:isis/instance/redistribute/ipv6",
.cbs.create = isis_instance_redistribute_ipv6_create, .cbs.create = isis_instance_redistribute_ipv6_create,
.cbs.delete = isis_instance_redistribute_ipv6_delete, .cbs.destroy = isis_instance_redistribute_ipv6_delete,
.cbs.apply_finish = redistribute_ipv6_apply_finish, .cbs.apply_finish = redistribute_ipv6_apply_finish,
.cbs.cli_show = cli_show_isis_redistribute_ipv6, .cbs.cli_show = cli_show_isis_redistribute_ipv6,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv6/route-map", .xpath = "/frr-isisd:isis/instance/redistribute/ipv6/route-map",
.cbs.modify = isis_instance_redistribute_ipv6_route_map_modify, .cbs.modify = isis_instance_redistribute_ipv6_route_map_modify,
.cbs.delete = isis_instance_redistribute_ipv6_route_map_delete, .cbs.destroy = isis_instance_redistribute_ipv6_route_map_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/redistribute/ipv6/metric", .xpath = "/frr-isisd:isis/instance/redistribute/ipv6/metric",
.cbs.modify = isis_instance_redistribute_ipv6_metric_modify, .cbs.modify = isis_instance_redistribute_ipv6_metric_modify,
.cbs.delete = isis_instance_redistribute_ipv6_metric_delete, .cbs.destroy = isis_instance_redistribute_ipv6_metric_delete,
}, },
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-multicast", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-multicast",
.cbs.create = isis_instance_multi_topology_ipv4_multicast_create, .cbs.create = isis_instance_multi_topology_ipv4_multicast_create,
.cbs.delete = isis_instance_multi_topology_ipv4_multicast_delete, .cbs.destroy = isis_instance_multi_topology_ipv4_multicast_delete,
.cbs.cli_show = cli_show_isis_mt_ipv4_multicast, .cbs.cli_show = cli_show_isis_mt_ipv4_multicast,
}, },
{ {
@ -2996,7 +2996,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-management", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv4-management",
.cbs.create = isis_instance_multi_topology_ipv4_management_create, .cbs.create = isis_instance_multi_topology_ipv4_management_create,
.cbs.delete = isis_instance_multi_topology_ipv4_management_delete, .cbs.destroy = isis_instance_multi_topology_ipv4_management_delete,
.cbs.cli_show = cli_show_isis_mt_ipv4_mgmt, .cbs.cli_show = cli_show_isis_mt_ipv4_mgmt,
}, },
{ {
@ -3006,7 +3006,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-unicast", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-unicast",
.cbs.create = isis_instance_multi_topology_ipv6_unicast_create, .cbs.create = isis_instance_multi_topology_ipv6_unicast_create,
.cbs.delete = isis_instance_multi_topology_ipv6_unicast_delete, .cbs.destroy = isis_instance_multi_topology_ipv6_unicast_delete,
.cbs.cli_show = cli_show_isis_mt_ipv6_unicast, .cbs.cli_show = cli_show_isis_mt_ipv6_unicast,
}, },
{ {
@ -3016,7 +3016,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-multicast", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-multicast",
.cbs.create = isis_instance_multi_topology_ipv6_multicast_create, .cbs.create = isis_instance_multi_topology_ipv6_multicast_create,
.cbs.delete = isis_instance_multi_topology_ipv6_multicast_delete, .cbs.destroy = isis_instance_multi_topology_ipv6_multicast_delete,
.cbs.cli_show = cli_show_isis_mt_ipv6_multicast, .cbs.cli_show = cli_show_isis_mt_ipv6_multicast,
}, },
{ {
@ -3026,7 +3026,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-management", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-management",
.cbs.create = isis_instance_multi_topology_ipv6_management_create, .cbs.create = isis_instance_multi_topology_ipv6_management_create,
.cbs.delete = isis_instance_multi_topology_ipv6_management_delete, .cbs.destroy = isis_instance_multi_topology_ipv6_management_delete,
.cbs.cli_show = cli_show_isis_mt_ipv6_mgmt, .cbs.cli_show = cli_show_isis_mt_ipv6_mgmt,
}, },
{ {
@ -3036,7 +3036,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-dstsrc", .xpath = "/frr-isisd:isis/instance/multi-topology/ipv6-dstsrc",
.cbs.create = isis_instance_multi_topology_ipv6_dstsrc_create, .cbs.create = isis_instance_multi_topology_ipv6_dstsrc_create,
.cbs.delete = isis_instance_multi_topology_ipv6_dstsrc_delete, .cbs.destroy = isis_instance_multi_topology_ipv6_dstsrc_delete,
.cbs.cli_show = cli_show_isis_mt_ipv6_dstsrc, .cbs.cli_show = cli_show_isis_mt_ipv6_dstsrc,
}, },
{ {
@ -3051,19 +3051,19 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-isisd:isis/mpls-te", .xpath = "/frr-isisd:isis/mpls-te",
.cbs.create = isis_mpls_te_create, .cbs.create = isis_mpls_te_create,
.cbs.delete = isis_mpls_te_delete, .cbs.destroy = isis_mpls_te_delete,
.cbs.cli_show = cli_show_isis_mpls_te, .cbs.cli_show = cli_show_isis_mpls_te,
}, },
{ {
.xpath = "/frr-isisd:isis/mpls-te/router-address", .xpath = "/frr-isisd:isis/mpls-te/router-address",
.cbs.modify = isis_mpls_te_router_address_modify, .cbs.modify = isis_mpls_te_router_address_modify,
.cbs.delete = isis_mpls_te_router_address_delete, .cbs.destroy = isis_mpls_te_router_address_delete,
.cbs.cli_show = cli_show_isis_mpls_te_router_addr, .cbs.cli_show = cli_show_isis_mpls_te_router_addr,
}, },
{ {
.xpath = "/frr-interface:lib/interface/frr-isisd:isis", .xpath = "/frr-interface:lib/interface/frr-isisd:isis",
.cbs.create = lib_interface_isis_create, .cbs.create = lib_interface_isis_create,
.cbs.delete = lib_interface_isis_delete, .cbs.destroy = lib_interface_isis_delete,
}, },
{ {
.xpath = "/frr-interface:lib/interface/frr-isisd:isis/area-tag", .xpath = "/frr-interface:lib/interface/frr-isisd:isis/area-tag",
@ -3174,7 +3174,7 @@ const struct frr_yang_module_info frr_isisd_info = {
{ {
.xpath = "/frr-interface:lib/interface/frr-isisd:isis/password", .xpath = "/frr-interface:lib/interface/frr-isisd:isis/password",
.cbs.create = lib_interface_isis_password_create, .cbs.create = lib_interface_isis_password_create,
.cbs.delete = lib_interface_isis_password_delete, .cbs.destroy = lib_interface_isis_password_delete,
.cbs.cli_show = cli_show_ip_isis_password, .cbs.cli_show = cli_show_ip_isis_password,
}, },
{ {

View File

@ -1379,13 +1379,13 @@ const struct frr_yang_module_info frr_interface_info = {
{ {
.xpath = "/frr-interface:lib/interface", .xpath = "/frr-interface:lib/interface",
.cbs.create = lib_interface_create, .cbs.create = lib_interface_create,
.cbs.delete = lib_interface_delete, .cbs.destroy = lib_interface_delete,
.cbs.cli_show = cli_show_interface, .cbs.cli_show = cli_show_interface,
}, },
{ {
.xpath = "/frr-interface:lib/interface/description", .xpath = "/frr-interface:lib/interface/description",
.cbs.modify = lib_interface_description_modify, .cbs.modify = lib_interface_description_modify,
.cbs.delete = lib_interface_description_delete, .cbs.destroy = lib_interface_description_delete,
.cbs.cli_show = cli_show_interface_desc, .cbs.cli_show = cli_show_interface_desc,
}, },
{ {

View File

@ -92,12 +92,12 @@ DECLARE_QOBJ_TYPE(nexthop_group_cmd)
* code * code
*/ */
void nexthop_group_init( void nexthop_group_init(
void (*new)(const char *name), void (*create)(const char *name),
void (*add_nexthop)(const struct nexthop_group_cmd *nhgc, void (*add_nexthop)(const struct nexthop_group_cmd *nhgc,
const struct nexthop *nhop), const struct nexthop *nhop),
void (*del_nexthop)(const struct nexthop_group_cmd *nhgc, void (*del_nexthop)(const struct nexthop_group_cmd *nhgc,
const struct nexthop *nhop), const struct nexthop *nhop),
void (*delete)(const char *name)); void (*destroy)(const char *name));
void nexthop_group_enable_vrf(struct vrf *vrf); void nexthop_group_enable_vrf(struct vrf *vrf);
void nexthop_group_disable_vrf(struct vrf *vrf); void nexthop_group_disable_vrf(struct vrf *vrf);

View File

@ -185,7 +185,7 @@ static unsigned int nb_node_validate_cbs(const struct nb_node *nb_node)
error += nb_node_validate_cb(nb_node, NB_OP_MODIFY, error += nb_node_validate_cb(nb_node, NB_OP_MODIFY,
!!nb_node->cbs.modify, false); !!nb_node->cbs.modify, false);
error += nb_node_validate_cb(nb_node, NB_OP_DELETE, error += nb_node_validate_cb(nb_node, NB_OP_DELETE,
!!nb_node->cbs.delete, false); !!nb_node->cbs.destroy, false);
error += nb_node_validate_cb(nb_node, NB_OP_MOVE, !!nb_node->cbs.move, error += nb_node_validate_cb(nb_node, NB_OP_MOVE, !!nb_node->cbs.move,
false); false);
error += nb_node_validate_cb(nb_node, NB_OP_APPLY_FINISH, error += nb_node_validate_cb(nb_node, NB_OP_APPLY_FINISH,
@ -742,7 +742,7 @@ static int nb_configuration_callback(const enum nb_event event,
ret = (*nb_node->cbs.modify)(event, dnode, resource); ret = (*nb_node->cbs.modify)(event, dnode, resource);
break; break;
case NB_OP_DELETE: case NB_OP_DELETE:
ret = (*nb_node->cbs.delete)(event, dnode); ret = (*nb_node->cbs.destroy)(event, dnode);
break; break;
case NB_OP_MOVE: case NB_OP_MOVE:
ret = (*nb_node->cbs.move)(event, dnode); ret = (*nb_node->cbs.move)(event, dnode);

View File

@ -168,7 +168,7 @@ struct nb_callbacks {
* - NB_ERR_INCONSISTENCY when an inconsistency was detected. * - NB_ERR_INCONSISTENCY when an inconsistency was detected.
* - NB_ERR for other errors. * - NB_ERR for other errors.
*/ */
int (*delete)(enum nb_event event, const struct lyd_node *dnode); int (*destroy)(enum nb_event event, const struct lyd_node *dnode);
/* /*
* Configuration callback. * Configuration callback.

View File

@ -397,31 +397,36 @@ int _rb_check(const struct rb_type *, void *, unsigned long);
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_INSERT(struct _name *head, struct _type *elm) \ *_name##_RB_INSERT(struct _name *head, struct _type *elm) \
{ \ { \
return _rb_insert(_name##_RB_TYPE, &head->rbh_root, elm); \ return (struct _type *)_rb_insert( \
_name##_RB_TYPE, &head->rbh_root, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_REMOVE(struct _name *head, struct _type *elm) \ *_name##_RB_REMOVE(struct _name *head, struct _type *elm) \
{ \ { \
return _rb_remove(_name##_RB_TYPE, &head->rbh_root, elm); \ return (struct _type *)_rb_remove( \
_name##_RB_TYPE, &head->rbh_root, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_FIND(struct _name *head, const struct _type *key) \ *_name##_RB_FIND(struct _name *head, const struct _type *key) \
{ \ { \
return _rb_find(_name##_RB_TYPE, &head->rbh_root, key); \ return (struct _type *)_rb_find( \
_name##_RB_TYPE, &head->rbh_root, key); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_NFIND(struct _name *head, const struct _type *key) \ *_name##_RB_NFIND(struct _name *head, const struct _type *key) \
{ \ { \
return _rb_nfind(_name##_RB_TYPE, &head->rbh_root, key); \ return (struct _type *)_rb_nfind( \
_name##_RB_TYPE, &head->rbh_root, key); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_ROOT(struct _name *head) \ *_name##_RB_ROOT(struct _name *head) \
{ \ { \
return _rb_root(_name##_RB_TYPE, &head->rbh_root); \ return (struct _type *)_rb_root( \
_name##_RB_TYPE, &head->rbh_root); \
} \ } \
\ \
__attribute__((__unused__)) static inline int _name##_RB_EMPTY( \ __attribute__((__unused__)) static inline int _name##_RB_EMPTY( \
@ -433,43 +438,45 @@ int _rb_check(const struct rb_type *, void *, unsigned long);
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_MIN(struct _name *head) \ *_name##_RB_MIN(struct _name *head) \
{ \ { \
return _rb_min(_name##_RB_TYPE, &head->rbh_root); \ return (struct _type *)_rb_min( \
_name##_RB_TYPE, &head->rbh_root); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_MAX(struct _name *head) \ *_name##_RB_MAX(struct _name *head) \
{ \ { \
return _rb_max(_name##_RB_TYPE, &head->rbh_root); \ return (struct _type *)_rb_max( \
_name##_RB_TYPE, &head->rbh_root); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_NEXT(struct _type *elm) \ *_name##_RB_NEXT(struct _type *elm) \
{ \ { \
return _rb_next(_name##_RB_TYPE, elm); \ return (struct _type *)_rb_next(_name##_RB_TYPE, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_PREV(struct _type *elm) \ *_name##_RB_PREV(struct _type *elm) \
{ \ { \
return _rb_prev(_name##_RB_TYPE, elm); \ return (struct _type *)_rb_prev(_name##_RB_TYPE, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_LEFT(struct _type *elm) \ *_name##_RB_LEFT(struct _type *elm) \
{ \ { \
return _rb_left(_name##_RB_TYPE, elm); \ return (struct _type *)_rb_left(_name##_RB_TYPE, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_RIGHT(struct _type *elm) \ *_name##_RB_RIGHT(struct _type *elm) \
{ \ { \
return _rb_right(_name##_RB_TYPE, elm); \ return (struct _type *)_rb_right(_name##_RB_TYPE, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline struct _type \ __attribute__((__unused__)) static inline struct _type \
*_name##_RB_PARENT(struct _type *elm) \ *_name##_RB_PARENT(struct _type *elm) \
{ \ { \
return _rb_parent(_name##_RB_TYPE, elm); \ return (struct _type *)_rb_parent(_name##_RB_TYPE, elm); \
} \ } \
\ \
__attribute__((__unused__)) static inline void _name##_RB_SET_LEFT( \ __attribute__((__unused__)) static inline void _name##_RB_SET_LEFT( \

View File

@ -84,7 +84,8 @@ static inline int rnode_is_srcnode(struct route_node *rn)
static inline struct route_table *srcdest_rnode_table(struct route_node *rn) static inline struct route_table *srcdest_rnode_table(struct route_node *rn)
{ {
if (rnode_is_srcnode(rn)) { if (rnode_is_srcnode(rn)) {
struct route_node *dst_rn = route_table_get_info(rn->table); struct route_node *dst_rn =
(struct route_node *)route_table_get_info(rn->table);
return dst_rn->table; return dst_rn->table;
} else { } else {
return rn->table; return rn->table;

View File

@ -275,11 +275,14 @@ static inline struct route_node *route_table_iter_next(route_table_iter_t *iter)
break; break;
case RT_ITER_STATE_PAUSED: case RT_ITER_STATE_PAUSED:
{
union prefixconstptr cp = {.p = &iter->pause_prefix};
/* /*
* Start with the node following pause_prefix. * Start with the node following pause_prefix.
*/ */
node = route_table_get_next(iter->table, &iter->pause_prefix); node = route_table_get_next(iter->table, cp);
}
break; break;
case RT_ITER_STATE_DONE: case RT_ITER_STATE_DONE:

View File

@ -471,7 +471,7 @@ static const struct cmd_variable_handler vrf_var_handlers[] = {
/* Initialize VRF module. */ /* Initialize VRF module. */
void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *), void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
int (*disable)(struct vrf *), int (*delete)(struct vrf *), int (*disable)(struct vrf *), int (*destroy)(struct vrf *),
int ((*update)(struct vrf *))) int ((*update)(struct vrf *)))
{ {
struct vrf *default_vrf; struct vrf *default_vrf;
@ -485,7 +485,7 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
vrf_master.vrf_new_hook = create; vrf_master.vrf_new_hook = create;
vrf_master.vrf_enable_hook = enable; vrf_master.vrf_enable_hook = enable;
vrf_master.vrf_disable_hook = disable; vrf_master.vrf_disable_hook = disable;
vrf_master.vrf_delete_hook = delete; vrf_master.vrf_delete_hook = destroy;
vrf_master.vrf_update_name_hook = update; vrf_master.vrf_update_name_hook = update;
/* The default VRF always exists. */ /* The default VRF always exists. */

View File

@ -200,7 +200,7 @@ extern int vrf_bitmap_check(vrf_bitmap_t, vrf_id_t);
* the system ( 2 and 3 ) above. * the system ( 2 and 3 ) above.
*/ */
extern void vrf_init(int (*create)(struct vrf *vrf), int (*enable)(struct vrf *vrf), extern void vrf_init(int (*create)(struct vrf *vrf), int (*enable)(struct vrf *vrf),
int (*disable)(struct vrf *vrf), int (*delete)(struct vrf *vrf), int (*disable)(struct vrf *vrf), int (*destroy)(struct vrf *vrf),
int (*update)(struct vrf *vrf)); int (*update)(struct vrf *vrf));
/* /*

View File

@ -1305,7 +1305,7 @@ const struct frr_yang_module_info frr_ripd_info = {
{ {
.xpath = "/frr-ripd:ripd/instance", .xpath = "/frr-ripd:ripd/instance",
.cbs.create = ripd_instance_create, .cbs.create = ripd_instance_create,
.cbs.delete = ripd_instance_delete, .cbs.destroy = ripd_instance_delete,
.cbs.cli_show = cli_show_router_rip, .cbs.cli_show = cli_show_router_rip,
}, },
{ {
@ -1331,7 +1331,7 @@ const struct frr_yang_module_info frr_ripd_info = {
{ {
.xpath = "/frr-ripd:ripd/instance/distance/source", .xpath = "/frr-ripd:ripd/instance/distance/source",
.cbs.create = ripd_instance_distance_source_create, .cbs.create = ripd_instance_distance_source_create,
.cbs.delete = ripd_instance_distance_source_delete, .cbs.destroy = ripd_instance_distance_source_delete,
.cbs.cli_show = cli_show_rip_distance_source, .cbs.cli_show = cli_show_rip_distance_source,
}, },
{ {
@ -1341,30 +1341,30 @@ const struct frr_yang_module_info frr_ripd_info = {
{ {
.xpath = "/frr-ripd:ripd/instance/distance/source/access-list", .xpath = "/frr-ripd:ripd/instance/distance/source/access-list",
.cbs.modify = ripd_instance_distance_source_access_list_modify, .cbs.modify = ripd_instance_distance_source_access_list_modify,
.cbs.delete = ripd_instance_distance_source_access_list_delete, .cbs.destroy = ripd_instance_distance_source_access_list_delete,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/explicit-neighbor", .xpath = "/frr-ripd:ripd/instance/explicit-neighbor",
.cbs.create = ripd_instance_explicit_neighbor_create, .cbs.create = ripd_instance_explicit_neighbor_create,
.cbs.delete = ripd_instance_explicit_neighbor_delete, .cbs.destroy = ripd_instance_explicit_neighbor_delete,
.cbs.cli_show = cli_show_rip_neighbor, .cbs.cli_show = cli_show_rip_neighbor,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/network", .xpath = "/frr-ripd:ripd/instance/network",
.cbs.create = ripd_instance_network_create, .cbs.create = ripd_instance_network_create,
.cbs.delete = ripd_instance_network_delete, .cbs.destroy = ripd_instance_network_delete,
.cbs.cli_show = cli_show_rip_network_prefix, .cbs.cli_show = cli_show_rip_network_prefix,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/interface", .xpath = "/frr-ripd:ripd/instance/interface",
.cbs.create = ripd_instance_interface_create, .cbs.create = ripd_instance_interface_create,
.cbs.delete = ripd_instance_interface_delete, .cbs.destroy = ripd_instance_interface_delete,
.cbs.cli_show = cli_show_rip_network_interface, .cbs.cli_show = cli_show_rip_network_interface,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/offset-list", .xpath = "/frr-ripd:ripd/instance/offset-list",
.cbs.create = ripd_instance_offset_list_create, .cbs.create = ripd_instance_offset_list_create,
.cbs.delete = ripd_instance_offset_list_delete, .cbs.destroy = ripd_instance_offset_list_delete,
.cbs.cli_show = cli_show_rip_offset_list, .cbs.cli_show = cli_show_rip_offset_list,
}, },
{ {
@ -1383,36 +1383,36 @@ const struct frr_yang_module_info frr_ripd_info = {
{ {
.xpath = "/frr-ripd:ripd/instance/passive-interface", .xpath = "/frr-ripd:ripd/instance/passive-interface",
.cbs.create = ripd_instance_passive_interface_create, .cbs.create = ripd_instance_passive_interface_create,
.cbs.delete = ripd_instance_passive_interface_delete, .cbs.destroy = ripd_instance_passive_interface_delete,
.cbs.cli_show = cli_show_rip_passive_interface, .cbs.cli_show = cli_show_rip_passive_interface,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/non-passive-interface", .xpath = "/frr-ripd:ripd/instance/non-passive-interface",
.cbs.create = ripd_instance_non_passive_interface_create, .cbs.create = ripd_instance_non_passive_interface_create,
.cbs.delete = ripd_instance_non_passive_interface_delete, .cbs.destroy = ripd_instance_non_passive_interface_delete,
.cbs.cli_show = cli_show_rip_non_passive_interface, .cbs.cli_show = cli_show_rip_non_passive_interface,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/redistribute", .xpath = "/frr-ripd:ripd/instance/redistribute",
.cbs.create = ripd_instance_redistribute_create, .cbs.create = ripd_instance_redistribute_create,
.cbs.delete = ripd_instance_redistribute_delete, .cbs.destroy = ripd_instance_redistribute_delete,
.cbs.apply_finish = ripd_instance_redistribute_apply_finish, .cbs.apply_finish = ripd_instance_redistribute_apply_finish,
.cbs.cli_show = cli_show_rip_redistribute, .cbs.cli_show = cli_show_rip_redistribute,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/redistribute/route-map", .xpath = "/frr-ripd:ripd/instance/redistribute/route-map",
.cbs.modify = ripd_instance_redistribute_route_map_modify, .cbs.modify = ripd_instance_redistribute_route_map_modify,
.cbs.delete = ripd_instance_redistribute_route_map_delete, .cbs.destroy = ripd_instance_redistribute_route_map_delete,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/redistribute/metric", .xpath = "/frr-ripd:ripd/instance/redistribute/metric",
.cbs.modify = ripd_instance_redistribute_metric_modify, .cbs.modify = ripd_instance_redistribute_metric_modify,
.cbs.delete = ripd_instance_redistribute_metric_delete, .cbs.destroy = ripd_instance_redistribute_metric_delete,
}, },
{ {
.xpath = "/frr-ripd:ripd/instance/static-route", .xpath = "/frr-ripd:ripd/instance/static-route",
.cbs.create = ripd_instance_static_route_create, .cbs.create = ripd_instance_static_route_create,
.cbs.delete = ripd_instance_static_route_delete, .cbs.destroy = ripd_instance_static_route_delete,
.cbs.cli_show = cli_show_rip_route, .cbs.cli_show = cli_show_rip_route,
}, },
{ {
@ -1475,18 +1475,18 @@ const struct frr_yang_module_info frr_ripd_info = {
{ {
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-scheme/md5-auth-length", .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.modify = lib_interface_rip_authentication_scheme_md5_auth_length_modify,
.cbs.delete = lib_interface_rip_authentication_scheme_md5_auth_length_delete, .cbs.destroy = lib_interface_rip_authentication_scheme_md5_auth_length_delete,
}, },
{ {
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-password", .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-password",
.cbs.modify = lib_interface_rip_authentication_password_modify, .cbs.modify = lib_interface_rip_authentication_password_modify,
.cbs.delete = lib_interface_rip_authentication_password_delete, .cbs.destroy = lib_interface_rip_authentication_password_delete,
.cbs.cli_show = cli_show_ip_rip_authentication_string, .cbs.cli_show = cli_show_ip_rip_authentication_string,
}, },
{ {
.xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-key-chain", .xpath = "/frr-interface:lib/interface/frr-ripd:rip/authentication-key-chain",
.cbs.modify = lib_interface_rip_authentication_key_chain_modify, .cbs.modify = lib_interface_rip_authentication_key_chain_modify,
.cbs.delete = lib_interface_rip_authentication_key_chain_delete, .cbs.destroy = lib_interface_rip_authentication_key_chain_delete,
.cbs.cli_show = cli_show_ip_rip_authentication_key_chain, .cbs.cli_show = cli_show_ip_rip_authentication_key_chain,
}, },
{ {

View File

@ -845,7 +845,7 @@ const struct frr_yang_module_info frr_ripngd_info = {
{ {
.xpath = "/frr-ripngd:ripngd/instance", .xpath = "/frr-ripngd:ripngd/instance",
.cbs.create = ripngd_instance_create, .cbs.create = ripngd_instance_create,
.cbs.delete = ripngd_instance_delete, .cbs.destroy = ripngd_instance_delete,
.cbs.cli_show = cli_show_router_ripng, .cbs.cli_show = cli_show_router_ripng,
}, },
{ {
@ -866,19 +866,19 @@ const struct frr_yang_module_info frr_ripngd_info = {
{ {
.xpath = "/frr-ripngd:ripngd/instance/network", .xpath = "/frr-ripngd:ripngd/instance/network",
.cbs.create = ripngd_instance_network_create, .cbs.create = ripngd_instance_network_create,
.cbs.delete = ripngd_instance_network_delete, .cbs.destroy = ripngd_instance_network_delete,
.cbs.cli_show = cli_show_ripng_network_prefix, .cbs.cli_show = cli_show_ripng_network_prefix,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/interface", .xpath = "/frr-ripngd:ripngd/instance/interface",
.cbs.create = ripngd_instance_interface_create, .cbs.create = ripngd_instance_interface_create,
.cbs.delete = ripngd_instance_interface_delete, .cbs.destroy = ripngd_instance_interface_delete,
.cbs.cli_show = cli_show_ripng_network_interface, .cbs.cli_show = cli_show_ripng_network_interface,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/offset-list", .xpath = "/frr-ripngd:ripngd/instance/offset-list",
.cbs.create = ripngd_instance_offset_list_create, .cbs.create = ripngd_instance_offset_list_create,
.cbs.delete = ripngd_instance_offset_list_delete, .cbs.destroy = ripngd_instance_offset_list_delete,
.cbs.cli_show = cli_show_ripng_offset_list, .cbs.cli_show = cli_show_ripng_offset_list,
}, },
{ {
@ -892,36 +892,36 @@ const struct frr_yang_module_info frr_ripngd_info = {
{ {
.xpath = "/frr-ripngd:ripngd/instance/passive-interface", .xpath = "/frr-ripngd:ripngd/instance/passive-interface",
.cbs.create = ripngd_instance_passive_interface_create, .cbs.create = ripngd_instance_passive_interface_create,
.cbs.delete = ripngd_instance_passive_interface_delete, .cbs.destroy = ripngd_instance_passive_interface_delete,
.cbs.cli_show = cli_show_ripng_passive_interface, .cbs.cli_show = cli_show_ripng_passive_interface,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/redistribute", .xpath = "/frr-ripngd:ripngd/instance/redistribute",
.cbs.create = ripngd_instance_redistribute_create, .cbs.create = ripngd_instance_redistribute_create,
.cbs.delete = ripngd_instance_redistribute_delete, .cbs.destroy = ripngd_instance_redistribute_delete,
.cbs.apply_finish = ripngd_instance_redistribute_apply_finish, .cbs.apply_finish = ripngd_instance_redistribute_apply_finish,
.cbs.cli_show = cli_show_ripng_redistribute, .cbs.cli_show = cli_show_ripng_redistribute,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/redistribute/route-map", .xpath = "/frr-ripngd:ripngd/instance/redistribute/route-map",
.cbs.modify = ripngd_instance_redistribute_route_map_modify, .cbs.modify = ripngd_instance_redistribute_route_map_modify,
.cbs.delete = ripngd_instance_redistribute_route_map_delete, .cbs.destroy = ripngd_instance_redistribute_route_map_delete,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/redistribute/metric", .xpath = "/frr-ripngd:ripngd/instance/redistribute/metric",
.cbs.modify = ripngd_instance_redistribute_metric_modify, .cbs.modify = ripngd_instance_redistribute_metric_modify,
.cbs.delete = ripngd_instance_redistribute_metric_delete, .cbs.destroy = ripngd_instance_redistribute_metric_delete,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/static-route", .xpath = "/frr-ripngd:ripngd/instance/static-route",
.cbs.create = ripngd_instance_static_route_create, .cbs.create = ripngd_instance_static_route_create,
.cbs.delete = ripngd_instance_static_route_delete, .cbs.destroy = ripngd_instance_static_route_delete,
.cbs.cli_show = cli_show_ripng_route, .cbs.cli_show = cli_show_ripng_route,
}, },
{ {
.xpath = "/frr-ripngd:ripngd/instance/aggregate-address", .xpath = "/frr-ripngd:ripngd/instance/aggregate-address",
.cbs.create = ripngd_instance_aggregate_address_create, .cbs.create = ripngd_instance_aggregate_address_create,
.cbs.delete = ripngd_instance_aggregate_address_delete, .cbs.destroy = ripngd_instance_aggregate_address_delete,
.cbs.cli_show = cli_show_ripng_aggregate_address, .cbs.cli_show = cli_show_ripng_aggregate_address,
}, },
{ {