File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / lib / plist.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:12 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_22p0, v0_99_22, v0_99_21, v0_99_20_1, v0_99_20, HEAD
quagga

    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>