]>
git.proxmox.com Git - mirror_frr.git/blob - pimd/pim_mlag.h
9cabd32ae8fc3cee25e607f97a999dda5b177233
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * This is an implementation of PIM MLAG Functionality
5 * Module name: PIM MLAG
7 * Author: sathesh Kumar karra <sathk@cumulusnetworks.com>
9 * Copyright (C) 2019 Cumulus Networks http://www.cumulusnetworks.com
11 #ifndef __PIM_MLAG_H__
12 #define __PIM_MLAG_H__
16 #include "pim_iface.h"
19 extern void pim_mlag_init(void);
20 extern void pim_mlag_terminate(void);
21 extern void pim_instance_mlag_init(struct pim_instance
*pim
);
22 extern void pim_instance_mlag_terminate(struct pim_instance
*pim
);
23 extern void pim_if_configure_mlag_dualactive(struct pim_interface
*pim_ifp
);
24 extern void pim_if_unconfigure_mlag_dualactive(struct pim_interface
*pim_ifp
);
25 extern int pim_zebra_mlag_process_up(ZAPI_CALLBACK_ARGS
);
26 extern int pim_zebra_mlag_process_down(ZAPI_CALLBACK_ARGS
);
27 extern int pim_zebra_mlag_handle_msg(ZAPI_CALLBACK_ARGS
);
30 extern int pim_mlag_signal_zpthread(void);
31 extern void pim_zpthread_init(void);
32 extern void pim_zpthread_terminate(void);
34 extern void pim_mlag_register(void);
35 extern void pim_mlag_deregister(void);
36 extern void pim_mlag_up_local_add(struct pim_instance
*pim
,
37 struct pim_upstream
*upstream
);
38 extern void pim_mlag_up_local_del(struct pim_instance
*pim
,
39 struct pim_upstream
*upstream
);
40 extern bool pim_mlag_up_df_role_update(struct pim_instance
*pim
,
41 struct pim_upstream
*up
, bool is_df
,
43 #else /* PIM_IPV == 4 */
44 static inline void pim_mlag_terminate(void)
48 static inline void pim_instance_mlag_init(struct pim_instance
*pim
)
52 static inline void pim_instance_mlag_terminate(struct pim_instance
*pim
)
56 static inline void pim_if_configure_mlag_dualactive(
57 struct pim_interface
*pim_ifp
)
61 static inline void pim_if_unconfigure_mlag_dualactive(
62 struct pim_interface
*pim_ifp
)
66 static inline void pim_mlag_register(void)
70 static inline void pim_mlag_up_local_add(struct pim_instance
*pim
,
71 struct pim_upstream
*upstream
)
75 static inline void pim_mlag_up_local_del(struct pim_instance
*pim
,
76 struct pim_upstream
*upstream
)
80 static inline bool pim_mlag_up_df_role_update(struct pim_instance
*pim
,
81 struct pim_upstream
*up
,
82 bool is_df
, const char *reason
)