1/* 2 * OSPF AS Boundary Router functions. 3 * Copyright (C) 1999, 2000 Kunihiro Ishiguro, Toshiaki Takada 4 * 5 * This file is part of GNU Zebra. 6 * 7 * GNU Zebra is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the 9 * Free Software Foundation; either version 2, or (at your option) any 10 * 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 Free 19 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 20 * 02111-1307, USA. 21 */ 22 23#ifndef _ZEBRA_OSPF_ASBR_H 24#define _ZEBRA_OSPF_ASBR_H 25 26struct route_map_set_values 27{ 28 int32_t metric; 29 int32_t metric_type; 30}; 31 32/* Redistributed external information. */ 33struct external_info 34{ 35 /* Type of source protocol. */ 36 u_char type; 37 38 /* Prefix. */ 39 struct prefix_ipv4 p; 40 41 /* Interface index. */ 42 unsigned int ifindex; 43 44 /* Nexthop address. */ 45 struct in_addr nexthop; 46 47 /* Additional Route tag. */ 48 u_int32_t tag; 49 50 struct route_map_set_values route_map_set; 51#define ROUTEMAP_METRIC(E) (E)->route_map_set.metric 52#define ROUTEMAP_METRIC_TYPE(E) (E)->route_map_set.metric_type 53}; 54 55#define OSPF_ASBR_CHECK_DELAY 30 56 57void ospf_external_route_remove (struct prefix_ipv4 *p); 58struct external_info *ospf_external_info_new (u_char); 59void ospf_reset_route_map_set_values (struct route_map_set_values *values); 60int ospf_route_map_set_compare (struct route_map_set_values *values1, 61 struct route_map_set_values *values2); 62struct external_info *ospf_external_info_add (u_char, struct prefix_ipv4, 63 unsigned int, struct in_addr); 64void ospf_external_info_delete (u_char, struct prefix_ipv4); 65struct external_info *ospf_external_info_lookup (u_char, struct prefix_ipv4 *); 66 67void ospf_asbr_status_update (u_char); 68 69void ospf_redistribute_withdraw (u_char); 70void ospf_asbr_check (); 71void ospf_schedule_asbr_check (); 72void ospf_asbr_route_install_lsa (struct ospf_lsa *); 73struct ospf_lsa *ospf_external_info_find_lsa (struct prefix_ipv4 *p); 74 75#endif /* _ZEBRA_OSPF_ASBR_H */ 76