![]() |
libyang 2.1.148
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
|
libyang representation of YANG schema trees. More...
#include <pcre2.h>
#include <stdint.h>
#include <stdio.h>
#include "config.h"
#include "log.h"
#include "tree.h"
Go to the source code of this file.
Macros | |
#define | _LYSC_TREE_DFS_NEXT(START, ELEM, NEXT) |
Helper macro for LYSC_TREE_DFS_END, should not be used directly! | |
#define | LY_REV_SIZE 11 |
#define | LYS_ACTION 0x0200 |
#define | LYS_ANYDATA 0x0060 |
#define | LYS_ANYXML 0x0020 |
#define | LYS_AUGMENT 0x8000 |
#define | LYS_CASE 0x0080 |
#define | LYS_CHOICE 0x0002 |
#define | LYS_CONFIG_MASK 0x03 |
#define | LYS_CONFIG_R 0x02 |
#define | LYS_CONFIG_W 0x01 |
#define | LYS_CONTAINER 0x0001 |
#define | LYS_DEV_ADD 2 |
#define | LYS_DEV_DELETE 3 |
#define | LYS_DEV_NOT_SUPPORTED 1 |
#define | LYS_DEV_REPLACE 4 |
#define | LYS_DISABLED 0x0100 |
#define | LYS_DOUBLEQUOTED 0x0200 |
#define | LYS_FENABLED 0x20 |
#define | LYS_FIND_NO_MATCH_ERROR 0x40 |
#define | LYS_FIND_SCHEMAMOUNT 0x0200 |
#define | LYS_FIND_XP_OUTPUT 0x10 |
#define | LYS_FIND_XP_SCHEMA 0x08 |
#define | LYS_FLAGS_COMPILED_MASK 0xff |
#define | LYS_GETNEXT_INTONPCONT 0x08 |
#define | LYS_GETNEXT_NOCHOICE 0x02 |
#define | LYS_GETNEXT_OUTPUT 0x10 |
#define | LYS_GETNEXT_WITHCASE 0x04 |
#define | LYS_GETNEXT_WITHCHOICE 0x01 |
#define | LYS_GETNEXT_WITHSCHEMAMOUNT 0x20 |
#define | LYS_GROUPING 0x4000 |
#define | LYS_IFF_AND 0x01 |
#define | LYS_IFF_F 0x03 |
#define | LYS_IFF_NOT 0x00 |
#define | LYS_IFF_OR 0x02 |
#define | LYS_INPUT 0x1000 |
#define | LYS_INTERNAL 0x1000 |
#define | LYS_IS_ENUM 0x0200 |
#define | LYS_IS_INPUT 0x1000 |
#define | LYS_IS_NOTIF 0x4000 |
#define | LYS_IS_OUTPUT 0x2000 |
#define | LYS_KEY 0x0100 |
#define | LYS_KEYLESS 0x0200 |
#define | LYS_LEAF 0x0004 |
#define | LYS_LEAFLIST 0x0008 |
#define | LYS_LIST 0x0010 |
#define | LYS_MAND_FALSE 0x40 |
#define | LYS_MAND_MASK 0x60 |
#define | LYS_MAND_TRUE 0x20 |
#define | LYS_MOD_IMPORTED_REV 0x04 |
#define | LYS_MOD_LATEST_IMPCLB 0x08 |
#define | LYS_MOD_LATEST_REV 0x01 |
#define | LYS_MOD_LATEST_SEARCHDIRS 0x02 |
#define | LYS_NODE_HASH_COUNT 4 |
Maximum number of hashes stored in a schema node. | |
#define | LYS_NODETYPE_MASK 0xffff |
#define | LYS_NOTIF 0x0400 |
#define | LYS_ORDBY_MASK 0x60 |
#define | LYS_ORDBY_SYSTEM 0x80 |
#define | LYS_ORDBY_USER 0x40 |
#define | LYS_OUTPUT 0x2000 |
#define | LYS_PRESENCE 0x80 |
#define | LYS_RPC 0x0100 |
#define | LYS_SET_BASE 0x0001 |
#define | LYS_SET_BIT 0x0002 |
#define | LYS_SET_CONFIG 0x0800 |
#define | LYS_SET_DFLT 0x0200 |
#define | LYS_SET_ENUM 0x0004 |
#define | LYS_SET_FRDIGITS 0x0008 |
#define | LYS_SET_LENGTH 0x0010 |
#define | LYS_SET_MAX 0x0400 |
#define | LYS_SET_MIN 0x0200 |
#define | LYS_SET_PATH 0x0020 |
#define | LYS_SET_PATTERN 0x0040 |
#define | LYS_SET_RANGE 0x0080 |
#define | LYS_SET_REQINST 0x0200 |
#define | LYS_SET_TYPE 0x0100 |
#define | LYS_SET_UNITS 0x0400 |
#define | LYS_SET_VALUE 0x0200 |
#define | LYS_SINGLEQUOTED 0x0100 |
#define | LYS_STATUS_CURR 0x04 |
#define | LYS_STATUS_DEPRC 0x08 |
#define | LYS_STATUS_MASK 0x1C |
#define | LYS_STATUS_OBSLT 0x10 |
#define | LYS_UNIQUE 0x80 |
#define | LYS_UNKNOWN 0x0000 |
#define | LYS_USED_GRP 0x0400 |
#define | LYS_USES 0x0800 |
#define | LYS_YIN_ARGUMENT 0x0800 |
#define | LYS_YIN_ATTR 0x0400 |
#define | LYS_YINELEM_FALSE 0x0100 |
#define | LYS_YINELEM_MASK 0x0180 |
#define | LYS_YINELEM_TRUE 0x80 |
#define | lysc_data_parent(SCHEMA) |
Same as lysc_data_node() but never returns the node itself. | |
#define | lysc_is_dup_inst_list(lysc_node) |
Examine whether a node is a key-less list or a non-configuration leaf-list. | |
#define | lysc_is_key(lysc_node) |
Examine whether a node is a list's key. | |
#define | lysc_is_np_cont(lysc_node) |
Examine whether a node is a non-presence container. | |
#define | lysc_is_userordered(lysc_node) |
Examine whether a node is user-ordered list or leaf-list. | |
#define | LYSC_TREE_DFS_BEGIN(START, ELEM) |
Macro to iterate via all elements in a schema (sub)tree including input and output. Note that actions and notifications of traversed nodes are ignored! To traverse on all the nodes including those, use lysc_tree_dfs_full() instead. | |
#define | LYSC_TREE_DFS_END(START, ELEM) |
Macro to iterate via all elements in a (sub)tree. This is the closing part to the LYSC_TREE_DFS_BEGIN - they always have to be used together. | |
#define | LYSP_MODULE_NAME(PMOD) |
Get the parsed module or submodule name. | |
#define | LYSP_RESTR_PATTERN_ACK 0x06 |
#define | LYSP_RESTR_PATTERN_NACK 0x15 |
#define | PCRE2_CODE_UNIT_WIDTH 8 |
Typedefs | |
typedef enum LYS_VERSION | LYS_VERSION |
supported YANG schema version values | |
typedef LY_ERR(* | lysc_dfs_clb) (struct lysc_node *node, void *data, ly_bool *dfs_continue) |
Callback to be called for every schema node in a DFS traversal. | |
Enumerations | |
enum | LYS_VERSION { LYS_VERSION_UNDEF = 0 , LYS_VERSION_1_0 = 1 , LYS_VERSION_1_1 = 2 } |
supported YANG schema version values More... | |
enum | LYSC_PATH_TYPE { LYSC_PATH_LOG , LYSC_PATH_DATA , LYSC_PATH_DATA_PATTERN } |
Types of the different schema paths. More... | |
Functions | |
LIBYANG_API_DECL LY_ERR | lys_feature_value (const struct lys_module *module, const char *feature) |
Get the current real status of the specified feature in the module. | |
LIBYANG_API_DECL const struct lysc_node * | lys_find_child (const struct lysc_node *parent, const struct lys_module *module, const char *name, size_t name_len, uint16_t nodetype, uint32_t options) |
Get child node according to the specified criteria. | |
LIBYANG_API_DECL LY_ERR | lys_find_expr_atoms (const struct lysc_node *ctx_node, const struct lys_module *cur_mod, const struct lyxp_expr *expr, const struct lysc_prefix *prefixes, uint32_t options, struct ly_set **set) |
Get all the schema nodes that are required for expr to be evaluated (atoms). | |
LIBYANG_API_DECL LY_ERR | lys_find_lypath_atoms (const struct ly_path *path, struct ly_set **set) |
Get all the schema nodes that are required for path to be evaluated (atoms). | |
LIBYANG_API_DECL const struct lysc_node * | lys_find_path (const struct ly_ctx *ctx, const struct lysc_node *ctx_node, const char *path, ly_bool output) |
Get a schema node based on the given data path (JSON format, see XPath Addressing). | |
LIBYANG_API_DECL LY_ERR | lys_find_path_atoms (const struct ly_ctx *ctx, const struct lysc_node *ctx_node, const char *path, ly_bool output, struct ly_set **set) |
Get all the schema nodes that are required for path to be evaluated (atoms). | |
LIBYANG_API_DECL LY_ERR | lys_find_xpath (const struct ly_ctx *ctx, const struct lysc_node *ctx_node, const char *xpath, uint32_t options, struct ly_set **set) |
Evaluate an xpath expression on schema nodes. | |
LIBYANG_API_DECL LY_ERR | lys_find_xpath_atoms (const struct ly_ctx *ctx, const struct lysc_node *ctx_node, const char *xpath, uint32_t options, struct ly_set **set) |
Get all the schema nodes that are required for xpath to be evaluated (atoms). | |
LIBYANG_API_DECL const struct lysc_node * | lys_getnext (const struct lysc_node *last, const struct lysc_node *parent, const struct lysc_module *module, uint32_t options) |
Get next schema (sibling) node element in the schema order that can be instantiated in a data tree. Returned node may be from an augment. | |
LIBYANG_API_DECL const struct lysc_node * | lys_getnext_ext (const struct lysc_node *last, const struct lysc_node *parent, const struct lysc_ext_instance *ext, uint32_t options) |
Get next schema (sibling) node element in the schema order of an extension that can be instantiated in a data tree. | |
LIBYANG_API_DECL LY_ERR | lys_identity_iffeature_value (const struct lysc_ident *ident) |
Get how the if-feature statement is evaluated for certain identity. | |
LIBYANG_API_DECL const char * | lys_nodetype2str (uint16_t nodetype) |
Stringify schema nodetype. | |
LIBYANG_API_DECL LY_ERR | lys_set_implemented (struct lys_module *mod, const char **features) |
Make the specific module implemented. | |
LIBYANG_API_DECL const struct lysc_node * | lysc_data_node (const struct lysc_node *schema) |
Get nearest schema parent (including the node itself) that can be instantiated in data. | |
LIBYANG_API_DECL const struct lysc_when * | lysc_has_when (const struct lysc_node *node) |
Check whether the schema node data instance existence depends on any when conditions. This node and any direct parent choice and case schema nodes are also examined for when conditions. | |
LIBYANG_API_DECL LY_ERR | lysc_iffeature_value (const struct lysc_iffeature *iff) |
Get how the if-feature statement currently evaluates. | |
LIBYANG_API_DECL LY_ERR | lysc_module_dfs_full (const struct lys_module *mod, lysc_dfs_clb dfs_clb, void *data) |
DFS traversal of all the schema nodes in a module including RPCs and notifications. | |
LIBYANG_API_DECL const struct lysc_node_action * | lysc_node_actions (const struct lysc_node *node) |
Get the actions/RPCs linked list of the given (compiled) schema node. Decides the node's type and in case it has a actions/RPCs array, returns it. | |
LIBYANG_API_DECL const struct lysc_node * | lysc_node_child (const struct lysc_node *node) |
Get the children linked list of the given (compiled) schema node. | |
LIBYANG_API_DECL const struct lysc_node * | lysc_node_lref_target (const struct lysc_node *node) |
Get the target node of a leafref node. | |
LIBYANG_API_DECL struct lysc_must * | lysc_node_musts (const struct lysc_node *node) |
Get the must statements list if present in the node . | |
LIBYANG_API_DECL const struct lysc_node_notif * | lysc_node_notifs (const struct lysc_node *node) |
Get the Notifications linked list of the given (compiled) schema node. Decides the node's type and in case it has a Notifications array, returns it. | |
LIBYANG_API_DECL struct lysc_when ** | lysc_node_when (const struct lysc_node *node) |
Get the when statements list if present in the node . | |
LIBYANG_API_DECL const struct lys_module * | lysc_owner_module (const struct lysc_node *node) |
Get the owner module of the schema node. It is the module of the top-level node. Generally, in case of augments it is the target module, recursively, otherwise it is the module where the node is defined. | |
LIBYANG_API_DECL char * | lysc_path (const struct lysc_node *node, LYSC_PATH_TYPE pathtype, char *buffer, size_t buflen) |
Generate path of the given node in the requested format. | |
LIBYANG_API_DECL LY_ERR | lysc_tree_dfs_full (const struct lysc_node *root, lysc_dfs_clb dfs_clb, void *data) |
DFS traversal of all the schema nodes in a (sub)tree including any actions and nested notifications. | |
LIBYANG_API_DECL struct lysp_feature * | lysp_feature_next (const struct lysp_feature *last, const struct lysp_module *pmod, uint32_t *idx) |
Get the next feature in the module or submodules. | |
LIBYANG_API_DECL const struct lysp_node_action * | lysp_node_actions (const struct lysp_node *node) |
Get the actions/RPCs linked list of the given (parsed) schema node. Decides the node's type and in case it has a actions/RPCs array, returns it. | |
LIBYANG_API_DECL const struct lysp_node * | lysp_node_child (const struct lysp_node *node) |
Get the children linked list of the given (parsed) schema node. Decides the node's type and in case it has a children list, returns it. | |
LIBYANG_API_DECL const struct lysp_node_grp * | lysp_node_groupings (const struct lysp_node *node) |
Get the groupings linked list of the given (parsed) schema node. Decides the node's type and in case it has a groupings array, returns it. | |
LIBYANG_API_DECL const struct lysp_node_notif * | lysp_node_notifs (const struct lysp_node *node) |
Get the Notifications linked list of the given (parsed) schema node. Decides the node's type and in case it has a Notifications array, returns it. | |
LIBYANG_API_DECL const struct lysp_tpdf * | lysp_node_typedefs (const struct lysp_node *node) |
Get the typedefs sized array of the given (parsed) schema node. Decides the node's type and in case it has a typedefs array, returns it. | |
LIBYANG_API_DECL const char * | lyxp_get_expr (const struct lyxp_expr *path) |
Getter for original XPath expression from a parsed expression. | |
libyang representation of YANG schema trees.
Copyright (c) 2015 - 2022 CESNET, z.s.p.o.
This source code is licensed under BSD 3-Clause License (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at
https://opensource.org/licenses/BSD-3-Clause
Definition in file tree_schema.h.
struct lysc_range::lysc_range_part |
Definition at line 1241 of file tree_schema.h.
Data Fields | ||
---|---|---|
union lysc_range_part.__unnamed75__ | __unnamed__ | |
union lysc_range_part.__unnamed77__ | __unnamed__ |
union lysc_range::lysc_range_part.__unnamed75__ |
Definition at line 1242 of file tree_schema.h.
Data Fields | ||
---|---|---|
int64_t | min_64 |
< min boundary for int8, int16, int32, int64 and decimal64 ( >= LY_TYPE_DEC64) |
uint64_t | min_u64 |
for uint8, uint16, uint32, uint64, string and binary ( < LY_TYPE_DEC64) |
union lysc_range::lysc_range_part.__unnamed77__ |
Definition at line 1246 of file tree_schema.h.
Data Fields | ||
---|---|---|
int64_t | max_64 |
< max boundary for int8, int16, int32, int64 and decimal64 ( >= LY_TYPE_DEC64) |
uint64_t | max_u64 |
for uint8, uint16, uint32, uint64, string and binary ( < LY_TYPE_DEC64) |
#define LYSP_RESTR_PATTERN_ACK 0x06 |
Definition at line 360 of file tree_schema.h.
#define LYSP_RESTR_PATTERN_NACK 0x15 |
Definition at line 361 of file tree_schema.h.
#define PCRE2_CODE_UNIT_WIDTH 8 |
Definition at line 19 of file tree_schema.h.