1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2018 NetDEF, Inc.
7 #ifndef _FRR_RIPNG_NB_H_
8 #define _FRR_RIPNG_NB_H_
10 extern const struct frr_yang_module_info frr_ripngd_info
;
12 /* Mandatory callbacks. */
13 int ripngd_instance_create(struct nb_cb_create_args
*args
);
14 int ripngd_instance_destroy(struct nb_cb_destroy_args
*args
);
15 const void *ripngd_instance_get_next(struct nb_cb_get_next_args
*args
);
16 int ripngd_instance_get_keys(struct nb_cb_get_keys_args
*args
);
17 const void *ripngd_instance_lookup_entry(struct nb_cb_lookup_entry_args
*args
);
18 int ripngd_instance_allow_ecmp_modify(struct nb_cb_modify_args
*args
);
19 int ripngd_instance_default_information_originate_modify(
20 struct nb_cb_modify_args
*args
);
21 int ripngd_instance_default_metric_modify(struct nb_cb_modify_args
*args
);
22 int ripngd_instance_network_create(struct nb_cb_create_args
*args
);
23 int ripngd_instance_network_destroy(struct nb_cb_destroy_args
*args
);
24 int ripngd_instance_interface_create(struct nb_cb_create_args
*args
);
25 int ripngd_instance_interface_destroy(struct nb_cb_destroy_args
*args
);
26 int ripngd_instance_offset_list_create(struct nb_cb_create_args
*args
);
27 int ripngd_instance_offset_list_destroy(struct nb_cb_destroy_args
*args
);
28 int ripngd_instance_offset_list_access_list_modify(
29 struct nb_cb_modify_args
*args
);
30 int ripngd_instance_offset_list_metric_modify(struct nb_cb_modify_args
*args
);
31 int ripngd_instance_passive_interface_create(struct nb_cb_create_args
*args
);
32 int ripngd_instance_passive_interface_destroy(struct nb_cb_destroy_args
*args
);
33 int ripngd_instance_redistribute_create(struct nb_cb_create_args
*args
);
34 int ripngd_instance_redistribute_destroy(struct nb_cb_destroy_args
*args
);
35 int ripngd_instance_redistribute_route_map_modify(
36 struct nb_cb_modify_args
*args
);
37 int ripngd_instance_redistribute_route_map_destroy(
38 struct nb_cb_destroy_args
*args
);
39 int ripngd_instance_redistribute_metric_modify(struct nb_cb_modify_args
*args
);
40 int ripngd_instance_redistribute_metric_destroy(
41 struct nb_cb_destroy_args
*args
);
42 int ripngd_instance_static_route_create(struct nb_cb_create_args
*args
);
43 int ripngd_instance_static_route_destroy(struct nb_cb_destroy_args
*args
);
44 int ripngd_instance_aggregate_address_create(struct nb_cb_create_args
*args
);
45 int ripngd_instance_aggregate_address_destroy(struct nb_cb_destroy_args
*args
);
46 int ripngd_instance_timers_flush_interval_modify(
47 struct nb_cb_modify_args
*args
);
48 int ripngd_instance_timers_holddown_interval_modify(
49 struct nb_cb_modify_args
*args
);
50 int ripngd_instance_timers_update_interval_modify(
51 struct nb_cb_modify_args
*args
);
52 const void *ripngd_instance_state_neighbors_neighbor_get_next(
53 struct nb_cb_get_next_args
*args
);
54 int ripngd_instance_state_neighbors_neighbor_get_keys(
55 struct nb_cb_get_keys_args
*args
);
56 const void *ripngd_instance_state_neighbors_neighbor_lookup_entry(
57 struct nb_cb_lookup_entry_args
*args
);
58 struct yang_data
*ripngd_instance_state_neighbors_neighbor_address_get_elem(
59 struct nb_cb_get_elem_args
*args
);
60 struct yang_data
*ripngd_instance_state_neighbors_neighbor_last_update_get_elem(
61 struct nb_cb_get_elem_args
*args
);
63 ripngd_instance_state_neighbors_neighbor_bad_packets_rcvd_get_elem(
64 struct nb_cb_get_elem_args
*args
);
66 ripngd_instance_state_neighbors_neighbor_bad_routes_rcvd_get_elem(
67 struct nb_cb_get_elem_args
*args
);
69 ripngd_instance_state_routes_route_get_next(struct nb_cb_get_next_args
*args
);
70 int ripngd_instance_state_routes_route_get_keys(
71 struct nb_cb_get_keys_args
*args
);
72 const void *ripngd_instance_state_routes_route_lookup_entry(
73 struct nb_cb_lookup_entry_args
*args
);
74 struct yang_data
*ripngd_instance_state_routes_route_prefix_get_elem(
75 struct nb_cb_get_elem_args
*args
);
76 struct yang_data
*ripngd_instance_state_routes_route_next_hop_get_elem(
77 struct nb_cb_get_elem_args
*args
);
78 struct yang_data
*ripngd_instance_state_routes_route_interface_get_elem(
79 struct nb_cb_get_elem_args
*args
);
80 struct yang_data
*ripngd_instance_state_routes_route_metric_get_elem(
81 struct nb_cb_get_elem_args
*args
);
82 int clear_ripng_route_rpc(struct nb_cb_rpc_args
*args
);
83 int lib_interface_ripng_split_horizon_modify(struct nb_cb_modify_args
*args
);
85 /* Optional 'apply_finish' callbacks. */
86 void ripngd_instance_redistribute_apply_finish(
87 struct nb_cb_apply_finish_args
*args
);
88 void ripngd_instance_timers_apply_finish(struct nb_cb_apply_finish_args
*args
);
90 /* Optional 'cli_show' callbacks. */
91 void cli_show_router_ripng(struct vty
*vty
, const struct lyd_node
*dnode
,
93 void cli_show_ripng_allow_ecmp(struct vty
*vty
, const struct lyd_node
*dnode
,
95 void cli_show_ripng_default_information_originate(struct vty
*vty
,
96 const struct lyd_node
*dnode
,
98 void cli_show_ripng_default_metric(struct vty
*vty
,
99 const struct lyd_node
*dnode
,
101 void cli_show_ripng_network_prefix(struct vty
*vty
,
102 const struct lyd_node
*dnode
,
104 void cli_show_ripng_network_interface(struct vty
*vty
,
105 const struct lyd_node
*dnode
,
107 void cli_show_ripng_offset_list(struct vty
*vty
, const struct lyd_node
*dnode
,
109 void cli_show_ripng_passive_interface(struct vty
*vty
,
110 const struct lyd_node
*dnode
,
112 void cli_show_ripng_redistribute(struct vty
*vty
, const struct lyd_node
*dnode
,
114 void cli_show_ripng_route(struct vty
*vty
, const struct lyd_node
*dnode
,
116 void cli_show_ripng_aggregate_address(struct vty
*vty
,
117 const struct lyd_node
*dnode
,
119 void cli_show_ripng_timers(struct vty
*vty
, const struct lyd_node
*dnode
,
121 void cli_show_ipv6_ripng_split_horizon(struct vty
*vty
,
122 const struct lyd_node
*dnode
,
125 #endif /* _FRR_RIPNG_NB_H_ */