1/* 2 * Route filtering function. 3 * Copyright (C) 1998 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 _ZEBRA_FILTER_H 24#define _ZEBRA_FILTER_H 25 26#include "if.h" 27 28/* Filter type is made by `permit', `deny' and `dynamic'. */ 29enum filter_type 30{ 31 FILTER_DENY, 32 FILTER_PERMIT, 33 FILTER_DYNAMIC 34}; 35 36enum access_type 37{ 38 ACCESS_TYPE_STRING, 39 ACCESS_TYPE_NUMBER 40}; 41 42/* Access list */ 43struct access_list 44{ 45 char *name; 46 char *remark; 47 48 struct access_master *master; 49 50 enum access_type type; 51 52 struct access_list *next; 53 struct access_list *prev; 54 55 struct filter *head; 56 struct filter *tail; 57}; 58 59/* Prototypes for access-list. */ 60void access_list_init (void); 61void access_list_reset (void); 62void access_list_add_hook (void (*func)(struct access_list *)); 63void access_list_delete_hook (void (*func)(struct access_list *)); 64struct access_list *access_list_lookup (afi_t, char *); 65enum filter_type access_list_apply (struct access_list *, void *); 66 67#endif /* _ZEBRA_FILTER_H */ 68