libyang
1.0.253
YANG data modeling language library
|
libyang support for YANG extension implementations. More...
#include "libyang.h"
Go to the source code of this file.
Data Structures | |
struct | lyext_plugin |
struct | lyext_plugin_complex |
struct | lyext_plugin_list |
Macros | |
#define | LYEXT_API_VERSION 1 |
Extensions API version. More... | |
#define | LYEXT_VERSION_CHECK int lyext_api_version = LYEXT_API_VERSION; |
Macro to store version of extension plugins API in the plugins. It is matched when the plugin is being loaded by libyang. More... | |
#define | LYEXT_LOG(ctx, level, plugin, str, args...) lyext_log(ctx, level, plugin, __func__, str, ##args); \ |
Logging macro for extension plugins. More... | |
#define | LYEXT_VLOG(ctx, vecode, plugin, elem_type, elem, str, args...) lyext_vlog(ctx, vecode, plugin, __func__, elem_type, elem, str, ##args) |
Validation logging macro for extension plugins. More... | |
Typedefs | |
typedef int(* | lyext_check_position_clb )(const void *parent, LYEXT_PAR parent_type, LYEXT_SUBSTMT substmt_type) |
Callback to check that the extension can be instantiated inside the provided node. More... | |
typedef int(* | lyext_check_result_clb )(struct lys_ext_instance *ext) |
Callback to check that the extension instance is correct - have the valid argument, cardinality, etc. More... | |
typedef int(* | lyext_check_inherit_clb )(struct lys_ext_instance *ext, struct lys_node *node) |
Callback to decide whether the extension will be inherited into the provided schema node. The extension instance is always from some of the node's parents. The inherited extension instances are marked with the LYEXT_OPT_INHERIT flag. More... | |
typedef int(* | lyext_valid_data_clb )(struct lys_ext_instance *ext, struct lyd_node *node) |
Callback to decide if data is valid towards to schema. More... | |
Functions | |
void | lyext_log (const struct ly_ctx *ctx, LY_LOG_LEVEL level, const char *plugin, const char *function, const char *format,...) |
Logging function for extension plugins, use LYEXT_LOG macro instead! More... | |
void | lyext_vlog (const struct ly_ctx *ctx, LY_VECODE vecode, const char *plugin, const char *function, LYEXT_VLOG_ELEM elem_type, const void *elem, const char *format,...) |
Validation logging function for extension plugins, use LYEXT_VLOG macro instead! More... | |
void | lys_iffeature_free (struct ly_ctx *ctx, struct lys_iffeature *iffeature, uint8_t iffeature_size, int shallow, void(*private_destructor)(const struct lys_node *node, void *priv)) |
Free iffeature structure. In API only for plugins that want to handle if-feature statements similarly to libyang. More... | |
libyang support for YANG extension implementations.
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 extensions.h.