]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/yang.c
Merge pull request #4258 from nikos-github/frr-nexthop
[mirror_frr.git] / lib / yang.c
index 7982d14fdddb9c56ada01af1ae0842d6e289b85f..2f9a9aa5a3d79f76c7f46a1070044a270aa30429 100644 (file)
@@ -20,7 +20,6 @@
 #include <zebra.h>
 
 #include "log.h"
-#include "log_int.h"
 #include "lib_errors.h"
 #include "yang.h"
 #include "yang_translator.h"
@@ -513,42 +512,6 @@ void yang_dnode_change_leaf(struct lyd_node *dnode, const char *value)
        lyd_change_leaf((struct lyd_node_leaf_list *)dnode, value);
 }
 
-void yang_dnode_set_entry(const struct lyd_node *dnode, void *entry)
-{
-       assert(CHECK_FLAG(dnode->schema->nodetype, LYS_LIST | LYS_CONTAINER));
-       lyd_set_private(dnode, entry);
-}
-
-void *yang_dnode_get_entry(const struct lyd_node *dnode,
-                          bool abort_if_not_found)
-{
-       const struct lyd_node *orig_dnode = dnode;
-       char xpath[XPATH_MAXLEN];
-
-       while (dnode) {
-               switch (dnode->schema->nodetype) {
-               case LYS_CONTAINER:
-               case LYS_LIST:
-                       if (dnode->priv)
-                               return dnode->priv;
-                       break;
-               default:
-                       break;
-               }
-
-               dnode = dnode->parent;
-       }
-
-       if (!abort_if_not_found)
-               return NULL;
-
-       yang_dnode_get_path(orig_dnode, xpath, sizeof(xpath));
-       flog_err(EC_LIB_YANG_DNODE_NOT_FOUND,
-                "%s: failed to find entry [xpath %s]", __func__, xpath);
-       zlog_backtrace(LOG_ERR);
-       abort();
-}
-
 struct lyd_node *yang_dnode_new(struct ly_ctx *ly_ctx, bool config_only)
 {
        struct lyd_node *dnode;
@@ -629,12 +592,6 @@ struct yang_data *yang_data_list_find(const struct list *list,
        return NULL;
 }
 
-static void *ly_dup_cb(const void *priv)
-{
-       /* Make a shallow copy of the priv pointer. */
-       return (void *)priv;
-}
-
 /* Make libyang log its errors using FRR logging infrastructure. */
 static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path)
 {
@@ -660,14 +617,6 @@ static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path)
                zlog(priority, "libyang: %s", msg);
 }
 
-#if CONFDATE > 20190401
-CPP_NOTICE("lib/yang: time to remove non-LIBYANG_EXT_BUILTIN support")
-#endif
-
-#ifdef LIBYANG_EXT_BUILTIN
-extern struct lytype_plugin_list frr_user_types[];
-#endif
-
 struct ly_ctx *yang_ctx_new_setup(void)
 {
        struct ly_ctx *ctx;
@@ -693,54 +642,16 @@ struct ly_ctx *yang_ctx_new_setup(void)
 
 void yang_init(void)
 {
-#ifndef LIBYANG_EXT_BUILTIN
-CPP_NOTICE("lib/yang: deprecated libyang <0.16.74 extension loading in use!")
-       static char ly_plugin_dir[PATH_MAX];
-       const char *const *ly_loaded_plugins;
-       const char *ly_plugin;
-       bool found_ly_frr_types = false;
-
-       /* Tell libyang where to find its plugins. */
-       snprintf(ly_plugin_dir, sizeof(ly_plugin_dir), "%s=%s",
-                "LIBYANG_USER_TYPES_PLUGINS_DIR", LIBYANG_PLUGINS_PATH);
-       putenv(ly_plugin_dir);
-#endif
-
        /* Initialize libyang global parameters that affect all containers. */
        ly_set_log_clb(ly_log_cb, 1);
        ly_log_options(LY_LOLOG | LY_LOSTORE);
 
-#ifdef LIBYANG_EXT_BUILTIN
-       if (ly_register_types(frr_user_types, "frr_user_types")) {
-               flog_err(EC_LIB_LIBYANG_PLUGIN_LOAD,
-                        "ly_register_types() failed");
-               exit(1);
-       }
-#endif
-
        /* Initialize libyang container for native models. */
        ly_native_ctx = yang_ctx_new_setup();
        if (!ly_native_ctx) {
                flog_err(EC_LIB_LIBYANG, "%s: ly_ctx_new() failed", __func__);
                exit(1);
        }
-       ly_ctx_set_priv_dup_clb(ly_native_ctx, ly_dup_cb);
-
-#ifndef LIBYANG_EXT_BUILTIN
-       /* Detect if the required libyang plugin(s) were loaded successfully. */
-       ly_loaded_plugins = ly_get_loaded_plugins();
-       for (size_t i = 0; (ly_plugin = ly_loaded_plugins[i]); i++) {
-               if (strmatch(ly_plugin, "frr_user_types")) {
-                       found_ly_frr_types = true;
-                       break;
-               }
-       }
-       if (!found_ly_frr_types) {
-               flog_err(EC_LIB_LIBYANG_PLUGIN_LOAD,
-                        "%s: failed to load frr_user_types.so", __func__);
-               exit(1);
-       }
-#endif
 
        yang_translator_init();
 }