]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/if.c
eigrpd: eigrp usage of uint32_t to struct in_addr for router_id data
[mirror_frr.git] / lib / if.c
index e02c89b9acea3e0b4daa114c739bc89057c5374e..0fd65da03a06be957888d03b2ff2bd72df6ef9cb 100644 (file)
--- a/lib/if.c
+++ b/lib/if.c
@@ -1086,12 +1086,6 @@ DEFPY_NOSH (interface,
        VRF_CMD_HELP_STR)
 {
        char xpath_list[XPATH_MAXLEN];
-       struct cli_config_change changes[] = {
-               {
-                       .xpath = ".",
-                       .operation = NB_OP_CREATE,
-               },
-       };
        vrf_id_t vrf_id;
        struct interface *ifp;
        int ret;
@@ -1136,7 +1130,8 @@ DEFPY_NOSH (interface,
                 "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifname,
                 vrfname);
 
-       ret = nb_cli_cfg_change(vty, xpath_list, changes, array_size(changes));
+       nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL);
+       ret = nb_cli_apply_changes(vty, xpath_list);
        if (ret == CMD_SUCCESS) {
                VTY_PUSH_XPATH(INTERFACE_NODE, xpath_list);
 
@@ -1162,22 +1157,14 @@ DEFPY (no_interface,
        "Interface's name\n"
        VRF_CMD_HELP_STR)
 {
-       char xpath_list[XPATH_MAXLEN];
-       struct cli_config_change changes[] = {
-               {
-                       .xpath = ".",
-                       .operation = NB_OP_DELETE,
-               },
-       };
-
        if (!vrfname)
                vrfname = VRF_DEFAULT_NAME;
 
-       snprintf(xpath_list, sizeof(xpath_list),
-                "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifname,
-                vrfname);
+       nb_cli_enqueue_change(vty, ".", NB_OP_DELETE, NULL);
 
-       return nb_cli_cfg_change(vty, xpath_list, changes, array_size(changes));
+       return nb_cli_apply_changes(
+               vty, "/frr-interface:lib/interface[name='%s'][vrf='%s']",
+               ifname, vrfname);
 }
 
 static void cli_show_interface(struct vty *vty, struct lyd_node *dnode,
@@ -1203,18 +1190,12 @@ DEFPY (interface_desc,
        "Interface specific description\n"
        "Characters describing this interface\n")
 {
-       struct cli_config_change changes[] = {
-               {
-                       .xpath = "./description",
-                       .operation = NB_OP_MODIFY,
-               },
-       };
        char *desc;
        int ret;
 
        desc = argv_concat(argv, argc, 1);
-       changes[0].value = desc;
-       ret = nb_cli_cfg_change(vty, NULL, changes, array_size(changes));
+       nb_cli_enqueue_change(vty, "./description", NB_OP_MODIFY, desc);
+       ret = nb_cli_apply_changes(vty, NULL);
        XFREE(MTYPE_TMP, desc);
 
        return ret;
@@ -1226,14 +1207,9 @@ DEFPY  (no_interface_desc,
        NO_STR
        "Interface specific description\n")
 {
-       struct cli_config_change changes[] = {
-               {
-                       .xpath = "./description",
-                       .operation = NB_OP_DELETE,
-               },
-       };
+       nb_cli_enqueue_change(vty, "./description", NB_OP_DELETE, NULL);
 
-       return nb_cli_cfg_change(vty, NULL, changes, array_size(changes));
+       return nb_cli_apply_changes(vty, NULL);
 }
 
 static void cli_show_interface_desc(struct vty *vty, struct lyd_node *dnode,
@@ -1338,7 +1314,7 @@ static int lib_interface_delete(enum nb_event event,
 {
        struct interface *ifp;
 
-       ifp = yang_dnode_get_entry(dnode);
+       ifp = yang_dnode_get_entry(dnode, true);
 
        switch (event) {
        case NB_EV_VALIDATE:
@@ -1372,7 +1348,7 @@ static int lib_interface_description_modify(enum nb_event event,
        if (event != NB_EV_APPLY)
                return NB_OK;
 
-       ifp = yang_dnode_get_entry(dnode);
+       ifp = yang_dnode_get_entry(dnode, true);
        if (ifp->desc)
                XFREE(MTYPE_TMP, ifp->desc);
        description = yang_dnode_get_string(dnode, NULL);
@@ -1389,7 +1365,7 @@ static int lib_interface_description_delete(enum nb_event event,
        if (event != NB_EV_APPLY)
                return NB_OK;
 
-       ifp = yang_dnode_get_entry(dnode);
+       ifp = yang_dnode_get_entry(dnode, true);
        if (ifp->desc)
                XFREE(MTYPE_TMP, ifp->desc);