From 20600086b250b9df14d087bd69b332155022adda Mon Sep 17 00:00:00 2001 From: Emanuele Di Pascale Date: Wed, 14 Nov 2018 14:50:53 +0100 Subject: [PATCH] isisd: modify config_write funcs to use the northbound Signed-off-by: Emanuele Di Pascale --- isisd/isis_circuit.c | 29 +++++++++++++++++++++++++++++ isisd/isisd.c | 16 ++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 356cbde812..11fad92f40 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -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) diff --git a/isisd/isisd.c b/isisd/isisd.c index 9e77303d22..7b60f619dd 100644 --- a/isisd/isisd.c +++ b/isisd/isisd.c @@ -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() -- 2.39.5