]>
Commit | Line | Data |
---|---|---|
36b5b98f SK |
1 | /* |
2 | * This is an implementation of PIM MLAG Functionality | |
3 | * | |
4 | * Module name: PIM MLAG | |
5 | * | |
6 | * Author: sathesh Kumar karra <sathk@cumulusnetworks.com> | |
7 | * | |
8 | * Copyright (C) 2019 Cumulus Networks http://www.cumulusnetworks.com | |
9 | * | |
10 | * This program is free software; you can redistribute it and/or modify it | |
11 | * under the terms of the GNU General Public License as published by the Free | |
12 | * Software Foundation; either version 2 of the License, or (at your option) | |
13 | * any later version. | |
14 | * | |
15 | * This program is distributed in the hope that it will be useful, but WITHOUT | |
16 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
17 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
18 | * more details. | |
19 | * | |
20 | * You should have received a copy of the GNU General Public License along | |
21 | * with this program; see the file COPYING; if not, write to the Free Software | |
22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
23 | */ | |
24 | #ifndef __PIM_MLAG_H__ | |
25 | #define __PIM_MLAG_H__ | |
26 | ||
a243d1db | 27 | #include "zclient.h" |
36b5b98f SK |
28 | #include "mlag.h" |
29 | #include "pim_iface.h" | |
30 | ||
31 | extern void pim_mlag_init(void); | |
892c2c44 | 32 | extern void pim_mlag_terminate(void); |
36b5b98f SK |
33 | extern void pim_instance_mlag_init(struct pim_instance *pim); |
34 | extern void pim_instance_mlag_terminate(struct pim_instance *pim); | |
35 | extern void pim_if_configure_mlag_dualactive(struct pim_interface *pim_ifp); | |
36 | extern void pim_if_unconfigure_mlag_dualactive(struct pim_interface *pim_ifp); | |
a243d1db DL |
37 | extern int pim_zebra_mlag_process_up(ZAPI_CALLBACK_ARGS); |
38 | extern int pim_zebra_mlag_process_down(ZAPI_CALLBACK_ARGS); | |
39 | extern int pim_zebra_mlag_handle_msg(ZAPI_CALLBACK_ARGS); | |
17823cdd DS |
40 | |
41 | /* pm_zpthread.c */ | |
42 | extern int pim_mlag_signal_zpthread(void); | |
43 | extern void pim_zpthread_init(void); | |
44 | extern void pim_zpthread_terminate(void); | |
45 | ||
22c35834 SK |
46 | extern void pim_mlag_register(void); |
47 | extern void pim_mlag_deregister(void); | |
05ca004b | 48 | extern void pim_mlag_up_local_add(struct pim_instance *pim, |
22c35834 | 49 | struct pim_upstream *upstream); |
05ca004b | 50 | extern void pim_mlag_up_local_del(struct pim_instance *pim, |
22c35834 | 51 | struct pim_upstream *upstream); |
05ca004b | 52 | extern bool pim_mlag_up_df_role_update(struct pim_instance *pim, |
22c35834 SK |
53 | struct pim_upstream *up, bool is_df, |
54 | const char *reason); | |
36b5b98f | 55 | #endif |