]>
Commit | Line | Data |
---|---|---|
718e3744 | 1 | /* |
2 | * Redistribution Handler | |
3 | * Copyright (C) 1999 Kunihiro Ishiguro | |
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_REDISTRIBUTE_H | |
23 | #define _ZEBRA_REDISTRIBUTE_H | |
24 | ||
25 | #include "table.h" | |
7a4bb9c5 | 26 | #include "vty.h" |
12f6fb97 | 27 | #include "vrf.h" |
718e3744 | 28 | |
bf094f69 QY |
29 | #include "zebra/zserv.h" |
30 | #include "zebra/rib.h" | |
31 | ||
51e94aa7 EDP |
32 | #ifdef __cplusplus |
33 | extern "C" { | |
34 | #endif | |
35 | ||
1002497a | 36 | /* ZAPI command handlers */ |
89f4e507 QY |
37 | extern void zebra_redistribute_add(ZAPI_HANDLER_ARGS); |
38 | extern void zebra_redistribute_delete(ZAPI_HANDLER_ARGS); | |
39 | extern void zebra_redistribute_default_add(ZAPI_HANDLER_ARGS); | |
40 | extern void zebra_redistribute_default_delete(ZAPI_HANDLER_ARGS); | |
1002497a | 41 | /* ----------------- */ |
718e3744 | 42 | |
86391e56 MS |
43 | extern void redistribute_update(const struct prefix *p, |
44 | const struct prefix *src_p, | |
40f321c0 MS |
45 | const struct route_entry *re, |
46 | const struct route_entry *prev_re); | |
47 | /* | |
48 | * During a route delete, where 'new_re' is NULL, redist a delete to all | |
49 | * clients registered for the type of 'old_re'. | |
50 | * During a route update, redist a delete to any clients who will not see | |
51 | * an update when the new route is installed. There are cases when a client | |
52 | * may have seen a redist for 'old_re', but will not see | |
53 | * the redist for 'new_re'. | |
54 | */ | |
55 | void redistribute_delete(const struct prefix *p, const struct prefix *src_p, | |
56 | const struct route_entry *old_re, | |
57 | const struct route_entry *new_re); | |
718e3744 | 58 | |
d62a17ae | 59 | extern void zebra_interface_up_update(struct interface *); |
60 | extern void zebra_interface_down_update(struct interface *); | |
718e3744 | 61 | |
d62a17ae | 62 | extern void zebra_interface_add_update(struct interface *); |
63 | extern void zebra_interface_delete_update(struct interface *); | |
718e3744 | 64 | |
d62a17ae | 65 | extern void zebra_interface_address_add_update(struct interface *, |
66 | struct connected *); | |
67 | extern void zebra_interface_address_delete_update(struct interface *, | |
68 | struct connected *c); | |
69 | extern void zebra_interface_parameters_update(struct interface *); | |
70 | extern void zebra_interface_vrf_update_del(struct interface *, | |
71 | vrf_id_t new_vrf_id); | |
72 | extern void zebra_interface_vrf_update_add(struct interface *, | |
73 | vrf_id_t old_vrf_id); | |
8902474b | 74 | |
fe257ae7 DS |
75 | extern int zebra_import_table(afi_t afi, vrf_id_t vrf_id, |
76 | uint32_t table_id, uint32_t distance, | |
d62a17ae | 77 | const char *rmap_name, int add); |
7a4bb9c5 | 78 | |
fe257ae7 DS |
79 | extern int zebra_add_import_table_entry(struct zebra_vrf *zvrf, |
80 | struct route_node *rn, | |
d62a17ae | 81 | struct route_entry *re, |
82 | const char *rmap_name); | |
fe257ae7 DS |
83 | extern int zebra_del_import_table_entry(struct zebra_vrf *zvrf, |
84 | struct route_node *rn, | |
d62a17ae | 85 | struct route_entry *re); |
fe257ae7 DS |
86 | extern int is_zebra_import_table_enabled(afi_t, vrf_id_t vrf_id, |
87 | uint32_t table_id); | |
7a4bb9c5 | 88 | |
fe257ae7 | 89 | extern int zebra_import_table_config(struct vty *, vrf_id_t vrf_id); |
7a4bb9c5 | 90 | |
d5b8c216 | 91 | extern void zebra_import_table_rm_update(const char *rmap); |
51e94aa7 EDP |
92 | |
93 | #ifdef __cplusplus | |
94 | } | |
95 | #endif | |
96 | ||
718e3744 | 97 | #endif /* _ZEBRA_REDISTRIBUTE_H */ |