libyang  2.0.112
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
parser_data.h
Go to the documentation of this file.
1 
15 #ifndef LY_PARSER_DATA_H_
16 #define LY_PARSER_DATA_H_
17 
18 #include "tree_data.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 struct ly_in;
25 
138 /* note: keep the lower 16bits free for use by LYD_VALIDATE_ flags. They are not supposed to be combined together,
139  * but since they are used (as a separate parameter) together in some functions, we want to keep them in a separated
140  * range to be able detect that the caller put wrong flags into the parser/validate options parameter. */
141 #define LYD_PARSE_ONLY 0x010000
145 #define LYD_PARSE_STRICT 0x020000
147 #define LYD_PARSE_OPAQ 0x040000
149 #define LYD_PARSE_NO_STATE 0x080000
151 #define LYD_PARSE_LYB_MOD_UPDATE 0x100000
154 #define LYD_PARSE_ORDERED 0x200000
161 #define LYD_PARSE_OPTS_MASK 0xFFFF0000
188 #define LYD_VALIDATE_NO_STATE 0x0001
190 #define LYD_VALIDATE_PRESENT 0x0002
192 #define LYD_VALIDATE_OPTS_MASK 0x0000FFFF
209 LY_ERR lyd_parse_data(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
210  uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree);
211 
226 LY_ERR lyd_parse_data_mem(const struct ly_ctx *ctx, const char *data, LYD_FORMAT format, uint32_t parse_options,
227  uint32_t validate_options, struct lyd_node **tree);
228 
244 LY_ERR lyd_parse_data_fd(const struct ly_ctx *ctx, int fd, LYD_FORMAT format, uint32_t parse_options,
245  uint32_t validate_options, struct lyd_node **tree);
246 
261 LY_ERR lyd_parse_data_path(const struct ly_ctx *ctx, const char *path, LYD_FORMAT format, uint32_t parse_options,
262  uint32_t validate_options, struct lyd_node **tree);
263 
283 LY_ERR lyd_parse_ext_data(const struct lysc_ext_instance *ext, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
284  uint32_t parse_options, uint32_t validate_options, struct lyd_node **tree);
285 
297 enum lyd_type {
298  LYD_TYPE_DATA_YANG = 0, /* generic YANG instance data */
299  LYD_TYPE_RPC_YANG, /* instance of a YANG RPC/action request with only "input" data children,
300  including all parents in case of an action */
301  LYD_TYPE_NOTIF_YANG, /* instance of a YANG notification , including all parents in case of a nested one */
302  LYD_TYPE_REPLY_YANG, /* instance of a YANG RPC/action reply with only "output" data children,
303  including all parents in case of an action */
304 
305  LYD_TYPE_RPC_NETCONF, /* complete NETCONF RPC invocation as defined for
306  [RPC](https://tools.ietf.org/html/rfc7950#section-7.14.4) and
307  [action](https://tools.ietf.org/html/rfc7950#section-7.15.2) */
308  LYD_TYPE_NOTIF_NETCONF, /* complete NETCONF notification message as defined for
309  [notification](https://tools.ietf.org/html/rfc7950#section-7.16.2) */
310  LYD_TYPE_REPLY_NETCONF /* complete NETCONF RPC reply as defined for
311  [RPC](https://tools.ietf.org/html/rfc7950#section-7.14.4) and
312  [action](https://tools.ietf.org/html/rfc7950#section-7.15.2) */
313 };
354 LY_ERR lyd_parse_op(const struct ly_ctx *ctx, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
355  enum lyd_type data_type, struct lyd_node **tree, struct lyd_node **op);
356 
397 LY_ERR lyd_parse_ext_op(const struct lysc_ext_instance *ext, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format,
398  enum lyd_type data_type, struct lyd_node **tree, struct lyd_node **op);
399 
413 LY_ERR lyd_validate_all(struct lyd_node **tree, const struct ly_ctx *ctx, uint32_t val_opts, struct lyd_node **diff);
414 
428 LY_ERR lyd_validate_module(struct lyd_node **tree, const struct lys_module *module, uint32_t val_opts, struct lyd_node **diff);
429 
441 LY_ERR lyd_validate_op(struct lyd_node *op_tree, const struct lyd_node *dep_tree, enum lyd_type data_type,
442  struct lyd_node **diff);
443 
446 #ifdef __cplusplus
447 }
448 #endif
449 
450 #endif /* LY_PARSER_DATA_H_ */
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.
LY_ERR lyd_parse_ext_data(const struct lysc_ext_instance *ext, 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 an extension data tree following the schema tree ...
Generic structure for a data node.
Definition: tree_data.h:759
YANG extension instance.
Definition: tree_schema.h:1445
struct lyd_node_inner * parent
Definition: tree_data.h:766
LY_ERR lyd_parse_ext_op(const struct lysc_ext_instance *ext, struct lyd_node *parent, struct ly_in *in, LYD_FORMAT format, enum lyd_type data_type, struct lyd_node **tree, struct lyd_node **op)
Parse extension data into an operation data tree following only the specification from the given exte...
libyang representation of YANG data trees.
Parser input structure specifying where the data are read.
LYD_FORMAT
Data input/output formats supported by libyang parser and printer functions.
Definition: tree_data.h:508
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, struct lyd_node **tree, struct lyd_node **op)
Parse YANG data into an operation data tree.
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.
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.
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
Definition: parser_data.h:310
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.
Available YANG schema tree structures representing YANG module.
Definition: tree_schema.h:2342
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.
LY_ERR
libyang's error codes returned by the libyang functions.
Definition: log.h:245
libyang context handler.