mirror of https://github.com/FRRouting/frr.git
zebra: Allow zebra_mlag to compile with no j factor
If you compile FRR with no j factor zebra_mlag.c fails to build because the vtysh extraction methodology runs first before the protobuf compiler runs and that compilation does not have the proper dependancy chain built for the inclusions that zebra_mlag.c had. Moving the DEF* code into a zebra_mlag_vty.c which can be included in the vtysh extraction code and has no mlag.proto dependancies makes the compilation work better. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
f4d7bc0820
commit
14d9bbbe5c
|
@ -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)
|
||||
|
|
|
@ -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 <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];
|
||||
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <zebra.h>
|
||||
|
||||
#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 <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")
|
||||
{
|
||||
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);
|
||||
}
|
Loading…
Reference in New Issue