]> git.proxmox.com Git - mirror_frr.git/commitdiff
isisd: modify config_write funcs to use the northbound
authorEmanuele Di Pascale <emanuele@voltanet.io>
Wed, 14 Nov 2018 13:50:53 +0000 (14:50 +0100)
committerEmanuele Di Pascale <emanuele@voltanet.io>
Tue, 18 Dec 2018 14:24:46 +0000 (15:24 +0100)
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd/isis_circuit.c
isisd/isisd.c

index 356cbde8121dc26c7fe4855be077fe2ace858b92..11fad92f40a4cbc2cb4b8f46a4bd5de2fdff069c 100644 (file)
@@ -38,6 +38,7 @@
 #include "prefix.h"
 #include "stream.h"
 #include "qobj.h"
+#include "lib/northbound_cli.h"
 
 #include "isisd/dict.h"
 #include "isisd/isis_constants.h"
@@ -919,6 +920,7 @@ DEFINE_HOOK(isis_circuit_config_write,
            (struct isis_circuit *circuit, struct vty *vty),
            (circuit, vty))
 
+#ifdef FABRICD
 int isis_interface_config_write(struct vty *vty)
 {
        struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
@@ -1141,6 +1143,33 @@ int isis_interface_config_write(struct vty *vty)
 
        return write;
 }
+#else
+int isis_interface_config_write(struct vty *vty)
+{
+       struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
+       int write = 0;
+       struct interface *ifp;
+       struct isis_circuit *circuit;
+       struct lyd_node *dnode;
+
+       FOR_ALL_INTERFACES (vrf, ifp) {
+               dnode = yang_dnode_get(
+                       running_config->dnode,
+                       "/frr-interface:lib/interface[name='%s'][vrf='%s']",
+                       ifp->name, vrf->name);
+               if (dnode == NULL)
+                       continue;
+
+               write++;
+               nb_cli_show_dnode_cmds(vty, dnode, false);
+               circuit = circuit_scan_by_ifp(ifp);
+               if (circuit)
+                       write += hook_call(isis_circuit_config_write, circuit,
+                                          vty);
+       }
+       return write;
+}
+#endif /* ifdef FABRICD */
 
 struct isis_circuit *isis_circuit_create(struct isis_area *area,
                                         struct interface *ifp)
index 9e77303d22ab0787b23dd50342536eabac51d19f..7b60f619dd97372877d986cefbbee0c61a567cba 100644 (file)
@@ -1833,6 +1833,7 @@ DEFUN (no_log_adj_changes,
        return CMD_SUCCESS;
 }
 #endif /* ifdef FABRICD */
+#ifdef FABRICD
 /* IS-IS configuration write function */
 int isis_config_write(struct vty *vty)
 {
@@ -2107,6 +2108,21 @@ int isis_config_write(struct vty *vty)
        return write;
 }
 
+#else
+/* IS-IS configuration write function */
+int isis_config_write(struct vty *vty)
+{
+       int write = 0;
+       struct lyd_node *dnode;
+
+       dnode = yang_dnode_get(running_config->dnode, "/frr-isisd:isis");
+       if (dnode)
+               nb_cli_show_dnode_cmds(vty, dnode, false);
+
+       return write;
+}
+#endif /* ifdef FABRICD */
+
 struct cmd_node router_node = {ROUTER_NODE, "%s(config-router)# ", 1};
 
 void isis_init()