X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=bgpd%2Fbgp_clist.h;h=9efb34d7b92d980486ce0b91b9c34545da24e1f9;hb=2569910bb6e5c00ececc60ed15b182e14a88cb9d;hp=68e45c8f7bcde409d49848977ce84eca76398507;hpb=7f12cb2b659196bd818b3d5ddd1929d83dc85069;p=mirror_frr.git diff --git a/bgpd/bgp_clist.h b/bgpd/bgp_clist.h index 68e45c8f7..9efb34d7b 100644 --- a/bgpd/bgp_clist.h +++ b/bgpd/bgp_clist.h @@ -1,22 +1,22 @@ /* BGP Community list. - Copyright (C) 1999 Kunihiro Ishiguro - -This file is part of GNU Zebra. - -GNU Zebra is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -GNU Zebra is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Zebra; see the file COPYING. If not, write to the Free -Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ + * Copyright (C) 1999 Kunihiro Ishiguro + * + * This file is part of GNU Zebra. + * + * GNU Zebra is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * GNU Zebra is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; see the file COPYING; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef _QUAGGA_BGP_CLIST_H #define _QUAGGA_BGP_CLIST_H @@ -43,82 +43,76 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #define LARGE_COMMUNITY_LIST_EXPANDED 5 /* Expanded Large community-list. */ /* Community-list. */ -struct community_list -{ - /* Name of the community-list. */ - char *name; +struct community_list { + /* Name of the community-list. */ + char *name; - /* String or number. */ - int sort; + /* String or number. */ + int sort; - /* Link to upper list. */ - struct community_list_list *parent; + /* Link to upper list. */ + struct community_list_list *parent; - /* Linked list for other community-list. */ - struct community_list *next; - struct community_list *prev; + /* Linked list for other community-list. */ + struct community_list *next; + struct community_list *prev; - /* Community-list entry in this community-list. */ - struct community_entry *head; - struct community_entry *tail; + /* Community-list entry in this community-list. */ + struct community_entry *head; + struct community_entry *tail; }; /* Each entry in community-list. */ -struct community_entry -{ - struct community_entry *next; - struct community_entry *prev; +struct community_entry { + struct community_entry *next; + struct community_entry *prev; - /* Permit or deny. */ - u_char direct; + /* Permit or deny. */ + uint8_t direct; - /* Standard or expanded. */ - u_char style; + /* Standard or expanded. */ + uint8_t style; - /* Any match. */ - u_char any; + /* Any match. */ + uint8_t any; - /* Community structure. */ - union - { - struct community *com; - struct ecommunity *ecom; - struct lcommunity *lcom; - } u; + /* Community structure. */ + union { + struct community *com; + struct ecommunity *ecom; + struct lcommunity *lcom; + } u; - /* Configuration string. */ - char *config; + /* Configuration string. */ + char *config; - /* Expanded community-list regular expression. */ - regex_t *reg; + /* Expanded community-list regular expression. */ + regex_t *reg; }; /* Linked list of community-list. */ -struct community_list_list -{ - struct community_list *head; - struct community_list *tail; +struct community_list_list { + struct community_list *head; + struct community_list *tail; }; /* Master structure of community-list and extcommunity-list. */ -struct community_list_master -{ - struct community_list_list num; - struct community_list_list str; +struct community_list_master { + struct community_list_list num; + struct community_list_list str; }; /* Community-list handler. community_list_init() returns this structure as handler. */ -struct community_list_handler -{ - /* Community-list. */ - struct community_list_master community_list; +struct community_list_handler { + /* Community-list. */ + struct community_list_master community_list; - /* Exteded community-list. */ - struct community_list_master extcommunity_list; + /* Exteded community-list. */ + struct community_list_master extcommunity_list; - /* Large community-list. */ - struct community_list_master lcommunity_list; + /* Large community-list. */ + struct community_list_master lcommunity_list; }; /* Error code of community-list. */ @@ -131,42 +125,42 @@ struct community_list_handler extern struct community_list_handler *bgp_clist; /* Prototypes. */ -extern struct community_list_handler *community_list_init (void); -extern void community_list_terminate (struct community_list_handler *); - -extern int community_list_set (struct community_list_handler *ch, +extern struct community_list_handler *community_list_init(void); +extern void community_list_terminate(struct community_list_handler *); + +extern int community_list_set(struct community_list_handler *ch, + const char *name, const char *str, int direct, + int style); +extern int community_list_unset(struct community_list_handler *ch, + const char *name, const char *str, int direct, + int style); +extern int extcommunity_list_set(struct community_list_handler *ch, + const char *name, const char *str, int direct, + int style); +extern int extcommunity_list_unset(struct community_list_handler *ch, + const char *name, const char *str, + int direct, int style); +extern int lcommunity_list_set(struct community_list_handler *ch, const char *name, const char *str, int direct, int style); -extern int community_list_unset (struct community_list_handler *ch, - const char *name, const char *str, - int direct, int style, int delete_all); -extern int extcommunity_list_set (struct community_list_handler *ch, - const char *name, const char *str, - int direct, int style); -extern int extcommunity_list_unset (struct community_list_handler *ch, - const char *name, const char *str, - int direct, int style, int delete_all); -extern int lcommunity_list_set (struct community_list_handler *ch, - const char *name, const char *str, - int direct, int style); -extern int lcommunity_list_unset (struct community_list_handler *ch, - const char *name, const char *str, - int direct, int style); +extern int lcommunity_list_unset(struct community_list_handler *ch, + const char *name, const char *str, int direct, + int style); extern struct community_list_master * -community_list_master_lookup (struct community_list_handler *, int); +community_list_master_lookup(struct community_list_handler *, int); extern struct community_list * -community_list_lookup (struct community_list_handler *, const char *, int); - -extern int community_list_match (struct community *, struct community_list *); -extern int ecommunity_list_match (struct ecommunity *, struct community_list *); -extern int lcommunity_list_match (struct lcommunity *, struct community_list *); -extern int community_list_exact_match (struct community *, - struct community_list *); -extern struct community * -community_list_match_delete (struct community *, struct community_list *); +community_list_lookup(struct community_list_handler *, const char *, int); + +extern int community_list_match(struct community *, struct community_list *); +extern int ecommunity_list_match(struct ecommunity *, struct community_list *); +extern int lcommunity_list_match(struct lcommunity *, struct community_list *); +extern int community_list_exact_match(struct community *, + struct community_list *); +extern struct community *community_list_match_delete(struct community *, + struct community_list *); extern struct lcommunity * -lcommunity_list_match_delete (struct lcommunity *lcom, - struct community_list *list); +lcommunity_list_match_delete(struct lcommunity *lcom, + struct community_list *list); #endif /* _QUAGGA_BGP_CLIST_H */