summaryrefslogtreecommitdiff
path: root/0145-cni-change-error-info.patch
diff options
context:
space:
mode:
Diffstat (limited to '0145-cni-change-error-info.patch')
-rw-r--r--0145-cni-change-error-info.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/0145-cni-change-error-info.patch b/0145-cni-change-error-info.patch
new file mode 100644
index 0000000..7f4e256
--- /dev/null
+++ b/0145-cni-change-error-info.patch
@@ -0,0 +1,97 @@
+From 445642718fd3dd7867aad9fc8e6eb5b7dafadcb6 Mon Sep 17 00:00:00 2001
+From: liuxu <liuxu156@huawei.com>
+Date: Fri, 1 Nov 2024 12:56:38 +0800
+Subject: [PATCH 145/156] cni:change error info
+
+Signed-off-by: liuxu <liuxu156@huawei.com>
+---
+ .../modules/network/cni_operator/cni_operate.c | 8 ++++----
+ .../network/cni_operator/libcni/libcni_api.c | 14 +++++++++++++-
+ .../network/cni_operator/libcni/libcni_api.h | 2 +-
+ 3 files changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/src/daemon/modules/network/cni_operator/cni_operate.c b/src/daemon/modules/network/cni_operator/cni_operate.c
+index 6db6db51..80a2642d 100644
+--- a/src/daemon/modules/network/cni_operator/cni_operate.c
++++ b/src/daemon/modules/network/cni_operator/cni_operate.c
+@@ -731,13 +731,13 @@ static int update_runtime_conf_cni_args_by_cached(cni_cached_info *info, struct
+ return 0;
+ }
+
+-static int get_configs_from_cached(const char *network, struct runtime_conf *rc, char **conf_list)
++static int get_configs_from_cached(const char *network, const char *cni_version, struct runtime_conf *rc, char **conf_list)
+ {
+ int ret = 0;
+ size_t i;
+ cni_cached_info *info = NULL;
+
+- info = cni_get_network_list_cached_info(network, rc);
++ info = cni_get_network_list_cached_info(network, cni_version, rc);
+ if (info == NULL) {
+ return 0;
+ }
+@@ -857,7 +857,7 @@ int check_network_plane(const struct cni_manager *manager, const struct cni_netw
+ goto out;
+ }
+
+- ret = get_configs_from_cached(list->list->name, rc, NULL);
++ ret = get_configs_from_cached(list->list->name, list->list->cni_version, rc, NULL);
+ if (ret != 0) {
+ ERROR("Get cached info failed");
+ ret = -1;
+@@ -901,7 +901,7 @@ int detach_network_plane(const struct cni_manager *manager, const struct cni_net
+ goto out;
+ }
+
+- ret = get_configs_from_cached(list->list->name, rc, NULL);
++ ret = get_configs_from_cached(list->list->name, list->list->cni_version, rc, NULL);
+ if (ret != 0) {
+ ERROR("Get cached info failed");
+ ret = -1;
+diff --git a/src/daemon/modules/network/cni_operator/libcni/libcni_api.c b/src/daemon/modules/network/cni_operator/libcni/libcni_api.c
+index 7ba983af..c55c8e9d 100644
+--- a/src/daemon/modules/network/cni_operator/libcni/libcni_api.c
++++ b/src/daemon/modules/network/cni_operator/libcni/libcni_api.c
+@@ -81,13 +81,25 @@ struct cni_opt_result *cni_get_network_list_cached_result(const struct cni_netwo
+ return result;
+ }
+
+-cni_cached_info *cni_get_network_list_cached_info(const char *network, const struct runtime_conf *rc)
++cni_cached_info *cni_get_network_list_cached_info(const char *network, const char *cni_version, const struct runtime_conf *rc)
+ {
++ bool greater = false;
+ if (network == NULL) {
+ ERROR("Empty network");
+ return NULL;
+ }
+
++ if (util_version_greater_than_or_equal_to(cni_version, SUPPORT_CACHE_AND_CHECK_VERSION, &greater) != 0) {
++ ERROR("Invalid cni version %s", cni_version);
++ return NULL;
++ }
++
++ // CACHE was added in CNI spec version 0.4.0 and higher
++ if (!greater) {
++ WARN("result version: %s is too old, do not save this cache", cni_version);
++ return NULL;
++ }
++
+ return cni_cache_read(g_module_conf.cache_dir, network, rc);
+ }
+
+diff --git a/src/daemon/modules/network/cni_operator/libcni/libcni_api.h b/src/daemon/modules/network/cni_operator/libcni/libcni_api.h
+index 2f10d6e9..bf16f168 100644
+--- a/src/daemon/modules/network/cni_operator/libcni/libcni_api.h
++++ b/src/daemon/modules/network/cni_operator/libcni/libcni_api.h
+@@ -75,7 +75,7 @@ bool cni_module_init(const char *cache_dir, const char * const *paths, size_t pa
+ struct cni_opt_result *cni_get_network_list_cached_result(const struct cni_network_list_conf *list,
+ const struct runtime_conf *rc);
+
+-cni_cached_info *cni_get_network_list_cached_info(const char *network, const struct runtime_conf *rc);
++cni_cached_info *cni_get_network_list_cached_info(const char *network, const char *cni_version, const struct runtime_conf *rc);
+
+ int cni_add_network_list(const struct cni_network_list_conf *list, const struct runtime_conf *rc,
+ struct cni_opt_result **pret);
+--
+2.34.1
+