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