blob: aa14e74bef13eb5db573c4856d2031769a1b4141 [file] [log] [blame]
paul718e3742002-12-13 20:15:29 +00001/*
2 * Prefix list functions.
3 * Copyright (C) 1999 Kunihiro Ishiguro
4 *
5 * This file is part of GNU Zebra.
6 *
7 * GNU Zebra is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published
9 * by the Free Software Foundation; either version 2, or (at your
10 * option) any later version.
11 *
12 * GNU Zebra is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Zebra; see the file COPYING. If not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
22
paul8cc41982005-05-06 21:25:49 +000023#ifndef _QUAGGA_PLIST_H
24#define _QUAGGA_PLIST_H
25
paul718e3742002-12-13 20:15:29 +000026enum prefix_list_type
27{
28 PREFIX_DENY,
29 PREFIX_PERMIT,
30};
31
David Lampartere66cbd12015-04-13 10:21:34 +020032struct prefix_list;
paul718e3742002-12-13 20:15:29 +000033
34struct orf_prefix
35{
36 u_int32_t seq;
37 u_char ge;
38 u_char le;
39 struct prefix p;
40};
41
42/* Prototypes. */
paul8cc41982005-05-06 21:25:49 +000043extern void prefix_list_init (void);
44extern void prefix_list_reset (void);
45extern void prefix_list_add_hook (void (*func) (struct prefix_list *));
46extern void prefix_list_delete_hook (void (*func) (struct prefix_list *));
paul718e3742002-12-13 20:15:29 +000047
David Lampartere66cbd12015-04-13 10:21:34 +020048extern const char *prefix_list_name (struct prefix_list *);
paul8cc41982005-05-06 21:25:49 +000049extern struct prefix_list *prefix_list_lookup (afi_t, const char *);
50extern enum prefix_list_type prefix_list_apply (struct prefix_list *, void *);
paul718e3742002-12-13 20:15:29 +000051
David Lamparterc9c06d02015-04-13 10:21:35 +020052extern struct prefix_list *prefix_bgp_orf_lookup (afi_t, const char *);
paul8cc41982005-05-06 21:25:49 +000053extern struct stream * prefix_bgp_orf_entry (struct stream *,
54 struct prefix_list *,
55 u_char, u_char, u_char);
56extern int prefix_bgp_orf_set (char *, afi_t, struct orf_prefix *, int, int);
David Lamparterc9c06d02015-04-13 10:21:35 +020057extern void prefix_bgp_orf_remove_all (afi_t, char *);
paul8cc41982005-05-06 21:25:49 +000058extern int prefix_bgp_show_prefix_list (struct vty *, afi_t, char *);
59
60#endif /* _QUAGGA_PLIST_H */