libyang 6.1.4
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
parser_data.h
Go to the documentation of this file.
1
15
16#ifndef LY_PARSER_DATA_H_
17#define LY_PARSER_DATA_H_
18
19#include "tree_data.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25struct ly_in;
26
82
109
114
139/* note: keep the lower 16bits free for use by LYD_VALIDATE_ flags. They are not supposed to be combined together,
140 * but since they are used (as a separate parameter) together in some functions, we want to keep them in a separated
141 * range to be able detect that the caller put wrong flags into the parser/validate options parameter. */
142#define LYD_PARSE_ONLY 0x010000
147#define LYD_PARSE_STRICT 0x020000
149#define LYD_PARSE_OPAQ 0x040000
151#define LYD_PARSE_NO_STATE 0x080000
152#define LYD_PARSE_LYB_SKIP_MODULE_CHECK 0x100000
157#define LYD_PARSE_ORDERED 0x200000
163#define LYD_PARSE_WHEN_TRUE 0x400000
166#define LYD_PARSE_NO_NEW 0x800000
169#define LYD_PARSE_STORE_ONLY 0x01010000
173#define LYD_PARSE_JSON_NULL 0x02000000
176#define LYD_PARSE_JSON_STRING_DATATYPES 0x04000000
180#define LYD_PARSE_ANYDATA_STRICT 0x08000000
184#define LYD_PARSE_OPTS_MASK 0xFFFF0000
185
187
211#define LYD_VALIDATE_NO_STATE 0x0001
213#define LYD_VALIDATE_PRESENT 0x0002
214#define LYD_VALIDATE_MULTI_ERROR 0x0004
215#define LYD_VALIDATE_OPERATIONAL 0x0008
217#define LYD_VALIDATE_NO_DEFAULTS 0x0010
220#define LYD_VALIDATE_NOT_FINAL 0x0020
224
225#define LYD_VALIDATE_OPTS_MASK 0x0000FFFF
226
228
248LIBYANG_API_DECL LY_ERR lyd_parse_data(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
249 uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree);
250
265LIBYANG_API_DECL LY_ERR lyd_parse_data_mem(const struct ly_ctx *ctx, const char *data, LYD_FORMAT format, uint32_t parse_options,
266 uint32_t validate_options, struct lyd_node **tree);
267
284LIBYANG_API_DECL LY_ERR lyd_parse_data_mem_len(const struct ly_ctx *ctx, const char *data, uint32_t data_len, LYD_FORMAT format,
285 uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree);
286
302LIBYANG_API_DECL LY_ERR lyd_parse_data_fd(const struct ly_ctx *ctx, int fd, LYD_FORMAT format, uint32_t parse_options,
303 uint32_t validate_options, struct lyd_node **tree);
304
319LIBYANG_API_DECL LY_ERR lyd_parse_data_path(const struct ly_ctx *ctx, const char *path, LYD_FORMAT format,
320 uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree);
321
336LIBYANG_API_DECL LY_ERR lyd_parse_value_fragment(const struct ly_ctx *ctx, const char *path, struct ly_in *in,
337 LYD_FORMAT format, uint32_t new_val_options, uint32_t parse_options, uint32_t validate_options,
338 struct lyd_node **tree);
339
376
377
449LIBYANG_API_DECL LY_ERR lyd_parse_op(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
450 enum lyd_type data_type, uint32_t parse_options, struct lyd_node **tree, struct lyd_node **op);
451
463LIBYANG_API_DECL LY_ERR lyd_validate_ext(struct lyd_node **ext_tree, const struct lysc_ext_instance *ext,
464 uint32_t val_opts, struct lyd_node **diff);
465
479LIBYANG_API_DECL LY_ERR lyd_validate_all(struct lyd_node **tree, const struct ly_ctx *ctx, uint32_t val_opts,
480 struct lyd_node **diff);
481
499LIBYANG_API_DECL LY_ERR lyd_validate_module(struct lyd_node **tree, const struct lys_module *module, uint32_t val_opts,
500 struct lyd_node **diff);
501
513LIBYANG_API_DECL LY_ERR lyd_validate_module_final(struct lyd_node *tree, const struct lys_module *module,
514 uint32_t val_opts);
515
528LIBYANG_API_DECL LY_ERR lyd_validate_op(struct lyd_node *op_tree, const struct lyd_node *dep_tree, enum lyd_type data_type,
529 struct lyd_node **diff);
530
532
533#ifdef __cplusplus
534}
535#endif
536
537#endif /* LY_PARSER_DATA_H_ */
libyang context handler.
LIBYANG_API_DECL LY_ERR lyd_parse_op(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format, enum lyd_type data_type, uint32_t parse_options, struct lyd_node **tree, struct lyd_node **op)
Parse YANG data into an operation data tree. Specific parsing flags LYD_PARSE_ONLY,...
LIBYANG_API_DECL LY_ERR lyd_validate_ext(struct lyd_node **ext_tree, const struct lysc_ext_instance *ext, uint32_t val_opts, struct lyd_node **diff)
Validate a data subtree of an extension instance, which is assumed to be a separate data tree indepen...
LIBYANG_API_DECL LY_ERR lyd_parse_data(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse (and validate) data from the input handler as a YANG data tree.
LIBYANG_API_DECL LY_ERR lyd_validate_all(struct lyd_node **tree, const struct ly_ctx *ctx, uint32_t val_opts, struct lyd_node **diff)
Fully validate a data tree.
LIBYANG_API_DECL LY_ERR lyd_validate_module_final(struct lyd_node *tree, const struct lys_module *module, uint32_t val_opts)
Finish validation of a module data that have previously been validated with LYD_VALIDATE_NOT_FINAL fl...
LYD_FORMAT
Data input/output formats supported by libyang parser and printer functions.
Definition tree_data.h:535
LIBYANG_API_DECL LY_ERR lyd_validate_op(struct lyd_node *op_tree, const struct lyd_node *dep_tree, enum lyd_type data_type, struct lyd_node **diff)
Validate an RPC/action request, reply, or notification. Only the operation data tree (input/output/no...
LIBYANG_API_DECL LY_ERR lyd_validate_module(struct lyd_node **tree, const struct lys_module *module, uint32_t val_opts, struct lyd_node **diff)
Fully validate a data tree of a module.
LIBYANG_API_DECL LY_ERR lyd_parse_data_mem_len(const struct ly_ctx *ctx, const char *data, uint32_t data_len, LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse (and validate) input data as a YANG data tree from a bounded memory buffer.
LIBYANG_API_DECL LY_ERR lyd_parse_data_fd(const struct ly_ctx *ctx, int fd, LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse (and validate) input data as a YANG data tree.
LIBYANG_API_DECL LY_ERR lyd_parse_value_fragment(const struct ly_ctx *ctx, const char *path, struct ly_in *in, LYD_FORMAT format, uint32_t new_val_options, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse data from the input handler as a bare JSON value and connect it to the node parsed from the pat...
LIBYANG_API_DECL LY_ERR lyd_parse_data_path(const struct ly_ctx *ctx, const char *path, LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse (and validate) input data as a YANG data tree.
LIBYANG_API_DECL LY_ERR lyd_parse_data_mem(const struct ly_ctx *ctx, const char *data, LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree)
Parse (and validate) input data as a YANG data tree.
lyd_type
@ LYD_TYPE_REPLY_RESTCONF
@ LYD_TYPE_NOTIF_RESTCONF
@ LYD_TYPE_DATA_YANG
@ LYD_TYPE_NOTIF_YANG
@ LYD_TYPE_RPC_YANG
@ LYD_TYPE_REPLY_YANG
@ LYD_TYPE_REPLY_NETCONF
@ LYD_TYPE_NOTIF_NETCONF
@ LYD_TYPE_RPC_RESTCONF
@ LYD_TYPE_RPC_NETCONF
LY_ERR
libyang's error codes returned by the libyang functions.
Definition log.h:252
Parser input structure specifying the type of data input.
YANG extension compiled instance.
Available YANG schema tree structures representing YANG module.
libyang representation of YANG data trees.
Generic structure for a data node.
Definition tree_data.h:813