]> git.proxmox.com Git - mirror_frr.git/blame - isisd/isis_zebra.h
Merge pull request #9543 from donaldsharp/actually_set_mpls_data
[mirror_frr.git] / isisd / isis_zebra.h
CommitLineData
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 27extern struct zclient *zclient;
28
26f6acaf
RW
29struct label_chunk {
30 uint32_t start;
31 uint32_t end;
32 uint64_t used_mask;
33};
34#define CHUNK_SIZE 64
35
36void isis_zebra_init(struct thread_master *master, int instance);
8d429559
DS
37void isis_zebra_stop(void);
38
ad103789 39struct isis_route_info;
c3f7b406 40struct sr_adjacency;
ad103789 41
dc18b3b0
K
42void 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
46void 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
50void 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);
54void 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 58void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra);
d62a17ae 59int isis_distribute_list_update(int routetype);
8c6482db
IR
60void isis_zebra_redistribute_set(afi_t afi, int type, vrf_id_t vrf_id);
61void isis_zebra_redistribute_unset(afi_t afi, int type, vrf_id_t vrf_id);
16fe8cff
RW
62int isis_zebra_rlfa_register(struct isis_spftree *spftree, struct rlfa *rlfa);
63void isis_zebra_rlfa_unregister_all(struct isis_spftree *spftree);
58fbcdf2
OD
64bool isis_zebra_label_manager_ready(void);
65int isis_zebra_label_manager_connect(void);
26f6acaf 66int isis_zebra_request_label_range(uint32_t base, uint32_t chunk_size);
58fbcdf2 67int isis_zebra_release_label_range(uint32_t start, uint32_t end);
65251ce8 68void isis_zebra_vrf_register(struct isis *isis);
164ab896 69void isis_zebra_vrf_deregister(struct isis *isis);
eb5d44eb 70
71#endif /* _ZEBRA_ISIS_ZEBRA_H */