summaryrefslogtreecommitdiff
path: root/zebra/zebra_mlag.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_mlag.c')
-rw-r--r--zebra/zebra_mlag.c56
1 files changed, 19 insertions, 37 deletions
diff --git a/zebra/zebra_mlag.c b/zebra/zebra_mlag.c
index 1a911e429f..f6bd5f4586 100644
--- a/zebra/zebra_mlag.c
+++ b/zebra/zebra_mlag.c
@@ -27,15 +27,18 @@
#include "mlag.h"
#include "zebra/zebra_mlag.h"
-#include "zebra/zebra_mlag_private.h"
+#include "zebra/zebra_mlag_vty.h"
#include "zebra/zebra_router.h"
#include "zebra/zebra_memory.h"
#include "zebra/zapi_msg.h"
#include "zebra/debug.h"
-#ifndef VTYSH_EXTRACT_PL
-#include "zebra/zebra_mlag_clippy.c"
-#endif
+DEFINE_HOOK(zebra_mlag_private_write_data,
+ (uint8_t *data, uint32_t len), (data, len))
+DEFINE_HOOK(zebra_mlag_private_monitor_state, (), ())
+DEFINE_HOOK(zebra_mlag_private_open_channel, (), ())
+DEFINE_HOOK(zebra_mlag_private_close_channel, (), ())
+DEFINE_HOOK(zebra_mlag_private_cleanup_data, (), ())
#define ZEBRA_MLAG_METADATA_LEN 4
#define ZEBRA_MLAG_MSG_BCAST 0xFFFFFFFF
@@ -175,7 +178,8 @@ static int zebra_mlag_client_msg_handler(struct thread *event)
* write to MCLAGD
*/
if (len > 0) {
- zebra_mlag_private_write_data(mlag_wr_buffer, len);
+ hook_call(zebra_mlag_private_write_data,
+ mlag_wr_buffer, len);
/*
* If message type is De-register, send a signal to main
@@ -220,7 +224,7 @@ void zebra_mlag_handle_process_state(enum zebra_mlag_state state)
} else if (state == MLAG_DOWN) {
zrouter.mlag_info.connected = false;
zebra_mlag_publish_process_state(NULL, ZEBRA_MLAG_PROCESS_DOWN);
- zebra_mlag_private_monitor_state();
+ hook_call(zebra_mlag_private_monitor_state);
}
}
@@ -412,7 +416,7 @@ static int zebra_mlag_terminate_pthread(struct thread *event)
/*
* Send Notification to clean private data
*/
- zebra_mlag_private_cleanup_data();
+ hook_call(zebra_mlag_private_cleanup_data);
return 0;
}
@@ -470,7 +474,7 @@ void zebra_mlag_client_register(ZAPI_HANDLER_ARGS)
"First client, opening the channel with MLAG");
zebra_mlag_spawn_pthread();
- rc = zebra_mlag_private_open_channel();
+ rc = hook_call(zebra_mlag_private_open_channel);
if (rc < 0) {
/*
* For some reason, zebra not able to open the
@@ -530,7 +534,7 @@ void zebra_mlag_client_unregister(ZAPI_HANDLER_ARGS)
* signal back to main thread to do the thread cleanup
* this was mainly to make sure De-register is posted to MCLAGD.
*/
- zebra_mlag_private_close_channel();
+ hook_call(zebra_mlag_private_close_channel);
}
if (IS_ZEBRA_DEBUG_MLAG)
@@ -579,29 +583,8 @@ enum mlag_role zebra_mlag_get_role(void)
return zrouter.mlag_info.role;
}
-DEFUN_HIDDEN (show_mlag,
- show_mlag_cmd,
- "show zebra mlag",
- SHOW_STR
- ZEBRA_STR
- "The mlag role on this machine\n")
-{
- char buf[MLAG_ROLE_STRSIZE];
-
- vty_out(vty, "MLag is configured to: %s\n",
- mlag_role2str(zrouter.mlag_info.role, buf, sizeof(buf)));
-
- return CMD_SUCCESS;
-}
-
-DEFPY_HIDDEN(test_mlag, test_mlag_cmd,
- "test zebra mlag <none$none|primary$primary|secondary$secondary>",
- "Test code\n"
- ZEBRA_STR
- "Modify the Mlag state\n"
- "Mlag is not setup on the machine\n"
- "Mlag is setup to be primary\n"
- "Mlag is setup to be the secondary\n")
+int32_t zebra_mlag_test_mlag_internal(const char *none, const char *primary,
+ const char *secondary)
{
enum mlag_role orig = zrouter.mlag_info.role;
char buf1[MLAG_ROLE_STRSIZE], buf2[MLAG_ROLE_STRSIZE];
@@ -627,13 +610,13 @@ DEFPY_HIDDEN(test_mlag, test_mlag_cmd,
zebra_mlag_spawn_pthread();
zrouter.mlag_info.clients_interested_cnt++;
test_mlag_in_progress = true;
- zebra_mlag_private_open_channel();
+ hook_call(zebra_mlag_private_open_channel);
}
} else {
if (test_mlag_in_progress == true) {
test_mlag_in_progress = false;
zrouter.mlag_info.clients_interested_cnt--;
- zebra_mlag_private_close_channel();
+ hook_call(zebra_mlag_private_close_channel);
}
}
}
@@ -643,8 +626,7 @@ DEFPY_HIDDEN(test_mlag, test_mlag_cmd,
void zebra_mlag_init(void)
{
- install_element(VIEW_NODE, &show_mlag_cmd);
- install_element(ENABLE_NODE, &test_mlag_cmd);
+ zebra_mlag_vty_init();
/*
* Intialiaze the MLAG Global variables
@@ -672,7 +654,7 @@ void zebra_mlag_terminate(void)
* ProtoBuf Encoding APIs
*/
-#ifdef HAVE_PROTOBUF
+#ifdef HAVE_PROTOBUF_VERSION_3
DEFINE_MTYPE_STATIC(ZEBRA, MLAG_PBUF, "ZEBRA MLAG PROTOBUF")