]> git.proxmox.com Git - mirror_frr.git/blame - lib/yang_wrappers.h
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / yang_wrappers.h
CommitLineData
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 */
26extern bool yang_str2bool(const char *value);
27extern struct yang_data *yang_data_new_bool(const char *xpath, bool value);
28extern bool yang_dnode_get_bool(const struct lyd_node *dnode,
29 const char *xpath_fmt, ...);
30extern bool yang_get_default_bool(const char *xpath_fmt, ...);
31
32/* dec64 */
33extern double yang_str2dec64(const char *xpath, const char *value);
34extern struct yang_data *yang_data_new_dec64(const char *xpath, double value);
35extern double yang_dnode_get_dec64(const struct lyd_node *dnode,
36 const char *xpath_fmt, ...);
37extern double yang_get_default_dec64(const char *xpath_fmt, ...);
38
39/* enum */
40extern int yang_str2enum(const char *xpath, const char *value);
41extern struct yang_data *yang_data_new_enum(const char *xpath, int value);
42extern int yang_dnode_get_enum(const struct lyd_node *dnode,
43 const char *xpath_fmt, ...);
44extern int yang_get_default_enum(const char *xpath_fmt, ...);
45
46/* int8 */
47extern int8_t yang_str2int8(const char *value);
48extern struct yang_data *yang_data_new_int8(const char *xpath, int8_t value);
49extern int8_t yang_dnode_get_int8(const struct lyd_node *dnode,
50 const char *xpath_fmt, ...);
51extern int8_t yang_get_default_int8(const char *xpath_fmt, ...);
52
53/* int16 */
54extern int16_t yang_str2int16(const char *value);
55extern struct yang_data *yang_data_new_int16(const char *xpath, int16_t value);
56extern int16_t yang_dnode_get_int16(const struct lyd_node *dnode,
57 const char *xpath_fmt, ...);
58extern int16_t yang_get_default_int16(const char *xpath_fmt, ...);
59
60/* int32 */
61extern int32_t yang_str2int32(const char *value);
62extern struct yang_data *yang_data_new_int32(const char *xpath, int32_t value);
63extern int32_t yang_dnode_get_int32(const struct lyd_node *dnode,
64 const char *xpath_fmt, ...);
65extern int32_t yang_get_default_int32(const char *xpath_fmt, ...);
66
67/* int64 */
68extern int64_t yang_str2int64(const char *value);
69extern struct yang_data *yang_data_new_int64(const char *xpath, int64_t value);
70extern int64_t yang_dnode_get_int64(const struct lyd_node *dnode,
71 const char *xpath_fmt, ...);
72extern int64_t yang_get_default_int64(const char *xpath_fmt, ...);
73
74/* uint8 */
75extern uint8_t yang_str2uint8(const char *value);
76extern struct yang_data *yang_data_new_uint8(const char *xpath, uint8_t value);
77extern uint8_t yang_dnode_get_uint8(const struct lyd_node *dnode,
78 const char *xpath_fmt, ...);
79extern uint8_t yang_get_default_uint8(const char *xpath_fmt, ...);
80
81/* uint16 */
82extern uint16_t yang_str2uint16(const char *value);
83extern struct yang_data *yang_data_new_uint16(const char *xpath,
84 uint16_t value);
85extern uint16_t yang_dnode_get_uint16(const struct lyd_node *dnode,
86 const char *xpath_fmt, ...);
87extern uint16_t yang_get_default_uint16(const char *xpath_fmt, ...);
88
89/* uint32 */
90extern uint32_t yang_str2uint32(const char *value);
91extern struct yang_data *yang_data_new_uint32(const char *xpath,
92 uint32_t value);
93extern uint32_t yang_dnode_get_uint32(const struct lyd_node *dnode,
94 const char *xpath_fmt, ...);
95extern uint32_t yang_get_default_uint32(const char *xpath_fmt, ...);
96
97/* uint64 */
98extern uint64_t yang_str2uint64(const char *value);
99extern struct yang_data *yang_data_new_uint64(const char *xpath,
100 uint64_t value);
101extern uint64_t yang_dnode_get_uint64(const struct lyd_node *dnode,
102 const char *xpath_fmt, ...);
103extern uint64_t yang_get_default_uint64(const char *xpath_fmt, ...);
104
105/* string */
106extern struct yang_data *yang_data_new_string(const char *xpath,
107 const char *value);
108extern const char *yang_dnode_get_string(const struct lyd_node *dnode,
109 const char *xpath_fmt, ...);
110extern void yang_dnode_get_string_buf(char *buf, size_t size,
111 const struct lyd_node *dnode,
112 const char *xpath_fmt, ...);
113extern const char *yang_get_default_string(const char *xpath_fmt, ...);
114extern void yang_get_default_string_buf(char *buf, size_t size,
115 const char *xpath_fmt, ...);
116
117/* ipv4 */
118extern void yang_str2ipv4(const char *value, struct in_addr *addr);
119extern struct yang_data *yang_data_new_ipv4(const char *xpath,
120 const struct in_addr *addr);
121extern void yang_dnode_get_ipv4(struct in_addr *addr,
122 const struct lyd_node *dnode,
123 const char *xpath_fmt, ...);
124extern void yang_get_default_ipv4(struct in_addr *var, const char *xpath_fmt,
125 ...);
126
127/* ipv4p */
128extern void yang_str2ipv4p(const char *value, union prefixptr prefix);
129extern struct yang_data *yang_data_new_ipv4p(const char *xpath,
70065793 130 union prefixconstptr prefix);
1c2facd1
RW
131extern void yang_dnode_get_ipv4p(union prefixptr prefix,
132 const struct lyd_node *dnode,
133 const char *xpath_fmt, ...);
134extern void yang_get_default_ipv4p(union prefixptr var, const char *xpath_fmt,
135 ...);
136
137/* ipv6 */
138extern void yang_str2ipv6(const char *value, struct in6_addr *addr);
139extern struct yang_data *yang_data_new_ipv6(const char *xpath,
140 const struct in6_addr *addr);
141extern void yang_dnode_get_ipv6(struct in6_addr *addr,
142 const struct lyd_node *dnode,
143 const char *xpath_fmt, ...);
144extern void yang_get_default_ipv6(struct in6_addr *var, const char *xpath_fmt,
145 ...);
146
147/* ipv6p */
148extern void yang_str2ipv6p(const char *value, union prefixptr prefix);
149extern struct yang_data *yang_data_new_ipv6p(const char *xpath,
70065793 150 union prefixconstptr prefix);
1c2facd1
RW
151extern void yang_dnode_get_ipv6p(union prefixptr prefix,
152 const struct lyd_node *dnode,
153 const char *xpath_fmt, ...);
154extern void yang_get_default_ipv6p(union prefixptr var, const char *xpath_fmt,
155 ...);
156
157#endif /* _FRR_NORTHBOUND_WRAPPERS_H_ */