]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: support to sysrepo-2.0.41 10797/head
authorFabio Antonini <f.antonini@tiesse.com>
Tue, 15 Mar 2022 11:11:32 +0000 (12:11 +0100)
committerFabio Antonini <f.antonini@tiesse.com>
Tue, 15 Mar 2022 15:30:00 +0000 (16:30 +0100)
northbound_sysrepo.c fixed to use the newer APIs from sysrepo 2.0.41

Signed-off-by: Fabio Antonini <f.antonini@tiesse.com>
lib/northbound_sysrepo.c

index 0158d8ea0a001a7af695459c15532d155987f55d..8a64347871ff8c0da2bcdea2173ff4c4ddf00496 100644 (file)
@@ -77,11 +77,11 @@ static int yang_data_frr2sr(struct yang_data *frr_data, sr_val_t *sr_data)
                return 0;
        case LYS_LEAF:
                sleaf = (struct lysc_node_leaf *)snode;
-               type = sleaf->type.base;
+               type = sleaf->type->basetype;
                break;
        case LYS_LEAFLIST:
                sleaflist = (struct lysc_node_leaflist *)snode;
-               type = sleaflist->type.base;
+               type = sleaflist->type->basetype;
                break;
        default:
                return -1;
@@ -301,7 +301,7 @@ static int frr_sr_config_change_cb_prepare(sr_session_ctx_t *session,
        case NB_ERR_LOCKED:
                return SR_ERR_LOCKED;
        case NB_ERR_RESOURCE:
-               return SR_ERR_NOMEM;
+               return SR_ERR_NO_MEMORY;
        default:
                return SR_ERR_VALIDATION_FAILED;
        }
@@ -339,7 +339,7 @@ static int frr_sr_config_change_cb_abort(sr_session_ctx_t *session,
 }
 
 /* Callback for changes in the running configuration. */
-static int frr_sr_config_change_cb(sr_session_ctx_t *session,
+static int frr_sr_config_change_cb(sr_session_ctx_t *session, uint32_t sub_id,
                                   const char *module_name, const char *xpath,
                                   sr_event_t sr_ev, uint32_t request_id,
                                   void *private_data)
@@ -364,10 +364,11 @@ static int frr_sr_state_data_iter_cb(const struct lysc_node *snode,
                                     struct yang_data *data, void *arg)
 {
        struct lyd_node *dnode = arg;
+       LY_ERR ly_errno;
 
        ly_errno = 0;
-       dnode = lyd_new_path(dnode, ly_native_ctx, data->xpath, data->value, 0,
-                            LYD_PATH_OPT_UPDATE);
+       ly_errno = lyd_new_path(NULL, ly_native_ctx, data->xpath, data->value,
+                               0, &dnode);
        if (!dnode && ly_errno) {
                flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed",
                          __func__);
@@ -380,10 +381,10 @@ static int frr_sr_state_data_iter_cb(const struct lysc_node *snode,
 }
 
 /* Callback for state retrieval. */
-static int frr_sr_state_cb(sr_session_ctx_t *session, const char *module_name,
-                          const char *xpath, const char *request_xpath,
-                          uint32_t request_id, struct lyd_node **parent,
-                          void *private_ctx)
+static int frr_sr_state_cb(sr_session_ctx_t *session, uint32_t sub_id,
+                          const char *module_name, const char *xpath,
+                          const char *request_xpath, uint32_t request_id,
+                          struct lyd_node **parent, void *private_ctx)
 {
        struct lyd_node *dnode;
 
@@ -401,9 +402,8 @@ static int frr_sr_state_cb(sr_session_ctx_t *session, const char *module_name,
 
        return SR_ERR_OK;
 }
-
-static int frr_sr_config_rpc_cb(sr_session_ctx_t *session, const char *xpath,
-                               const sr_val_t *sr_input,
+static int frr_sr_config_rpc_cb(sr_session_ctx_t *session, uint32_t sub_id,
+                               const char *xpath, const sr_val_t *sr_input,
                                const size_t input_cnt, sr_event_t sr_ev,
                                uint32_t request_id, sr_val_t **sr_output,
                                size_t *sr_output_cnt, void *private_ctx)
@@ -515,7 +515,7 @@ static int frr_sr_notification_send(const char *xpath, struct list *arguments)
                }
        }
 
-       ret = sr_event_notif_send(session, xpath, values, values_cnt);
+       ret = sr_event_notif_send(session, xpath, values, values_cnt, 0, 0);
        if (ret != SR_ERR_OK) {
                flog_err(EC_LIB_LIBSYSREPO,
                         "%s: sr_event_notif_send() failed for xpath %s",