]>
Commit | Line | Data |
---|---|---|
1c2facd1 RW |
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 | /* bool */ | |
26 | extern bool yang_str2bool(const char *value); | |
27 | extern struct yang_data *yang_data_new_bool(const char *xpath, bool value); | |
28 | extern bool yang_dnode_get_bool(const struct lyd_node *dnode, | |
29 | const char *xpath_fmt, ...); | |
30 | extern bool yang_get_default_bool(const char *xpath_fmt, ...); | |
31 | ||
32 | /* dec64 */ | |
33 | extern double yang_str2dec64(const char *xpath, const char *value); | |
34 | extern struct yang_data *yang_data_new_dec64(const char *xpath, double value); | |
35 | extern double yang_dnode_get_dec64(const struct lyd_node *dnode, | |
36 | const char *xpath_fmt, ...); | |
37 | extern double yang_get_default_dec64(const char *xpath_fmt, ...); | |
38 | ||
39 | /* enum */ | |
40 | extern int yang_str2enum(const char *xpath, const char *value); | |
41 | extern struct yang_data *yang_data_new_enum(const char *xpath, int value); | |
42 | extern int yang_dnode_get_enum(const struct lyd_node *dnode, | |
43 | const char *xpath_fmt, ...); | |
44 | extern int yang_get_default_enum(const char *xpath_fmt, ...); | |
45 | ||
46 | /* int8 */ | |
47 | extern int8_t yang_str2int8(const char *value); | |
48 | extern struct yang_data *yang_data_new_int8(const char *xpath, int8_t value); | |
49 | extern int8_t yang_dnode_get_int8(const struct lyd_node *dnode, | |
50 | const char *xpath_fmt, ...); | |
51 | extern int8_t yang_get_default_int8(const char *xpath_fmt, ...); | |
52 | ||
53 | /* int16 */ | |
54 | extern int16_t yang_str2int16(const char *value); | |
55 | extern struct yang_data *yang_data_new_int16(const char *xpath, int16_t value); | |
56 | extern int16_t yang_dnode_get_int16(const struct lyd_node *dnode, | |
57 | const char *xpath_fmt, ...); | |
58 | extern int16_t yang_get_default_int16(const char *xpath_fmt, ...); | |
59 | ||
60 | /* int32 */ | |
61 | extern int32_t yang_str2int32(const char *value); | |
62 | extern struct yang_data *yang_data_new_int32(const char *xpath, int32_t value); | |
63 | extern int32_t yang_dnode_get_int32(const struct lyd_node *dnode, | |
64 | const char *xpath_fmt, ...); | |
65 | extern int32_t yang_get_default_int32(const char *xpath_fmt, ...); | |
66 | ||
67 | /* int64 */ | |
68 | extern int64_t yang_str2int64(const char *value); | |
69 | extern struct yang_data *yang_data_new_int64(const char *xpath, int64_t value); | |
70 | extern int64_t yang_dnode_get_int64(const struct lyd_node *dnode, | |
71 | const char *xpath_fmt, ...); | |
72 | extern int64_t yang_get_default_int64(const char *xpath_fmt, ...); | |
73 | ||
74 | /* uint8 */ | |
75 | extern uint8_t yang_str2uint8(const char *value); | |
76 | extern struct yang_data *yang_data_new_uint8(const char *xpath, uint8_t value); | |
77 | extern uint8_t yang_dnode_get_uint8(const struct lyd_node *dnode, | |
78 | const char *xpath_fmt, ...); | |
79 | extern uint8_t yang_get_default_uint8(const char *xpath_fmt, ...); | |
80 | ||
81 | /* uint16 */ | |
82 | extern uint16_t yang_str2uint16(const char *value); | |
83 | extern struct yang_data *yang_data_new_uint16(const char *xpath, | |
84 | uint16_t value); | |
85 | extern uint16_t yang_dnode_get_uint16(const struct lyd_node *dnode, | |
86 | const char *xpath_fmt, ...); | |
87 | extern uint16_t yang_get_default_uint16(const char *xpath_fmt, ...); | |
88 | ||
89 | /* uint32 */ | |
90 | extern uint32_t yang_str2uint32(const char *value); | |
91 | extern struct yang_data *yang_data_new_uint32(const char *xpath, | |
92 | uint32_t value); | |
93 | extern uint32_t yang_dnode_get_uint32(const struct lyd_node *dnode, | |
94 | const char *xpath_fmt, ...); | |
95 | extern uint32_t yang_get_default_uint32(const char *xpath_fmt, ...); | |
96 | ||
97 | /* uint64 */ | |
98 | extern uint64_t yang_str2uint64(const char *value); | |
99 | extern struct yang_data *yang_data_new_uint64(const char *xpath, | |
100 | uint64_t value); | |
101 | extern uint64_t yang_dnode_get_uint64(const struct lyd_node *dnode, | |
102 | const char *xpath_fmt, ...); | |
103 | extern uint64_t yang_get_default_uint64(const char *xpath_fmt, ...); | |
104 | ||
105 | /* string */ | |
106 | extern struct yang_data *yang_data_new_string(const char *xpath, | |
107 | const char *value); | |
108 | extern const char *yang_dnode_get_string(const struct lyd_node *dnode, | |
109 | const char *xpath_fmt, ...); | |
110 | extern void yang_dnode_get_string_buf(char *buf, size_t size, | |
111 | const struct lyd_node *dnode, | |
112 | const char *xpath_fmt, ...); | |
113 | extern const char *yang_get_default_string(const char *xpath_fmt, ...); | |
114 | extern void yang_get_default_string_buf(char *buf, size_t size, | |
115 | const char *xpath_fmt, ...); | |
116 | ||
b71df689 CS |
117 | /* empty */ |
118 | extern struct yang_data *yang_data_new_empty(const char *xpath); | |
119 | ||
eed84494 RW |
120 | /* ip prefix */ |
121 | extern void yang_str2prefix(const char *value, union prefixptr prefix); | |
122 | extern struct yang_data *yang_data_new_prefix(const char *xpath, | |
123 | union prefixconstptr prefix); | |
46fcb2df | 124 | extern void yang_dnode_get_prefix(struct prefix *prefix, |
eed84494 RW |
125 | const struct lyd_node *dnode, |
126 | const char *xpath_fmt, ...); | |
127 | extern void yang_get_default_prefix(union prefixptr var, const char *xpath_fmt, | |
128 | ...); | |
129 | ||
1c2facd1 RW |
130 | /* ipv4 */ |
131 | extern void yang_str2ipv4(const char *value, struct in_addr *addr); | |
132 | extern struct yang_data *yang_data_new_ipv4(const char *xpath, | |
133 | const struct in_addr *addr); | |
134 | extern void yang_dnode_get_ipv4(struct in_addr *addr, | |
135 | const struct lyd_node *dnode, | |
136 | const char *xpath_fmt, ...); | |
137 | extern void yang_get_default_ipv4(struct in_addr *var, const char *xpath_fmt, | |
138 | ...); | |
139 | ||
140 | /* ipv4p */ | |
141 | extern void yang_str2ipv4p(const char *value, union prefixptr prefix); | |
142 | extern struct yang_data *yang_data_new_ipv4p(const char *xpath, | |
70065793 | 143 | union prefixconstptr prefix); |
1c2facd1 RW |
144 | extern void yang_dnode_get_ipv4p(union prefixptr prefix, |
145 | const struct lyd_node *dnode, | |
146 | const char *xpath_fmt, ...); | |
147 | extern void yang_get_default_ipv4p(union prefixptr var, const char *xpath_fmt, | |
148 | ...); | |
149 | ||
150 | /* ipv6 */ | |
151 | extern void yang_str2ipv6(const char *value, struct in6_addr *addr); | |
152 | extern struct yang_data *yang_data_new_ipv6(const char *xpath, | |
153 | const struct in6_addr *addr); | |
154 | extern void yang_dnode_get_ipv6(struct in6_addr *addr, | |
155 | const struct lyd_node *dnode, | |
156 | const char *xpath_fmt, ...); | |
157 | extern void yang_get_default_ipv6(struct in6_addr *var, const char *xpath_fmt, | |
158 | ...); | |
159 | ||
160 | /* ipv6p */ | |
161 | extern void yang_str2ipv6p(const char *value, union prefixptr prefix); | |
162 | extern struct yang_data *yang_data_new_ipv6p(const char *xpath, | |
70065793 | 163 | union prefixconstptr prefix); |
1c2facd1 RW |
164 | extern void yang_dnode_get_ipv6p(union prefixptr prefix, |
165 | const struct lyd_node *dnode, | |
166 | const char *xpath_fmt, ...); | |
167 | extern void yang_get_default_ipv6p(union prefixptr var, const char *xpath_fmt, | |
168 | ...); | |
169 | ||
b0584ad3 QY |
170 | /* ip */ |
171 | extern void yang_str2ip(const char *value, struct ipaddr *addr); | |
172 | extern struct yang_data *yang_data_new_ip(const char *xpath, | |
173 | const struct ipaddr *addr); | |
174 | extern void yang_dnode_get_ip(struct ipaddr *addr, const struct lyd_node *dnode, | |
175 | const char *xpath_fmt, ...); | |
176 | extern void yang_get_default_ip(struct ipaddr *var, const char *xpath_fmt, ...); | |
177 | ||
dd9ef518 CS |
178 | /* mac */ |
179 | extern struct yang_data *yang_data_new_mac(const char *xpath, | |
180 | const struct ethaddr *mac); | |
181 | extern void yang_str2mac(const char *value, struct ethaddr *mac); | |
182 | ||
cad46cfd CS |
183 | extern const char *yang_nexthop_type2str(uint32_t ntype); |
184 | ||
1c2facd1 | 185 | #endif /* _FRR_NORTHBOUND_WRAPPERS_H_ */ |