1/* 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 23#define AFI_ORF_PREFIX 65535 24 25enum prefix_list_type 26{ 27 PREFIX_DENY, 28 PREFIX_PERMIT, 29}; 30 31enum prefix_name_type 32{ 33 PREFIX_TYPE_STRING, 34 PREFIX_TYPE_NUMBER 35}; 36 37struct prefix_list 38{ 39 char *name; 40 char *desc; 41 42 struct prefix_master *master; 43 44 enum prefix_name_type type; 45 46 int count; 47 int rangecount; 48 49 struct prefix_list_entry *head; 50 struct prefix_list_entry *tail; 51 52 struct prefix_list *next; 53 struct prefix_list *prev; 54}; 55 56struct orf_prefix 57{ 58 u_int32_t seq; 59 u_char ge; 60 u_char le; 61 struct prefix p; 62}; 63 64/* Prototypes. */ 65void prefix_list_init (void); 66void prefix_list_reset (void); 67void prefix_list_add_hook (void (*func) (struct prefix_list *)); 68void prefix_list_delete_hook (void (*func) (struct prefix_list *)); 69 70struct prefix_list *prefix_list_lookup (afi_t, char *); 71enum prefix_list_type prefix_list_apply (struct prefix_list *, void *); 72 73struct stream * 74prefix_bgp_orf_entry (struct stream *, struct prefix_list *, 75 u_char, u_char, u_char); 76int prefix_bgp_orf_set (char *, afi_t, struct orf_prefix *, int, int); 77void prefix_bgp_orf_remove_all (char *); 78int prefix_bgp_show_prefix_list (struct vty *, afi_t, char *); 79