]>
Commit | Line | Data |
---|---|---|
acddc0ed | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
36b5b98f SK |
2 | /* |
3 | * This is an implementation of PIM MLAG Functionality | |
4 | * | |
5 | * Module name: PIM MLAG | |
6 | * | |
7 | * Author: sathesh Kumar karra <sathk@cumulusnetworks.com> | |
8 | * | |
9 | * Copyright (C) 2019 Cumulus Networks http://www.cumulusnetworks.com | |
36b5b98f SK |
10 | */ |
11 | #ifndef __PIM_MLAG_H__ | |
12 | #define __PIM_MLAG_H__ | |
13 | ||
a243d1db | 14 | #include "zclient.h" |
36b5b98f SK |
15 | #include "mlag.h" |
16 | #include "pim_iface.h" | |
17 | ||
deb76ca4 | 18 | #if PIM_IPV == 4 |
36b5b98f | 19 | extern void pim_mlag_init(void); |
892c2c44 | 20 | extern void pim_mlag_terminate(void); |
36b5b98f SK |
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); | |
a243d1db DL |
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); | |
17823cdd DS |
28 | |
29 | /* pm_zpthread.c */ | |
30 | extern int pim_mlag_signal_zpthread(void); | |
31 | extern void pim_zpthread_init(void); | |
32 | extern void pim_zpthread_terminate(void); | |
33 | ||
22c35834 SK |
34 | extern void pim_mlag_register(void); |
35 | extern void pim_mlag_deregister(void); | |
05ca004b | 36 | extern void pim_mlag_up_local_add(struct pim_instance *pim, |
22c35834 | 37 | struct pim_upstream *upstream); |
05ca004b | 38 | extern void pim_mlag_up_local_del(struct pim_instance *pim, |
22c35834 | 39 | struct pim_upstream *upstream); |
05ca004b | 40 | extern bool pim_mlag_up_df_role_update(struct pim_instance *pim, |
22c35834 SK |
41 | struct pim_upstream *up, bool is_df, |
42 | const char *reason); | |
deb76ca4 DL |
43 | #else /* PIM_IPV == 4 */ |
44 | static inline void pim_mlag_terminate(void) | |
45 | { | |
46 | } | |
47 | ||
48 | static inline void pim_instance_mlag_init(struct pim_instance *pim) | |
49 | { | |
50 | } | |
51 | ||
52 | static inline void pim_instance_mlag_terminate(struct pim_instance *pim) | |
53 | { | |
54 | } | |
55 | ||
56 | static inline void pim_if_configure_mlag_dualactive( | |
57 | struct pim_interface *pim_ifp) | |
58 | { | |
59 | } | |
60 | ||
61 | static inline void pim_if_unconfigure_mlag_dualactive( | |
62 | struct pim_interface *pim_ifp) | |
63 | { | |
64 | } | |
65 | ||
66 | static inline void pim_mlag_register(void) | |
67 | { | |
68 | } | |
69 | ||
70 | static inline void pim_mlag_up_local_add(struct pim_instance *pim, | |
71 | struct pim_upstream *upstream) | |
72 | { | |
73 | } | |
74 | ||
75 | static inline void pim_mlag_up_local_del(struct pim_instance *pim, | |
76 | struct pim_upstream *upstream) | |
77 | { | |
78 | } | |
79 | ||
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) | |
83 | { | |
84 | return false; | |
85 | } | |
86 | #endif | |
87 | ||
36b5b98f | 88 | #endif |