Annotation of embedaddon/quagga/isisd/isis_routemap.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * IS-IS Rout(e)ing protocol               - isis_routemap.c
        !             3:  *
        !             4:  * Copyright (C) 2001,2002   Sampo Saaristo
        !             5:  *                           Tampere University of Technology      
        !             6:  *                           Institute of Communications Engineering
        !             7:  *
        !             8:  *
        !             9:  * This program is free software; you can redistribute it and/or modify it 
        !            10:  * under the terms of the GNU General Public Licenseas published by the Free 
        !            11:  * Software Foundation; either version 2 of the License, or (at your option) 
        !            12:  * any later version.
        !            13:  *
        !            14:  * This program is distributed in the hope that it will be useful,but WITHOUT 
        !            15:  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
        !            17:  * more details.
        !            18: 
        !            19:  * You should have received a copy of the GNU General Public License along 
        !            20:  * with this program; if not, write to the Free Software Foundation, Inc., 
        !            21:  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
        !            22:  */
        !            23: #include <zebra.h>
        !            24: 
        !            25: #include "thread.h"
        !            26: #include "linklist.h"
        !            27: #include "vty.h"
        !            28: #include "log.h"
        !            29: #include "memory.h"
        !            30: #include "prefix.h"
        !            31: #include "hash.h"
        !            32: #include "if.h"
        !            33: #include "table.h"
        !            34: #include "routemap.h"
        !            35: 
        !            36: #include "isis_constants.h"
        !            37: #include "isis_common.h"
        !            38: #include "dict.h"
        !            39: #include "isisd.h"
        !            40: #include "isis_misc.h"
        !            41: #include "isis_adjacency.h"
        !            42: #include "isis_circuit.h"
        !            43: #include "isis_tlv.h"
        !            44: #include "isis_pdu.h"
        !            45: #include "isis_lsp.h"
        !            46: #include "isis_spf.h"
        !            47: #include "isis_route.h"
        !            48: #include "isis_zebra.h"
        !            49: 
        !            50: extern struct isis *isis;
        !            51: 
        !            52: /*
        !            53:  * Prototypes.
        !            54:  */
        !            55: void isis_route_map_upd(const char *);
        !            56: void isis_route_map_event(route_map_event_t, const char *);
        !            57: void isis_route_map_init(void);
        !            58: 
        !            59: 
        !            60: void
        !            61: isis_route_map_upd (const char *name)
        !            62: {
        !            63:   int i = 0;
        !            64: 
        !            65:   if (!isis)
        !            66:     return;
        !            67: 
        !            68:   for (i = 0; i <= ZEBRA_ROUTE_MAX; i++)
        !            69:     {
        !            70:       if (isis->rmap[i].name)
        !            71:        isis->rmap[i].map = isis->rmap[i].map =
        !            72:          route_map_lookup_by_name (isis->rmap[i].name);
        !            73:       else
        !            74:        isis->rmap[i].map = NULL;
        !            75:     }
        !            76:   /* FIXME: do the address family sub-mode AF_INET6 here ? */
        !            77: }
        !            78: 
        !            79: void
        !            80: isis_route_map_event (route_map_event_t event, const char *name)
        !            81: {
        !            82:   int type;
        !            83: 
        !            84:   if (!isis)
        !            85:     return;
        !            86: 
        !            87:   for (type = 0; type <= ZEBRA_ROUTE_MAX; type++)
        !            88:     {
        !            89:       if (isis->rmap[type].name && isis->rmap[type].map &&
        !            90:          !strcmp (isis->rmap[type].name, name))
        !            91:        {
        !            92:          isis_distribute_list_update (type);
        !            93:        }
        !            94:     }
        !            95: }
        !            96: 
        !            97: void
        !            98: isis_route_map_init (void)
        !            99: {
        !           100:   route_map_init ();
        !           101:   route_map_init_vty ();
        !           102: 
        !           103:   route_map_add_hook (isis_route_map_upd);
        !           104:   route_map_delete_hook (isis_route_map_upd);
        !           105:   route_map_event_hook (isis_route_map_event);
        !           106: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>