uint8_t mlag_wr_buffer[ZEBRA_MLAG_BUF_LIMIT];
uint8_t mlag_rd_buffer[ZEBRA_MLAG_BUF_LIMIT];
+uint32_t mlag_rd_buf_offset;
static bool test_mlag_in_progress;
extern uint8_t mlag_wr_buffer[ZEBRA_MLAG_BUF_LIMIT];
extern uint8_t mlag_rd_buffer[ZEBRA_MLAG_BUF_LIMIT];
+extern uint32_t mlag_rd_buf_offset;
static inline void zebra_mlag_reset_read_buffer(void)
{
memset(mlag_wr_buffer, 0, ZEBRA_MLAG_BUF_LIMIT);
+ mlag_rd_buf_offset = 0;
}
enum zebra_mlag_state {
{
uint32_t *msglen;
uint32_t h_msglen;
- uint32_t tot_len, curr_len = 0;
+ uint32_t tot_len, curr_len = mlag_rd_buf_offset;
/*
* Received message in sock_stream looks like below
zebra_mlag_handle_process_state(MLAG_DOWN);
return -1;
}
+ mlag_rd_buf_offset += data_len;
if (data_len != (ssize_t)(ZEBRA_MLAG_LEN_SIZE - curr_len)) {
/* Try again later */
zebra_mlag_sched_read();
zebra_mlag_handle_process_state(MLAG_DOWN);
return -1;
}
+ mlag_rd_buf_offset += data_len;
if (data_len != (ssize_t)(tot_len - curr_len)) {
/* Try again later */
zebra_mlag_sched_read();