]> git.puffer.fish Git - mirror/frr.git/commitdiff
Revert "zebra: the mlag_rd_buf_offset variable was write only"
authorDonald Sharp <sharpd@nvidia.com>
Mon, 5 Oct 2020 16:19:41 +0000 (12:19 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 13 Oct 2020 19:57:54 +0000 (15:57 -0400)
This reverts commit 00e0d113e5ffcb69304b8d5d83f0357ec416c6c4.

zebra/zebra_mlag.c
zebra/zebra_mlag.h
zebra/zebra_mlag_private.c

index d8ed9b2a3a4448a748dec5ec26c1fd2e6758097a..fb8798ebd9857297eb702e4fdfcb11168d098688 100644 (file)
@@ -49,6 +49,7 @@ DEFINE_HOOK(zebra_mlag_private_cleanup_data, (), ())
 
 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;
 
index b195c75ea3c1bcf183ed969671c89c55eb963ba2..85028d277473bef962c8b7f7049aaa723c1807c5 100644 (file)
@@ -42,10 +42,12 @@ DECLARE_HOOK(zebra_mlag_private_cleanup_data, (), ())
 
 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 {
index 343e7801db5a42f2472a3f99a784f4cb8d11e5a8..d39b0c0aee8b78ac7f38043402489d966a0d35d5 100644 (file)
@@ -76,7 +76,7 @@ static int zebra_mlag_read(struct thread *thread)
 {
        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
@@ -99,6 +99,7 @@ static int zebra_mlag_read(struct thread *thread)
                        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();
@@ -136,6 +137,7 @@ static int zebra_mlag_read(struct thread *thread)
                        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();