]> git.proxmox.com Git - mirror_frr.git/blame - bgpd/rfapi/vnc_export_table.h
Merge pull request #12816 from gpnaveen/stc_rte_err_msg
[mirror_frr.git] / bgpd / rfapi / vnc_export_table.h
CommitLineData
acddc0ed 1// SPDX-License-Identifier: GPL-2.0-or-later
d62a17ae 2/*
65efcfce
LB
3 *
4 * Copyright 2009-2016, LabN Consulting, L.L.C.
5 *
65efcfce
LB
6 */
7
8#ifndef _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
9#define _QUAGGA_VNC_VNC_EXPORT_TABLE_H_
10
f8b6f499
LB
11#include "lib/table.h"
12#include "lib/thread.h"
13#include "lib/vty.h"
65efcfce 14
f8b6f499 15#include "bgpd/bgpd.h"
65efcfce
LB
16
17#define VNC_EXPORT_TYPE_BGP 1
18#define VNC_EXPORT_TYPE_ZEBRA 2
19
d62a17ae 20typedef enum vnc_export_type {
21 EXPORT_TYPE_BGP,
22 EXPORT_TYPE_ZEBRA
65efcfce
LB
23} vnc_export_type_t;
24
d62a17ae 25struct vnc_export_info {
26 struct vnc_export_info *next;
fe08ba7e 27 struct agg_node *node;
d62a17ae 28 struct peer *peer;
d7c0a89a
QY
29 uint8_t type;
30 uint8_t subtype;
d62a17ae 31 uint32_t lifetime;
32 struct thread *timer;
65efcfce
LB
33};
34
fe08ba7e 35extern struct agg_node *vnc_etn_get(struct bgp *bgp, vnc_export_type_t type,
5a1ae2c2 36 const struct prefix *p);
65efcfce 37
fe08ba7e 38extern struct agg_node *vnc_etn_lookup(struct bgp *bgp, vnc_export_type_t type,
5a1ae2c2 39 const struct prefix *p);
65efcfce 40
5a1ae2c2
DS
41extern struct vnc_export_info *
42vnc_eti_get(struct bgp *bgp, vnc_export_type_t etype, const struct prefix *p,
43 struct peer *peer, uint8_t type, uint8_t subtype);
65efcfce 44
d62a17ae 45extern void vnc_eti_delete(struct vnc_export_info *goner);
65efcfce
LB
46
47extern struct vnc_export_info *
5f040085
DS
48vnc_eti_checktimer(struct bgp *bgp, vnc_export_type_t etype,
49 const struct prefix *p, struct peer *peer, uint8_t type,
50 uint8_t subtype);
65efcfce
LB
51
52
53#endif /* _QUAGGA_VNC_VNC_EXPORT_TABLE_H_ */