]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_mt.h
Merge pull request #5793 from ton31337/fix/formatting_show_bgp_summary_failed
[mirror_frr.git] / isisd / isis_mt.h
index 57a74799002271bb9d362a46fbd620eb82bd7dab..b40139c50a8419ff525cf3891816e503bf96c484 100644 (file)
@@ -32,6 +32,7 @@
 #define ISIS_MT_IPV4_MULTICAST 3
 #define ISIS_MT_IPV6_MULTICAST 4
 #define ISIS_MT_IPV6_MGMT      5
+#define ISIS_MT_IPV6_DSTSRC    3996 /* FIXME: IANA */
 
 #define ISIS_MT_NAMES                                                          \
        "<ipv4-unicast"                                                        \
@@ -40,6 +41,7 @@
        "|ipv4-multicast"                                                      \
        "|ipv6-multicast"                                                      \
        "|ipv6-mgmt"                                                           \
+       "|ipv6-dstsrc"                                                         \
        ">"
 
 #define ISIS_MT_DESCRIPTIONS                                                   \
@@ -48,7 +50,9 @@
        "IPv6 unicast topology\n"                                              \
        "IPv4 multicast topology\n"                                            \
        "IPv6 multicast topology\n"                                            \
-       "IPv6 management topology\n"
+       "IPv6 management topology\n"                                           \
+       "IPv6 dst-src topology\n"                                              \
+       ""
 
 #define ISIS_MT_INFO_FIELDS uint16_t mtid;
 
@@ -65,21 +69,6 @@ struct isis_circuit_mt_setting {
        bool enabled;
 };
 
-struct tlv_mt_neighbors {
-       ISIS_MT_INFO_FIELDS
-       struct list *list;
-};
-
-struct tlv_mt_ipv4_reachs {
-       ISIS_MT_INFO_FIELDS
-       struct list *list;
-};
-
-struct tlv_mt_ipv6_reachs {
-       ISIS_MT_INFO_FIELDS
-       struct list *list;
-};
-
 const char *isis_mtid2str(uint16_t mtid);
 uint16_t isis_str2mtid(const char *name);
 
@@ -88,26 +77,11 @@ struct isis_area;
 struct isis_circuit;
 struct tlvs;
 struct te_is_neigh;
+struct isis_tlvs;
 
-uint16_t isis_area_ipv6_topology(struct isis_area *area);
-
-struct mt_router_info *tlvs_lookup_mt_router_info(struct tlvs *tlvs,
-                                                 uint16_t mtid);
+bool isis_area_ipv6_dstsrc_enabled(struct isis_area *area);
 
-struct tlv_mt_neighbors *tlvs_lookup_mt_neighbors(struct tlvs *tlvs,
-                                                 uint16_t mtid);
-struct tlv_mt_neighbors *tlvs_get_mt_neighbors(struct tlvs *tlvs,
-                                              uint16_t mtid);
-
-struct tlv_mt_ipv4_reachs *tlvs_lookup_mt_ipv4_reachs(struct tlvs *tlvs,
-                                                     uint16_t mtid);
-struct tlv_mt_ipv4_reachs *tlvs_get_mt_ipv4_reachs(struct tlvs *tlvs,
-                                                  uint16_t mtid);
-
-struct tlv_mt_ipv6_reachs *tlvs_lookup_mt_ipv6_reachs(struct tlvs *tlvs,
-                                                     uint16_t mtid);
-struct tlv_mt_ipv6_reachs *tlvs_get_mt_ipv6_reachs(struct tlvs *tlvs,
-                                                  uint16_t mtid);
+uint16_t isis_area_ipv6_topology(struct isis_area *area);
 
 struct isis_area_mt_setting *area_lookup_mt_setting(struct isis_area *area,
                                                    uint16_t mtid);
@@ -135,15 +109,15 @@ void circuit_mt_init(struct isis_circuit *circuit);
 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 tlvs *tlvs, bool v4_usable, bool v6_usable,
+bool tlvs_to_adj_mt_set(struct isis_tlvs *tlvs, bool v4_usable, bool v6_usable,
                        struct isis_adjacency *adj);
 bool adj_has_mt(struct isis_adjacency *adj, uint16_t mtid);
 void adj_mt_finish(struct isis_adjacency *adj);
-void tlvs_add_mt_bcast(struct tlvs *tlvs, struct isis_circuit *circuit,
-                      int level, struct te_is_neigh *neigh);
-void tlvs_add_mt_p2p(struct tlvs *tlvs, struct isis_circuit *circuit,
-                    struct te_is_neigh *neigh);
+void tlvs_add_mt_bcast(struct isis_tlvs *tlvs, struct isis_circuit *circuit,
+                      int level, uint8_t *id, uint32_t metric);
+void tlvs_add_mt_p2p(struct isis_tlvs *tlvs, struct isis_circuit *circuit,
+                    uint8_t *id, uint32_t metric);
+void mt_init(void);
 #endif