]>
Commit | Line | Data |
---|---|---|
718e3744 | 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 | * | |
896014f4 DL |
17 | * You should have received a copy of the GNU General Public License along |
18 | * with this program; see the file COPYING; if not, write to the Free Software | |
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
718e3744 | 20 | */ |
21 | ||
22 | #ifndef _ZEBRA_OSPF_ASBR_H | |
23 | #define _ZEBRA_OSPF_ASBR_H | |
24 | ||
25 | struct route_map_set_values | |
26 | { | |
27 | int32_t metric; | |
28 | int32_t metric_type; | |
29 | }; | |
30 | ||
31 | /* Redistributed external information. */ | |
32 | struct external_info | |
33 | { | |
34 | /* Type of source protocol. */ | |
35 | u_char type; | |
36 | ||
7c8ff89e DS |
37 | u_short instance; |
38 | ||
718e3744 | 39 | /* Prefix. */ |
40 | struct prefix_ipv4 p; | |
41 | ||
42 | /* Interface index. */ | |
b892f1dd | 43 | ifindex_t ifindex; |
718e3744 | 44 | |
45 | /* Nexthop address. */ | |
46 | struct in_addr nexthop; | |
47 | ||
48 | /* Additional Route tag. */ | |
dc9ffce8 | 49 | route_tag_t tag; |
718e3744 | 50 | |
51 | struct route_map_set_values route_map_set; | |
52 | #define ROUTEMAP_METRIC(E) (E)->route_map_set.metric | |
53 | #define ROUTEMAP_METRIC_TYPE(E) (E)->route_map_set.metric_type | |
54 | }; | |
55 | ||
56 | #define OSPF_ASBR_CHECK_DELAY 30 | |
57 | ||
4dadc291 | 58 | extern void ospf_external_route_remove (struct ospf *, struct prefix_ipv4 *); |
7c8ff89e | 59 | extern struct external_info *ospf_external_info_new (u_char, u_short); |
4dadc291 | 60 | extern void ospf_reset_route_map_set_values (struct route_map_set_values *); |
61 | extern int ospf_route_map_set_compare (struct route_map_set_values *, | |
d4a53d58 | 62 | struct route_map_set_values *); |
7c8ff89e | 63 | extern struct external_info *ospf_external_info_add (u_char, u_short, |
d4a53d58 | 64 | struct prefix_ipv4, |
b892f1dd | 65 | ifindex_t, |
0d9551dc | 66 | struct in_addr, |
dc9ffce8 | 67 | route_tag_t); |
7c8ff89e DS |
68 | extern void ospf_external_info_delete (u_char, u_short, struct prefix_ipv4); |
69 | extern struct external_info *ospf_external_info_lookup (u_char, u_short, | |
d4a53d58 | 70 | struct prefix_ipv4 *); |
4dadc291 | 71 | extern struct ospf_route *ospf_external_route_lookup (struct ospf *, |
d4a53d58 | 72 | struct prefix_ipv4 *); |
4dadc291 | 73 | extern void ospf_asbr_status_update (struct ospf *, u_char); |
718e3744 | 74 | |
7c8ff89e | 75 | extern void ospf_redistribute_withdraw (struct ospf *, u_char, u_short); |
4dadc291 | 76 | extern void ospf_asbr_check (void); |
77 | extern void ospf_schedule_asbr_check (void); | |
78 | extern void ospf_asbr_route_install_lsa (struct ospf_lsa *); | |
79 | extern struct ospf_lsa *ospf_external_info_find_lsa (struct ospf *, | |
d4a53d58 | 80 | struct prefix_ipv4 *p); |
718e3744 | 81 | |
82 | #endif /* _ZEBRA_OSPF_ASBR_H */ |