void area_mt_finish(struct isis_area *area)
{
- list_delete_and_null(&area->mt_settings);
+ list_delete(&area->mt_settings);
}
struct isis_area_mt_setting *area_get_mt_setting(struct isis_area *area,
void circuit_mt_finish(struct isis_circuit *circuit)
{
- list_delete_and_null(&circuit->mt_settings);
+ list_delete(&circuit->mt_settings);
}
struct isis_circuit_mt_setting *
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->mt_router_info_empty) {
/* Other end does not have MT enabled */
if (mt_settings[i]->mtid == ISIS_MT_IPV4_UNICAST
- && v4_usable)
+ && (v4_usable || v6_usable))
adj_mt_set(adj, intersect_count++,
ISIS_MT_IPV4_UNICAST);
} else {
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);
+}