isisd: fix display of "isis bfd" in the running configuration

Since this command is modeled using YANG, it's already displayed
as part of the call to nb_cli_show_dnode_cmds(). Calling the
'isis_circuit_config_write' hook was only making that command
to be displayed twice.

The aforementioned hook is still necessary for fabricd, which wasn't
converted to the new northbound model yet.

Fixes #6281.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
Renato Westphal 2020-04-23 11:49:01 -03:00
parent 37a816b3a1
commit 05e4ec3798
4 changed files with 11 additions and 6 deletions

View File

@ -391,6 +391,7 @@ void isis_bfd_circuit_param_set(struct isis_circuit *circuit,
isis_bfd_circuit_cmd(circuit, command); isis_bfd_circuit_cmd(circuit, command);
} }
#ifdef FABRICD
static int bfd_circuit_write_settings(struct isis_circuit *circuit, static int bfd_circuit_write_settings(struct isis_circuit *circuit,
struct vty *vty) struct vty *vty)
{ {
@ -402,6 +403,7 @@ static int bfd_circuit_write_settings(struct isis_circuit *circuit,
vty_out(vty, " %s bfd\n", PROTO_NAME); vty_out(vty, " %s bfd\n", PROTO_NAME);
return 1; return 1;
} }
#endif
void isis_bfd_init(void) void isis_bfd_init(void)
{ {
@ -413,6 +415,8 @@ void isis_bfd_init(void)
zclient->bfd_dest_replay = isis_bfd_nbr_replay; zclient->bfd_dest_replay = isis_bfd_nbr_replay;
hook_register(isis_adj_state_change_hook, hook_register(isis_adj_state_change_hook,
bfd_handle_adj_state_change); bfd_handle_adj_state_change);
#ifdef FABRICD
hook_register(isis_circuit_config_write, hook_register(isis_circuit_config_write,
bfd_circuit_write_settings); bfd_circuit_write_settings);
#endif
} }

View File

@ -963,11 +963,11 @@ void isis_circuit_print_vty(struct isis_circuit *circuit, struct vty *vty,
return; return;
} }
#ifdef FABRICD
DEFINE_HOOK(isis_circuit_config_write, DEFINE_HOOK(isis_circuit_config_write,
(struct isis_circuit *circuit, struct vty *vty), (struct isis_circuit *circuit, struct vty *vty),
(circuit, vty)) (circuit, vty))
#ifdef FABRICD
static int isis_interface_config_write(struct vty *vty) static int isis_interface_config_write(struct vty *vty)
{ {
struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
@ -1196,7 +1196,6 @@ static int isis_interface_config_write(struct vty *vty)
struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
int write = 0; int write = 0;
struct interface *ifp; struct interface *ifp;
struct isis_circuit *circuit;
struct lyd_node *dnode; struct lyd_node *dnode;
FOR_ALL_INTERFACES (vrf, ifp) { FOR_ALL_INTERFACES (vrf, ifp) {
@ -1209,10 +1208,6 @@ static int isis_interface_config_write(struct vty *vty)
write++; write++;
nb_cli_show_dnode_cmds(vty, dnode, false); 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; return write;
} }

View File

@ -208,8 +208,10 @@ ferr_r isis_circuit_passwd_hmac_md5_set(struct isis_circuit *circuit,
int isis_circuit_mt_enabled_set(struct isis_circuit *circuit, uint16_t mtid, int isis_circuit_mt_enabled_set(struct isis_circuit *circuit, uint16_t mtid,
bool enabled); bool enabled);
#ifdef FABRICD
DECLARE_HOOK(isis_circuit_config_write, DECLARE_HOOK(isis_circuit_config_write,
(struct isis_circuit *circuit, struct vty *vty), (struct isis_circuit *circuit, struct vty *vty),
(circuit, vty)) (circuit, vty))
#endif
#endif /* _ZEBRA_ISIS_CIRCUIT_H */ #endif /* _ZEBRA_ISIS_CIRCUIT_H */

View File

@ -302,6 +302,7 @@ circuit_get_mt_setting(struct isis_circuit *circuit, uint16_t mtid)
return setting; return setting;
} }
#ifdef FABRICD
static int circuit_write_mt_settings(struct isis_circuit *circuit, static int circuit_write_mt_settings(struct isis_circuit *circuit,
struct vty *vty) struct vty *vty)
{ {
@ -318,6 +319,7 @@ static int circuit_write_mt_settings(struct isis_circuit *circuit,
} }
return written; return written;
} }
#endif
struct isis_circuit_mt_setting ** struct isis_circuit_mt_setting **
circuit_mt_settings(struct isis_circuit *circuit, unsigned int *mt_count) circuit_mt_settings(struct isis_circuit *circuit, unsigned int *mt_count)
@ -552,6 +554,8 @@ void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit,
void mt_init(void) void mt_init(void)
{ {
#ifdef FABRICD
hook_register(isis_circuit_config_write, hook_register(isis_circuit_config_write,
circuit_write_mt_settings); circuit_write_mt_settings);
#endif
} }