]> git.proxmox.com Git - mirror_frr.git/blame - bgpd/rfapi/rfapi_backend.h
*: make consistent & update GPLv2 file headers
[mirror_frr.git] / bgpd / rfapi / rfapi_backend.h
CommitLineData
65efcfce
LB
1/*
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
24#if ENABLE_BGP_VNC
25
f8b6f499
LB
26#include "bgpd/bgp_route.h"
27#include "bgpd/bgp_nexthop.h"
65efcfce
LB
28
29extern void rfapi_init (void);
30extern void vnc_zebra_init (struct thread_master *master);
31extern void vnc_zebra_destroy (void);
32
33extern void rfapi_delete (struct bgp *);
34
35struct rfapi *bgp_rfapi_new (struct bgp *bgp);
36void bgp_rfapi_destroy (struct bgp *bgp, struct rfapi *h);
37
65efcfce
LB
38extern void
39rfapiProcessUpdate (struct peer *peer,
40 void *rfd,
41 struct prefix *p,
42 struct prefix_rd *prd,
43 struct attr *attr,
44 afi_t afi,
45 safi_t safi,
46 u_char type, u_char sub_type, uint32_t * label);
47
48
49extern void
50rfapiProcessWithdraw (struct peer *peer,
51 void *rfd,
52 struct prefix *p,
53 struct prefix_rd *prd,
54 struct attr *attr,
55 afi_t afi, safi_t safi, u_char type, int kill);
56
57extern void rfapiProcessPeerDown (struct peer *peer);
58
59extern void
60vnc_zebra_announce (struct prefix *p,
61 struct bgp_info *new_select, struct bgp *bgp);
62
63extern void
64vnc_zebra_withdraw (struct prefix *p, struct bgp_info *old_select);
65
66
67extern void
68rfapi_vty_out_vncinfo (struct vty *vty,
69 struct prefix *p, struct bgp_info *bi, safi_t safi);
70
71
72extern void vnc_direct_bgp_vpn_enable (struct bgp *bgp, afi_t afi);
73
74extern void vnc_direct_bgp_vpn_disable (struct bgp *bgp, afi_t afi);
75
76extern void vnc_direct_bgp_rh_vpn_enable (struct bgp *bgp, afi_t afi);
77
78extern void vnc_direct_bgp_rh_vpn_disable (struct bgp *bgp, afi_t afi);
79
80#endif /* ENABLE_BGP_VNC */
81
82#endif /* _QUAGGA_BGP_RFAPI_BACKEND_H */