diff --git a/zebra/subdir.am b/zebra/subdir.am index e3ca01ff73..99e3643088 100644 --- a/zebra/subdir.am +++ b/zebra/subdir.am @@ -10,7 +10,7 @@ vtysh_scan += \ $(top_srcdir)/zebra/interface.c \ $(top_srcdir)/zebra/router-id.c \ $(top_srcdir)/zebra/rtadv.c \ - $(top_srcdir)/zebra/zebra_mlag.c \ + $(top_srcdir)/zebra/zebra_mlag_vty.c \ $(top_srcdir)/zebra/zebra_mpls_vty.c \ $(top_srcdir)/zebra/zebra_ptm.c \ $(top_srcdir)/zebra/zebra_pw.c \ @@ -72,6 +72,7 @@ zebra_zebra_SOURCES = \ zebra/rule_netlink.c \ zebra/rule_socket.c \ zebra/zebra_mlag.c \ + zebra/zebra_mlag_vty.c \ zebra/zebra_l2.c \ zebra/zebra_memory.c \ zebra/zebra_dplane.c \ @@ -105,8 +106,8 @@ zebra_zebra_SOURCES = \ zebra/debug_clippy.c: $(CLIPPY_DEPS) zebra/debug.$(OBJEXT): zebra/debug_clippy.c -zebra/zebra_mlag_clippy.c: $(CLIPPY_DEPS) -zebra/zebra_mlag.$(OBJEXT): zebra/zebra_mlag_clippy.c +zebra/zebra_mlag_vty_clippy.c: $(CLIPPY_DEPS) +zebra/zebra_mlag_vty.$(OBJEXT): zebra/zebra_mlag_vty_clippy.c zebra/zebra_vty_clippy.c: $(CLIPPY_DEPS) zebra/interface_clippy.c: $(CLIPPY_DEPS) diff --git a/zebra/zebra_mlag.c b/zebra/zebra_mlag.c index 7fbc9c118b..021a52c3a5 100644 --- a/zebra/zebra_mlag.c +++ b/zebra/zebra_mlag.c @@ -32,10 +32,6 @@ #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, (), ()) @@ -586,29 +582,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 ", - "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]; @@ -650,8 +625,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 diff --git a/zebra/zebra_mlag.h b/zebra/zebra_mlag.h index 1f024516c5..b95f5a5d50 100644 --- a/zebra/zebra_mlag.h +++ b/zebra/zebra_mlag.h @@ -64,6 +64,9 @@ void zebra_mlag_send_register(void); void zebra_mlag_send_deregister(void); void zebra_mlag_handle_process_state(enum zebra_mlag_state state); void zebra_mlag_process_mlag_data(uint8_t *data, uint32_t len); +int32_t zebra_mlag_test_mlag_internal(const char *none, const char *primary, + const char *secondary); + /* * ProtoBuffer Api's */ @@ -71,4 +74,5 @@ int zebra_mlag_protobuf_encode_client_data(struct stream *s, uint32_t *msg_type); int zebra_mlag_protobuf_decode_message(struct stream *s, uint8_t *data, uint32_t len); +void zebra_mlag_vty_init(void); #endif diff --git a/zebra/zebra_mlag_vty.c b/zebra/zebra_mlag_vty.c new file mode 100644 index 0000000000..0eb3be5011 --- /dev/null +++ b/zebra/zebra_mlag_vty.c @@ -0,0 +1,67 @@ +/* Zebra Mlag vty Code. + * Copyright (C) 2019 Cumulus Networks, Inc. + * Donald Sharp + * + * This file is part of FRR. + * + * FRR is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * FRR is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with FRR; see the file COPYING. If not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ +#include + +#include "vty.h" +#include "command.h" + +#include "zebra_router.h" +#include "zebra_mlag.h" +#include "debug.h" +#include "zapi_msg.h" + +#ifndef VTYSH_EXTRACT_PL +#include "zebra/zebra_mlag_vty_clippy.c" +#endif + +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 ", + "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") +{ + return zebra_mlag_test_mlag_internal(none, primary, secondary); +} + +void zebra_mlag_vty_init(void) +{ + install_element(VIEW_NODE, &show_mlag_cmd); + install_element(ENABLE_NODE, &test_mlag_cmd); +}