]> git.proxmox.com Git - mirror_frr.git/blob - lib/yang_wrappers.h
tools: fix frr-reload.py daemon option
[mirror_frr.git] / lib / yang_wrappers.h
1 /*
2 * Copyright (C) 2018 NetDEF, Inc.
3 * Renato Westphal
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the Free
7 * Software Foundation; either version 2 of the License, or (at your option)
8 * any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; see the file COPYING; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 #ifndef _FRR_NORTHBOUND_WRAPPERS_H_
21 #define _FRR_NORTHBOUND_WRAPPERS_H_
22
23 #include "prefix.h"
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 /* bool */
30 extern bool yang_str2bool(const char *value);
31 extern struct yang_data *yang_data_new_bool(const char *xpath, bool value);
32 extern bool yang_dnode_get_bool(const struct lyd_node *dnode,
33 const char *xpath_fmt, ...);
34 extern bool yang_get_default_bool(const char *xpath_fmt, ...);
35
36 /* dec64 */
37 extern double yang_str2dec64(const char *xpath, const char *value);
38 extern struct yang_data *yang_data_new_dec64(const char *xpath, double value);
39 extern double yang_dnode_get_dec64(const struct lyd_node *dnode,
40 const char *xpath_fmt, ...);
41 extern double yang_get_default_dec64(const char *xpath_fmt, ...);
42
43 /* enum */
44 extern int yang_str2enum(const char *xpath, const char *value);
45 extern struct yang_data *yang_data_new_enum(const char *xpath, int value);
46 extern int yang_dnode_get_enum(const struct lyd_node *dnode,
47 const char *xpath_fmt, ...);
48 extern int yang_get_default_enum(const char *xpath_fmt, ...);
49
50 /* int8 */
51 extern int8_t yang_str2int8(const char *value);
52 extern struct yang_data *yang_data_new_int8(const char *xpath, int8_t value);
53 extern int8_t yang_dnode_get_int8(const struct lyd_node *dnode,
54 const char *xpath_fmt, ...);
55 extern int8_t yang_get_default_int8(const char *xpath_fmt, ...);
56
57 /* int16 */
58 extern int16_t yang_str2int16(const char *value);
59 extern struct yang_data *yang_data_new_int16(const char *xpath, int16_t value);
60 extern int16_t yang_dnode_get_int16(const struct lyd_node *dnode,
61 const char *xpath_fmt, ...);
62 extern int16_t yang_get_default_int16(const char *xpath_fmt, ...);
63
64 /* int32 */
65 extern int32_t yang_str2int32(const char *value);
66 extern struct yang_data *yang_data_new_int32(const char *xpath, int32_t value);
67 extern int32_t yang_dnode_get_int32(const struct lyd_node *dnode,
68 const char *xpath_fmt, ...);
69 extern int32_t yang_get_default_int32(const char *xpath_fmt, ...);
70
71 /* int64 */
72 extern int64_t yang_str2int64(const char *value);
73 extern struct yang_data *yang_data_new_int64(const char *xpath, int64_t value);
74 extern int64_t yang_dnode_get_int64(const struct lyd_node *dnode,
75 const char *xpath_fmt, ...);
76 extern int64_t yang_get_default_int64(const char *xpath_fmt, ...);
77
78 /* uint8 */
79 extern uint8_t yang_str2uint8(const char *value);
80 extern struct yang_data *yang_data_new_uint8(const char *xpath, uint8_t value);
81 extern uint8_t yang_dnode_get_uint8(const struct lyd_node *dnode,
82 const char *xpath_fmt, ...);
83 extern uint8_t yang_get_default_uint8(const char *xpath_fmt, ...);
84
85 /* uint16 */
86 extern uint16_t yang_str2uint16(const char *value);
87 extern struct yang_data *yang_data_new_uint16(const char *xpath,
88 uint16_t value);
89 extern uint16_t yang_dnode_get_uint16(const struct lyd_node *dnode,
90 const char *xpath_fmt, ...);
91 extern uint16_t yang_get_default_uint16(const char *xpath_fmt, ...);
92
93 /* uint32 */
94 extern uint32_t yang_str2uint32(const char *value);
95 extern struct yang_data *yang_data_new_uint32(const char *xpath,
96 uint32_t value);
97 extern uint32_t yang_dnode_get_uint32(const struct lyd_node *dnode,
98 const char *xpath_fmt, ...);
99 extern uint32_t yang_get_default_uint32(const char *xpath_fmt, ...);
100
101 /* uint64 */
102 extern uint64_t yang_str2uint64(const char *value);
103 extern struct yang_data *yang_data_new_uint64(const char *xpath,
104 uint64_t value);
105 extern uint64_t yang_dnode_get_uint64(const struct lyd_node *dnode,
106 const char *xpath_fmt, ...);
107 extern uint64_t yang_get_default_uint64(const char *xpath_fmt, ...);
108
109 /* string */
110 extern struct yang_data *yang_data_new_string(const char *xpath,
111 const char *value);
112 extern const char *yang_dnode_get_string(const struct lyd_node *dnode,
113 const char *xpath_fmt, ...);
114 extern void yang_dnode_get_string_buf(char *buf, size_t size,
115 const struct lyd_node *dnode,
116 const char *xpath_fmt, ...);
117 extern const char *yang_get_default_string(const char *xpath_fmt, ...);
118 extern void yang_get_default_string_buf(char *buf, size_t size,
119 const char *xpath_fmt, ...);
120
121 /* empty */
122 extern struct yang_data *yang_data_new_empty(const char *xpath);
123
124 /* ip prefix */
125 extern void yang_str2prefix(const char *value, union prefixptr prefix);
126 extern struct yang_data *yang_data_new_prefix(const char *xpath,
127 union prefixconstptr prefix);
128 extern void yang_dnode_get_prefix(struct prefix *prefix,
129 const struct lyd_node *dnode,
130 const char *xpath_fmt, ...);
131 extern void yang_get_default_prefix(union prefixptr var, const char *xpath_fmt,
132 ...);
133
134 /* ipv4 */
135 extern void yang_str2ipv4(const char *value, struct in_addr *addr);
136 extern struct yang_data *yang_data_new_ipv4(const char *xpath,
137 const struct in_addr *addr);
138 extern void yang_dnode_get_ipv4(struct in_addr *addr,
139 const struct lyd_node *dnode,
140 const char *xpath_fmt, ...);
141 extern void yang_get_default_ipv4(struct in_addr *var, const char *xpath_fmt,
142 ...);
143
144 /* ipv4p */
145 extern void yang_str2ipv4p(const char *value, union prefixptr prefix);
146 extern struct yang_data *yang_data_new_ipv4p(const char *xpath,
147 union prefixconstptr prefix);
148 extern void yang_dnode_get_ipv4p(union prefixptr prefix,
149 const struct lyd_node *dnode,
150 const char *xpath_fmt, ...);
151 extern void yang_get_default_ipv4p(union prefixptr var, const char *xpath_fmt,
152 ...);
153
154 /* ipv6 */
155 extern void yang_str2ipv6(const char *value, struct in6_addr *addr);
156 extern struct yang_data *yang_data_new_ipv6(const char *xpath,
157 const struct in6_addr *addr);
158 extern void yang_dnode_get_ipv6(struct in6_addr *addr,
159 const struct lyd_node *dnode,
160 const char *xpath_fmt, ...);
161 extern void yang_get_default_ipv6(struct in6_addr *var, const char *xpath_fmt,
162 ...);
163
164 /* ipv6p */
165 extern void yang_str2ipv6p(const char *value, union prefixptr prefix);
166 extern struct yang_data *yang_data_new_ipv6p(const char *xpath,
167 union prefixconstptr prefix);
168 extern void yang_dnode_get_ipv6p(union prefixptr prefix,
169 const struct lyd_node *dnode,
170 const char *xpath_fmt, ...);
171 extern void yang_get_default_ipv6p(union prefixptr var, const char *xpath_fmt,
172 ...);
173
174 /* ip */
175 extern void yang_str2ip(const char *value, struct ipaddr *addr);
176 extern struct yang_data *yang_data_new_ip(const char *xpath,
177 const struct ipaddr *addr);
178 extern void yang_dnode_get_ip(struct ipaddr *addr, const struct lyd_node *dnode,
179 const char *xpath_fmt, ...);
180 extern void yang_get_default_ip(struct ipaddr *var, const char *xpath_fmt, ...);
181
182 /* mac */
183 extern struct yang_data *yang_data_new_mac(const char *xpath,
184 const struct ethaddr *mac);
185 extern void yang_str2mac(const char *value, struct ethaddr *mac);
186
187 /*data-and-time */
188 extern struct yang_data *yang_data_new_date_and_time(const char *xpath,
189 time_t time);
190
191 /* nexthop enum2str */
192 extern const char *yang_nexthop_type2str(uint32_t ntype);
193
194 #ifdef __cplusplus
195 }
196 #endif
197
198 #endif /* _FRR_NORTHBOUND_WRAPPERS_H_ */