forked from Mirror/frr
lib, zebra: On startup send mlag role as part of the capabilities
On startup send the mlag role as part of the capabilities to the end protocol. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
ff1fb8d5f6
commit
02c0866dbe
|
@ -2355,6 +2355,7 @@ static void zclient_capability_decode(int command, struct zclient *zclient,
|
||||||
STREAM_GETC(s, mpls_enabled);
|
STREAM_GETC(s, mpls_enabled);
|
||||||
cap.mpls_enabled = !!mpls_enabled;
|
cap.mpls_enabled = !!mpls_enabled;
|
||||||
STREAM_GETL(s, cap.ecmp);
|
STREAM_GETL(s, cap.ecmp);
|
||||||
|
STREAM_GETC(s, cap.role);
|
||||||
|
|
||||||
if (zclient->zebra_capabilities)
|
if (zclient->zebra_capabilities)
|
||||||
(*zclient->zebra_capabilities)(&cap);
|
(*zclient->zebra_capabilities)(&cap);
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
/* For union pw_protocol_fields */
|
/* For union pw_protocol_fields */
|
||||||
#include "pw.h"
|
#include "pw.h"
|
||||||
|
|
||||||
|
#include "mlag.h"
|
||||||
|
|
||||||
/* For input/output buffer to zebra. */
|
/* For input/output buffer to zebra. */
|
||||||
#define ZEBRA_MAX_PACKET_SIZ 16384
|
#define ZEBRA_MAX_PACKET_SIZ 16384
|
||||||
|
|
||||||
|
@ -171,6 +173,7 @@ struct redist_proto {
|
||||||
struct zclient_capabilities {
|
struct zclient_capabilities {
|
||||||
uint32_t ecmp;
|
uint32_t ecmp;
|
||||||
bool mpls_enabled;
|
bool mpls_enabled;
|
||||||
|
enum mlag_role role;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Structure for the zebra client. */
|
/* Structure for the zebra client. */
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
#include "zebra/table_manager.h"
|
#include "zebra/table_manager.h"
|
||||||
#include "zebra/zapi_msg.h"
|
#include "zebra/zapi_msg.h"
|
||||||
#include "zebra/zebra_errors.h"
|
#include "zebra/zebra_errors.h"
|
||||||
|
#include "zebra/zebra_mlag.h"
|
||||||
|
|
||||||
/* Encoding helpers -------------------------------------------------------- */
|
/* Encoding helpers -------------------------------------------------------- */
|
||||||
|
|
||||||
|
@ -1657,6 +1658,7 @@ static void zsend_capabilities(struct zserv *client, struct zebra_vrf *zvrf)
|
||||||
zclient_create_header(s, ZEBRA_CAPABILITIES, zvrf->vrf->vrf_id);
|
zclient_create_header(s, ZEBRA_CAPABILITIES, zvrf->vrf->vrf_id);
|
||||||
stream_putc(s, mpls_enabled);
|
stream_putc(s, mpls_enabled);
|
||||||
stream_putl(s, multipath_num);
|
stream_putl(s, multipath_num);
|
||||||
|
stream_putc(s, zebra_mlag_get_role());
|
||||||
|
|
||||||
stream_putw_at(s, 0, stream_get_endp(s));
|
stream_putw_at(s, 0, stream_get_endp(s));
|
||||||
zserv_send_message(client, s);
|
zserv_send_message(client, s);
|
||||||
|
|
Loading…
Reference in a new issue