]>
Commit | Line | Data |
---|---|---|
eb5d44eb | 1 | /* |
d62a17ae | 2 | * IS-IS Rout(e)ing protocol - isis_zebra.h |
eb5d44eb | 3 | * |
4 | * Copyright (C) 2001,2002 Sampo Saaristo | |
d62a17ae | 5 | * Tampere University of Technology |
eb5d44eb | 6 | * Institute of Communications Engineering |
7 | * | |
d62a17ae | 8 | * This program is free software; you can redistribute it and/or modify it |
9 | * under the terms of the GNU General Public Licenseas published by the Free | |
10 | * Software Foundation; either version 2 of the License, or (at your option) | |
eb5d44eb | 11 | * any later version. |
12 | * | |
d62a17ae | 13 | * This program is distributed in the hope that it will be useful,but WITHOUT |
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
eb5d44eb | 16 | * more details. |
896014f4 DL |
17 | * |
18 | * You should have received a copy of the GNU General Public License along | |
19 | * with this program; see the file COPYING; if not, write to the Free Software | |
20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
eb5d44eb | 21 | */ |
22 | #ifndef _ZEBRA_ISIS_ZEBRA_H | |
23 | #define _ZEBRA_ISIS_ZEBRA_H | |
24 | ||
dc18b3b0 K |
25 | #include "isisd.h" |
26 | ||
eb5d44eb | 27 | extern struct zclient *zclient; |
28 | ||
26f6acaf RW |
29 | struct label_chunk { |
30 | uint32_t start; | |
31 | uint32_t end; | |
32 | uint64_t used_mask; | |
33 | }; | |
34 | #define CHUNK_SIZE 64 | |
35 | ||
36 | void isis_zebra_init(struct thread_master *master, int instance); | |
8d429559 DS |
37 | void isis_zebra_stop(void); |
38 | ||
ad103789 | 39 | struct isis_route_info; |
c3f7b406 | 40 | struct sr_adjacency; |
ad103789 | 41 | |
dc18b3b0 K |
42 | void isis_zebra_route_add_route(struct isis *isis, |
43 | struct prefix *prefix, | |
0a5f3f4f RW |
44 | struct prefix_ipv6 *src_p, |
45 | struct isis_route_info *route_info); | |
dc18b3b0 K |
46 | void isis_zebra_route_del_route(struct isis *isis, |
47 | struct prefix *prefix, | |
0a5f3f4f RW |
48 | struct prefix_ipv6 *src_p, |
49 | struct isis_route_info *route_info); | |
d47d6089 RW |
50 | void isis_zebra_prefix_sid_install(struct isis_area *area, |
51 | struct prefix *prefix, | |
52 | struct isis_route_info *rinfo, | |
53 | struct isis_sr_psid_info *psid); | |
54 | void isis_zebra_prefix_sid_uninstall(struct isis_area *area, | |
55 | struct prefix *prefix, | |
56 | struct isis_route_info *rinfo, | |
57 | struct isis_sr_psid_info *psid); | |
c3f7b406 | 58 | void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra); |
d62a17ae | 59 | int isis_distribute_list_update(int routetype); |
8c6482db IR |
60 | void isis_zebra_redistribute_set(afi_t afi, int type, vrf_id_t vrf_id); |
61 | void isis_zebra_redistribute_unset(afi_t afi, int type, vrf_id_t vrf_id); | |
16fe8cff RW |
62 | int isis_zebra_rlfa_register(struct isis_spftree *spftree, struct rlfa *rlfa); |
63 | void isis_zebra_rlfa_unregister_all(struct isis_spftree *spftree); | |
58fbcdf2 OD |
64 | bool isis_zebra_label_manager_ready(void); |
65 | int isis_zebra_label_manager_connect(void); | |
26f6acaf | 66 | int isis_zebra_request_label_range(uint32_t base, uint32_t chunk_size); |
58fbcdf2 | 67 | int isis_zebra_release_label_range(uint32_t start, uint32_t end); |
65251ce8 | 68 | void isis_zebra_vrf_register(struct isis *isis); |
164ab896 | 69 | void isis_zebra_vrf_deregister(struct isis *isis); |
eb5d44eb | 70 | |
71 | #endif /* _ZEBRA_ISIS_ZEBRA_H */ |