]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_mt.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / isisd / isis_mt.c
index e0227f46563314d28e76f1592bc3d350e3f9d786..f7d4c7170f5c8a759a011e50e4d86d58c3ac5852 100644 (file)
@@ -302,7 +302,8 @@ circuit_get_mt_setting(struct isis_circuit *circuit, uint16_t mtid)
        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;
@@ -397,7 +398,7 @@ bool tlvs_to_adj_mt_set(struct isis_tlvs *tlvs, bool v4_usable, bool v6_usable,
                    && !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 {
@@ -551,3 +552,9 @@ void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit,
        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);
+}