1/* Distribute list functions header 2 * Copyright (C) 1999 Kunihiro Ishiguro 3 * 4 * This file is part of GNU Zebra. 5 * 6 * GNU Zebra is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published 8 * by the Free Software Foundation; either version 2, or (at your 9 * option) any later version. 10 * 11 * GNU Zebra is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GNU Zebra; see the file COPYING. If not, write to the 18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 * Boston, MA 02111-1307, USA. 20 */ 21 22#ifndef _ZEBRA_DISTRIBUTE_H 23#define _ZEBRA_DISTRIBUTE_H 24 25/* Disctirubte list types. */ 26enum distribute_type 27{ 28 DISTRIBUTE_IN, 29 DISTRIBUTE_OUT, 30 DISTRIBUTE_MAX 31}; 32 33struct distribute 34{ 35 /* Name of the interface. */ 36 char *ifname; 37 38 /* Filter name of `in' and `out' */ 39 char *list[DISTRIBUTE_MAX]; 40 41 /* prefix-list name of `in' and `out' */ 42 char *prefix[DISTRIBUTE_MAX]; 43}; 44 45/* Prototypes for distribute-list. */ 46void distribute_list_init (int); 47void distribute_list_reset (void); 48void distribute_list_add_hook (void (*) (struct distribute *)); 49void distribute_list_delete_hook (void (*) (struct distribute *)); 50struct distribute *distribute_lookup (char *); 51int config_write_distribute (struct vty *); 52int config_show_distribute (struct vty *); 53 54enum filter_type distribute_apply_in (struct interface *, struct prefix *); 55enum filter_type distribute_apply_out (struct interface *, struct prefix *); 56 57#endif /* _ZEBRA_DISTRIBUTE_H */ 58