]> git.proxmox.com Git - mirror_frr.git/blame - bgpd/rfapi/rfapi_backend.h
Merge pull request #11523 from pguibert6WIND/bgp_no_retain
[mirror_frr.git] / bgpd / rfapi / rfapi_backend.h
CommitLineData
d62a17ae 1/*
65efcfce
LB
2 *
3 * Copyright 2009-2016, LabN Consulting, L.L.C.
4 *
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
896014f4
DL
16 * You should have received a copy of the GNU General Public License along
17 * with this program; see the file COPYING; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
65efcfce
LB
19 */
20
21#ifndef _QUAGGA_BGP_RFAPI_BACKEND_H
22#define _QUAGGA_BGP_RFAPI_BACKEND_H
23
49e5a4a0 24#ifdef ENABLE_BGP_VNC
65efcfce 25
f8b6f499
LB
26#include "bgpd/bgp_route.h"
27#include "bgpd/bgp_nexthop.h"
65efcfce 28
d62a17ae 29extern void rfapi_init(void);
30extern void vnc_zebra_init(struct thread_master *master);
31extern void vnc_zebra_destroy(void);
65efcfce 32
d62a17ae 33extern void rfapi_delete(struct bgp *);
65efcfce 34
d62a17ae 35struct rfapi *bgp_rfapi_new(struct bgp *bgp);
36void bgp_rfapi_destroy(struct bgp *bgp, struct rfapi *h);
65efcfce 37
5a1ae2c2
DS
38extern void rfapiProcessUpdate(struct peer *peer, void *rfd,
39 const struct prefix *p, struct prefix_rd *prd,
40 struct attr *attr, afi_t afi, safi_t safi,
41 uint8_t type, uint8_t sub_type, uint32_t *label);
65efcfce
LB
42
43
5a1ae2c2
DS
44extern void rfapiProcessWithdraw(struct peer *peer, void *rfd,
45 const struct prefix *p, struct prefix_rd *prd,
46 struct attr *attr, afi_t afi, safi_t safi,
47 uint8_t type, int kill);
65efcfce 48
d62a17ae 49extern void rfapiProcessPeerDown(struct peer *peer);
65efcfce 50
4b7e6066
DS
51extern void vnc_zebra_announce(struct prefix *p,
52 struct bgp_path_info *new_select,
d62a17ae 53 struct bgp *bgp);
65efcfce 54
4b7e6066
DS
55extern void vnc_zebra_withdraw(struct prefix *p,
56 struct bgp_path_info *old_select);
65efcfce
LB
57
58
bd494ec5 59extern void rfapi_vty_out_vncinfo(struct vty *vty, const struct prefix *p,
40381db7 60 struct bgp_path_info *bpi, safi_t safi);
65efcfce
LB
61
62
d62a17ae 63extern void vnc_direct_bgp_vpn_enable(struct bgp *bgp, afi_t afi);
65efcfce 64
d62a17ae 65extern void vnc_direct_bgp_vpn_disable(struct bgp *bgp, afi_t afi);
65efcfce 66
d62a17ae 67extern void vnc_direct_bgp_rh_vpn_enable(struct bgp *bgp, afi_t afi);
65efcfce 68
d62a17ae 69extern void vnc_direct_bgp_rh_vpn_disable(struct bgp *bgp, afi_t afi);
65efcfce
LB
70
71#endif /* ENABLE_BGP_VNC */
72
73#endif /* _QUAGGA_BGP_RFAPI_BACKEND_H */