diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-01-11 13:17:45 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-01-31 09:20:46 -0500 |
| commit | e96ba9daeb033e7677b16c9be6a89eef4f7db4b7 (patch) | |
| tree | 6689a20744a3ee5e42eba4f31c114a6475594ef5 | |
| parent | 2561d12e5db23b499b2f37bf2f0f1c128d7a1ea1 (diff) | |
zebra: Add mlag information to zrouter
Since this is zebra router global level information
store mlag data in the zrouter structure.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| -rw-r--r-- | zebra/zebra_mlag.c | 13 | ||||
| -rw-r--r-- | zebra/zebra_router.h | 17 |
2 files changed, 23 insertions, 7 deletions
diff --git a/zebra/zebra_mlag.c b/zebra/zebra_mlag.c index 35be07c024..a510f2f8d9 100644 --- a/zebra/zebra_mlag.c +++ b/zebra/zebra_mlag.c @@ -25,16 +25,15 @@ #include "hook.h" #include "zebra/zebra_mlag.h" +#include "zebra/zebra_router.h" #ifndef VTYSH_EXTRACT_PL #include "zebra/zebra_mlag_clippy.c" #endif -enum mlag_role role = MLAG_ROLE_NONE; - enum mlag_role zebra_mlag_get_role(void) { - return role; + return zrouter.mlag_info.role; } DEFUN_HIDDEN (show_mlag, @@ -47,7 +46,7 @@ DEFUN_HIDDEN (show_mlag, char buf[80]; vty_out(vty, "MLag is configured to: %s\n", - mlag_role2str(role, buf, sizeof(buf))); + mlag_role2str(zrouter.mlag_info.role, buf, sizeof(buf))); return CMD_SUCCESS; } @@ -63,11 +62,11 @@ DEFPY_HIDDEN (test_mlag, "Mlag is setup to be the secondary\n") { if (none) - role = MLAG_ROLE_NONE; + zrouter.mlag_info.role = MLAG_ROLE_NONE; if (primary) - role = MLAG_ROLE_PRIMARY; + zrouter.mlag_info.role = MLAG_ROLE_PRIMARY; if (secondary) - role = MLAG_ROLE_SECONDARY; + zrouter.mlag_info.role = MLAG_ROLE_SECONDARY; return CMD_SUCCESS; } diff --git a/zebra/zebra_router.h b/zebra/zebra_router.h index 332a4c3f95..fb28495917 100644 --- a/zebra/zebra_router.h +++ b/zebra/zebra_router.h @@ -22,6 +22,8 @@ #ifndef __ZEBRA_ROUTER_H__ #define __ZEBRA_ROUTER_H__ +#include "lib/mlag.h" + #include "zebra/zebra_ns.h" /* @@ -44,6 +46,18 @@ RB_HEAD(zebra_router_table_head, zebra_router_table); RB_PROTOTYPE(zebra_router_table_head, zebra_router_table, zebra_router_table_entry, zebra_router_table_entry_compare) +struct zebra_mlag_info { + /* Role this zebra router is playing */ + enum mlag_role role; + + /* The peerlink being used for mlag */ + char *peerlink; + ifindex_t peerlink_ifindex; + + /* The system mac being used */ + struct ethaddr mac; +}; + struct zebra_router { /* Thread master */ struct thread_master *master; @@ -87,6 +101,9 @@ struct zebra_router { #define ZEBRA_ZAPI_PACKETS_TO_PROCESS 1000 _Atomic uint32_t packets_to_process; + + /* Mlag information for the router */ + struct zebra_mlag_info mlag_info; }; extern struct zebra_router zrouter; |
