diff options
Diffstat (limited to 'src/plugins/unittest/ipsec_test.c')
-rw-r--r-- | src/plugins/unittest/ipsec_test.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/plugins/unittest/ipsec_test.c b/src/plugins/unittest/ipsec_test.c index 98253eeb12a..23867e1b043 100644 --- a/src/plugins/unittest/ipsec_test.c +++ b/src/plugins/unittest/ipsec_test.c @@ -40,19 +40,32 @@ test_ipsec_command_fn (vlib_main_t *vm, unformat_input_t *input, if (~0 != sa_id) { ipsec_sa_t *sa; + ipsec_sa_inb_rt_t *irt; + ipsec_sa_outb_rt_t *ort; u32 sa_index; sa_index = ipsec_sa_find_and_lock (sa_id); sa = ipsec_sa_get (sa_index); + irt = ipsec_sa_get_inb_rt (sa); + ort = ipsec_sa_get_outb_rt (sa); - sa->seq = seq_num & 0xffffffff; - sa->seq_hi = seq_num >> 32; + if (ort) + { + ort->seq = seq_num & 0xffffffff; + ort->seq_hi = seq_num >> 32; + } - /* clear the window */ - if (ipsec_sa_is_set_ANTI_REPLAY_HUGE (sa)) - clib_bitmap_zero (sa->replay_window_huge); - else - sa->replay_window = 0; + if (irt) + { + irt->seq = seq_num & 0xffffffff; + irt->seq_hi = seq_num >> 32; + + /* clear the window */ + if (ipsec_sa_is_set_ANTI_REPLAY_HUGE (sa)) + clib_bitmap_zero (irt->replay_window_huge); + else + irt->replay_window = 0; + } ipsec_sa_unlock (sa_index); } |