summaryrefslogtreecommitdiff
path: root/zebra/zebra_mlag.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2020-09-23 12:26:13 -0400
committerDonald Sharp <sharpd@nvidia.com>2020-09-23 13:12:20 -0400
commitf24d9ab66758a955300b2134894420b5af095b77 (patch)
tree13c36c72bae2bad5a1b8ce93c47308b48edf72ec /zebra/zebra_mlag.c
parentaa178efd49d2cbf0ea9790acb7e318de8f97cc80 (diff)
zebra: modify mlag code to only need 1 stream when generating data
The normal pattern of writing the type/length at the beginning of the packet was not being quite followed. Modify the mlag code to respect the proper way of doing things and get rid of a stream_new and copy. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra/zebra_mlag.c')
-rw-r--r--zebra/zebra_mlag.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/zebra/zebra_mlag.c b/zebra/zebra_mlag.c
index 3cf4ba8d39..fb8798ebd9 100644
--- a/zebra/zebra_mlag.c
+++ b/zebra/zebra_mlag.c
@@ -111,10 +111,13 @@ void zebra_mlag_send_deregister(void)
void zebra_mlag_process_mlag_data(uint8_t *data, uint32_t len)
{
struct stream *s = NULL;
- struct stream *s1 = NULL;
int msg_type = 0;
s = stream_new(ZEBRA_MAX_PACKET_SIZ);
+ /*
+ * Place holder we need the message type first
+ */
+ stream_putl(s, msg_type);
msg_type = zebra_mlag_protobuf_decode_message(s, data, len);
if (msg_type <= 0) {
@@ -128,12 +131,9 @@ void zebra_mlag_process_mlag_data(uint8_t *data, uint32_t len)
/*
* additional four bytes are for message type
*/
- s1 = stream_new(stream_get_endp(s) + ZEBRA_MLAG_METADATA_LEN);
- stream_putl(s1, msg_type);
- stream_put(s1, s->data, stream_get_endp(s));
+ stream_putl_at(s, 0, msg_type);
thread_add_event(zrouter.master, zebra_mlag_post_data_from_main_thread,
- s1, 0, NULL);
- stream_free(s);
+ s, 0, NULL);
}
/**********************End of MLAG Interaction********************************/