]>
git.proxmox.com Git - mirror_frr.git/blob - zebra/zebra_mlag.c
2 * Copyright (C) 2018 Cumulus Networks, Inc.
5 * This file is part of FRR.
7 * FRR is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2, or (at your option) any
12 * FRR is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with FRR; see the file COPYING. If not, write to the Free
19 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 #include "zebra/zebra_mlag.h"
28 #include "zebra/zebra_router.h"
29 #include "zebra/zapi_msg.h"
30 #include "zebra/debug.h"
32 #ifndef VTYSH_EXTRACT_PL
33 #include "zebra/zebra_mlag_clippy.c"
36 enum mlag_role
zebra_mlag_get_role(void)
38 return zrouter
.mlag_info
.role
;
41 DEFUN_HIDDEN (show_mlag
,
46 "The mlag role on this machine\n")
50 vty_out(vty
, "MLag is configured to: %s\n",
51 mlag_role2str(zrouter
.mlag_info
.role
, buf
, sizeof(buf
)));
56 DEFPY_HIDDEN (test_mlag
,
58 "test zebra mlag <none$none|primary$primary|secondary$secondary>",
61 "Modify the Mlag state\n"
62 "Mlag is not setup on the machine\n"
63 "Mlag is setup to be primary\n"
64 "Mlag is setup to be the secondary\n")
66 enum mlag_role orig
= zrouter
.mlag_info
.role
;
67 char buf1
[80], buf2
[80];
70 zrouter
.mlag_info
.role
= MLAG_ROLE_NONE
;
72 zrouter
.mlag_info
.role
= MLAG_ROLE_PRIMARY
;
74 zrouter
.mlag_info
.role
= MLAG_ROLE_SECONDARY
;
76 if (IS_ZEBRA_DEBUG_MLAG
)
77 zlog_debug("Test: Changing role from %s to %s",
78 mlag_role2str(orig
, buf1
, sizeof(buf1
)),
79 mlag_role2str(orig
, buf2
, sizeof(buf2
)));
81 if (orig
!= zrouter
.mlag_info
.role
)
82 zsend_capabilities_all_clients();
87 void zebra_mlag_init(void)
89 install_element(VIEW_NODE
, &show_mlag_cmd
);
90 install_element(ENABLE_NODE
, &test_mlag_cmd
);
93 void zebra_mlag_terminate(void)