return;
}
+DEFINE_HOOK(isis_circuit_config_write,
+ (struct isis_circuit *circuit, struct vty *vty),
+ (circuit, vty))
+
int isis_interface_config_write(struct vty *vty)
{
struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);
circuit->passwd.passwd);
write++;
}
- write += circuit_write_mt_settings(circuit, vty);
+ write += hook_call(isis_circuit_config_write, circuit, vty);
}
vty_endframe(vty, "!\n");
}
int isis_circuit_mt_enabled_set(struct isis_circuit *circuit, uint16_t mtid,
bool enabled);
+DECLARE_HOOK(isis_circuit_config_write,
+ (struct isis_circuit *circuit, struct vty *vty),
+ (circuit, vty))
+
#endif /* _ZEBRA_ISIS_CIRCUIT_H */
#include "isisd/isis_vty_common.h"
#include "isisd/isis_bfd.h"
#include "isisd/isis_lsp.h"
+#include "isisd/isis_mt.h"
/* Default configuration file name */
#define ISISD_DEFAULT_CONFIG "isisd.conf"
isis_route_map_init();
isis_mpls_te_init();
lsp_init();
+ mt_init();
/* create the global 'isis' instance */
isis_new(1);
return setting;
}
-int circuit_write_mt_settings(struct isis_circuit *circuit, struct vty *vty)
+static int circuit_write_mt_settings(struct isis_circuit *circuit, struct vty *vty)
{
int written = 0;
struct listnode *node;
tlvs_add_mt_set(circuit->area, tlvs, adj->mt_count, adj->mt_set, id,
metric, subtlvs, subtlv_len);
}
+
+void mt_init(void)
+{
+ hook_register(isis_circuit_config_write,
+ circuit_write_mt_settings);
+}
void circuit_mt_finish(struct isis_circuit *circuit);
struct isis_circuit_mt_setting *
circuit_get_mt_setting(struct isis_circuit *circuit, uint16_t mtid);
-int circuit_write_mt_settings(struct isis_circuit *circuit, struct vty *vty);
struct isis_circuit_mt_setting **
circuit_mt_settings(struct isis_circuit *circuit, unsigned int *mt_count);
bool tlvs_to_adj_mt_set(struct isis_tlvs *tlvs, bool v4_usable, bool v6_usable,
void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit,
uint8_t *id, uint32_t metric, uint8_t *subtlvs,
uint8_t subtlv_len);
+void mt_init(void);
#endif