]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_mlag.c
Merge pull request #5706 from mjstapp/fix_nh_debug_show
[mirror_frr.git] / zebra / zebra_mlag.c
index 1a911e429f66855c940d322e85483742d93af716..f6bd5f458647be6a8ba05beff7efc61d0206499d 100644 (file)
 #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")