/src/frr/zebra/zebra_mlag.h
Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | /* Zebra mlag header. |
3 | | * Copyright (C) 2018 Cumulus Networks, Inc. |
4 | | * Donald Sharp |
5 | | */ |
6 | | #ifndef __ZEBRA_MLAG_H__ |
7 | | #define __ZEBRA_MLAG_H__ |
8 | | |
9 | | #include "mlag.h" |
10 | | #include "zclient.h" |
11 | | #include "zebra/zserv.h" |
12 | | |
13 | | #ifdef __cplusplus |
14 | | extern "C" { |
15 | | #endif |
16 | | |
17 | 1 | #define ZEBRA_MLAG_BUF_LIMIT 32768 |
18 | | #define ZEBRA_MLAG_LEN_SIZE 4 |
19 | | |
20 | | DECLARE_HOOK(zebra_mlag_private_write_data, |
21 | | (uint8_t *data, uint32_t len), (data, len)); |
22 | | DECLARE_HOOK(zebra_mlag_private_monitor_state, (), ()); |
23 | | DECLARE_HOOK(zebra_mlag_private_open_channel, (), ()); |
24 | | DECLARE_HOOK(zebra_mlag_private_close_channel, (), ()); |
25 | | DECLARE_HOOK(zebra_mlag_private_cleanup_data, (), ()); |
26 | | |
27 | | extern uint8_t mlag_wr_buffer[ZEBRA_MLAG_BUF_LIMIT]; |
28 | | extern uint8_t mlag_rd_buffer[ZEBRA_MLAG_BUF_LIMIT]; |
29 | | |
30 | | static inline void zebra_mlag_reset_read_buffer(void) |
31 | 1 | { |
32 | 1 | memset(mlag_wr_buffer, 0, ZEBRA_MLAG_BUF_LIMIT); |
33 | 1 | } Unexecuted instantiation: zapi_msg.c:zebra_mlag_reset_read_buffer zebra_mlag.c:zebra_mlag_reset_read_buffer Line | Count | Source | 31 | 1 | { | 32 | 1 | memset(mlag_wr_buffer, 0, ZEBRA_MLAG_BUF_LIMIT); | 33 | 1 | } |
Unexecuted instantiation: zebra_router.c:zebra_mlag_reset_read_buffer |
34 | | |
35 | | enum zebra_mlag_state { |
36 | | MLAG_UP = 1, |
37 | | MLAG_DOWN = 2, |
38 | | }; |
39 | | |
40 | | void zebra_mlag_init(void); |
41 | | void zebra_mlag_terminate(void); |
42 | | enum mlag_role zebra_mlag_get_role(void); |
43 | | void zebra_mlag_client_register(ZAPI_HANDLER_ARGS); |
44 | | void zebra_mlag_client_unregister(ZAPI_HANDLER_ARGS); |
45 | | void zebra_mlag_forward_client_msg(ZAPI_HANDLER_ARGS); |
46 | | void zebra_mlag_send_register(void); |
47 | | void zebra_mlag_send_deregister(void); |
48 | | void zebra_mlag_handle_process_state(enum zebra_mlag_state state); |
49 | | void zebra_mlag_process_mlag_data(uint8_t *data, uint32_t len); |
50 | | |
51 | | /* |
52 | | * ProtoBuffer Api's |
53 | | */ |
54 | | int zebra_mlag_protobuf_encode_client_data(struct stream *s, |
55 | | uint32_t *msg_type); |
56 | | int zebra_mlag_protobuf_decode_message(struct stream *s, uint8_t *data, |
57 | | uint32_t len); |
58 | | #ifdef __cplusplus |
59 | | } |
60 | | #endif |
61 | | |
62 | | #endif |