2023-02-08 13:17:09 +01:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2002-12-13 21:15:29 +01:00
|
|
|
/*
|
|
|
|
* Redistribution Handler
|
|
|
|
* Copyright (C) 1999 Kunihiro Ishiguro
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _ZEBRA_REDISTRIBUTE_H
|
|
|
|
#define _ZEBRA_REDISTRIBUTE_H
|
|
|
|
|
|
|
|
#include "table.h"
|
2015-05-20 03:03:42 +02:00
|
|
|
#include "vty.h"
|
2016-02-01 19:55:42 +01:00
|
|
|
#include "vrf.h"
|
2002-12-13 21:15:29 +01:00
|
|
|
|
2018-04-22 22:01:20 +02:00
|
|
|
#include "zebra/zserv.h"
|
|
|
|
#include "zebra/rib.h"
|
|
|
|
|
2019-03-25 15:11:55 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2018-03-07 00:08:37 +01:00
|
|
|
/* ZAPI command handlers */
|
2018-03-06 23:57:33 +01:00
|
|
|
extern void zebra_redistribute_add(ZAPI_HANDLER_ARGS);
|
|
|
|
extern void zebra_redistribute_delete(ZAPI_HANDLER_ARGS);
|
|
|
|
extern void zebra_redistribute_default_add(ZAPI_HANDLER_ARGS);
|
|
|
|
extern void zebra_redistribute_default_delete(ZAPI_HANDLER_ARGS);
|
2018-03-07 00:08:37 +01:00
|
|
|
/* ----------------- */
|
2002-12-13 21:15:29 +01:00
|
|
|
|
2022-01-14 16:00:01 +01:00
|
|
|
extern void redistribute_update(const struct route_node *rn,
|
2019-08-14 19:30:24 +02:00
|
|
|
const struct route_entry *re,
|
|
|
|
const struct route_entry *prev_re);
|
|
|
|
/*
|
|
|
|
* During a route delete, where 'new_re' is NULL, redist a delete to all
|
|
|
|
* clients registered for the type of 'old_re'.
|
|
|
|
* During a route update, redist a delete to any clients who will not see
|
|
|
|
* an update when the new route is installed. There are cases when a client
|
|
|
|
* may have seen a redist for 'old_re', but will not see
|
|
|
|
* the redist for 'new_re'.
|
|
|
|
*/
|
2022-01-14 15:48:00 +01:00
|
|
|
void redistribute_delete(const struct route_node *rn,
|
2019-08-14 19:30:24 +02:00
|
|
|
const struct route_entry *old_re,
|
|
|
|
const struct route_entry *new_re);
|
2002-12-13 21:15:29 +01:00
|
|
|
|
2022-01-14 17:30:31 +01:00
|
|
|
extern void zebra_interface_up_update(struct interface *ifp);
|
|
|
|
extern void zebra_interface_down_update(struct interface *ifp);
|
2002-12-13 21:15:29 +01:00
|
|
|
|
2022-01-14 17:30:31 +01:00
|
|
|
extern void zebra_interface_add_update(struct interface *ifp);
|
|
|
|
extern void zebra_interface_delete_update(struct interface *ifp);
|
2002-12-13 21:15:29 +01:00
|
|
|
|
2022-01-14 17:30:31 +01:00
|
|
|
extern void zebra_interface_address_add_update(struct interface *ifp,
|
|
|
|
struct connected *c);
|
|
|
|
extern void zebra_interface_address_delete_update(struct interface *ifp,
|
2005-06-28 19:17:12 +02:00
|
|
|
struct connected *c);
|
2022-01-14 17:30:31 +01:00
|
|
|
extern void zebra_interface_parameters_update(struct interface *ifp);
|
|
|
|
extern void zebra_interface_vrf_update_del(struct interface *ifp,
|
2016-02-25 20:30:53 +01:00
|
|
|
vrf_id_t new_vrf_id);
|
2022-01-14 17:30:31 +01:00
|
|
|
extern void zebra_interface_vrf_update_add(struct interface *ifp,
|
2016-02-25 20:30:53 +01:00
|
|
|
vrf_id_t old_vrf_id);
|
2016-05-11 17:47:02 +02:00
|
|
|
|
2024-10-28 19:55:49 +01:00
|
|
|
extern int zebra_import_table(afi_t afi, safi_t safi, vrf_id_t vrf_id, uint32_t table_id,
|
|
|
|
uint32_t distance, const char *rmap_name, bool add);
|
2015-05-20 03:03:42 +02:00
|
|
|
|
2024-10-28 19:55:49 +01:00
|
|
|
extern int zebra_add_import_table_entry(struct zebra_vrf *zvrf, safi_t safi, struct route_node *rn,
|
|
|
|
struct route_entry *re, const char *rmap_name);
|
|
|
|
extern int zebra_del_import_table_entry(struct zebra_vrf *zvrf, safi_t safi, struct route_node *rn,
|
2017-06-01 13:26:25 +02:00
|
|
|
struct route_entry *re);
|
2024-10-28 19:55:49 +01:00
|
|
|
extern int is_zebra_import_table_enabled(afi_t, safi_t safi, vrf_id_t vrf_id, uint32_t table_id);
|
2015-05-20 03:03:42 +02:00
|
|
|
|
2019-06-25 23:07:30 +02:00
|
|
|
extern int zebra_import_table_config(struct vty *, vrf_id_t vrf_id);
|
2015-05-20 03:03:42 +02:00
|
|
|
|
2018-08-17 17:47:48 +02:00
|
|
|
extern void zebra_import_table_rm_update(const char *rmap);
|
2019-03-25 15:11:55 +01:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2002-12-13 21:15:29 +01:00
|
|
|
#endif /* _ZEBRA_REDISTRIBUTE_H */
|