]> git.proxmox.com Git - mirror_frr.git/blob - isisd/isis_zebra.h
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / isisd / isis_zebra.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * IS-IS Rout(e)ing protocol - isis_zebra.h
4 *
5 * Copyright (C) 2001,2002 Sampo Saaristo
6 * Tampere University of Technology
7 * Institute of Communications Engineering
8 */
9 #ifndef _ZEBRA_ISIS_ZEBRA_H
10 #define _ZEBRA_ISIS_ZEBRA_H
11
12 #include "isisd.h"
13
14 extern struct zclient *zclient;
15
16 struct label_chunk {
17 uint32_t start;
18 uint32_t end;
19 uint64_t used_mask;
20 };
21 #define CHUNK_SIZE 64
22
23 void isis_zebra_init(struct thread_master *master, int instance);
24 void isis_zebra_stop(void);
25
26 struct isis_route_info;
27 struct sr_adjacency;
28
29 void isis_zebra_route_add_route(struct isis *isis,
30 struct prefix *prefix,
31 struct prefix_ipv6 *src_p,
32 struct isis_route_info *route_info);
33 void isis_zebra_route_del_route(struct isis *isis,
34 struct prefix *prefix,
35 struct prefix_ipv6 *src_p,
36 struct isis_route_info *route_info);
37 void isis_zebra_prefix_sid_install(struct isis_area *area,
38 struct prefix *prefix,
39 struct isis_route_info *rinfo,
40 struct isis_sr_psid_info *psid);
41 void isis_zebra_prefix_sid_uninstall(struct isis_area *area,
42 struct prefix *prefix,
43 struct isis_route_info *rinfo,
44 struct isis_sr_psid_info *psid);
45 void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra);
46 int isis_distribute_list_update(int routetype);
47 void isis_zebra_redistribute_set(afi_t afi, int type, vrf_id_t vrf_id);
48 void isis_zebra_redistribute_unset(afi_t afi, int type, vrf_id_t vrf_id);
49 int isis_zebra_rlfa_register(struct isis_spftree *spftree, struct rlfa *rlfa);
50 void isis_zebra_rlfa_unregister_all(struct isis_spftree *spftree);
51 bool isis_zebra_label_manager_ready(void);
52 int isis_zebra_label_manager_connect(void);
53 int isis_zebra_request_label_range(uint32_t base, uint32_t chunk_size);
54 int isis_zebra_release_label_range(uint32_t start, uint32_t end);
55 void isis_zebra_vrf_register(struct isis *isis);
56 void isis_zebra_vrf_deregister(struct isis *isis);
57 int isis_zebra_ls_register(bool up);
58
59 #endif /* _ZEBRA_ISIS_ZEBRA_H */