distribute.h
上传用户:xiaozhuqw
上传日期:2009-11-15
资源大小:1338k
文件大小:2k
源码类别:

网络

开发平台:

Unix_Linux

  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. #ifndef _ZEBRA_DISTRIBUTE_H
  22. #define _ZEBRA_DISTRIBUTE_H
  23. /* Disctirubte list types. */
  24. enum distribute_type
  25. {
  26.   DISTRIBUTE_IN,
  27.   DISTRIBUTE_OUT,
  28.   DISTRIBUTE_MAX
  29. };
  30. struct distribute
  31. {
  32.   /* Name of the interface. */
  33.   char *ifname;
  34.   /* Filter name of `in' and `out' */
  35.   char *list[DISTRIBUTE_MAX];
  36.   /* prefix-list name of `in' and `out' */
  37.   char *prefix[DISTRIBUTE_MAX];
  38. };
  39. /* Prototypes for distribute-list. */
  40. void distribute_list_init (int);
  41. void distribute_list_reset (void);
  42. void distribute_list_add_hook (void (*) (struct distribute *));
  43. void distribute_list_delete_hook (void (*) (struct distribute *));
  44. struct distribute *distribute_lookup (char *);
  45. int config_write_distribute (struct vty *);
  46. int config_show_distribute (struct vty *);
  47. enum filter_type distribute_apply_in (struct interface *, struct prefix *);
  48. enum filter_type distribute_apply_out (struct interface *, struct prefix *);
  49. #endif /* _ZEBRA_DISTRIBUTE_H */