X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=isisd%2Fisis_mt.h;h=b40139c50a8419ff525cf3891816e503bf96c484;hb=f94ed830df98218447f00b97f856de811bfcc4a2;hp=57a74799002271bb9d362a46fbd620eb82bd7dab;hpb=7ef5fefc3c10f8dc6034344b9a0eed9b365332de;p=mirror_frr.git diff --git a/isisd/isis_mt.h b/isisd/isis_mt.h index 57a747990..b40139c50 100644 --- a/isisd/isis_mt.h +++ b/isisd/isis_mt.h @@ -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 \ "" #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