From 0e2e0dfe8b6783641e779b01a4b8e9ebf0e6fc77 Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Fri, 3 Mar 2017 08:51:08 +0100 Subject: BFD: drop rpc call if packet doesn't match session In a very unlikely scenario, during which a session is removed and replaced with a different session sharing the same session index, while a packet is in-flight during RPC call, drop that packet. Change-Id: If1c4a77fc2ab460bae2435db066a133185b98747 Signed-off-by: Klement Sekera --- src/vnet/bfd/bfd_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/vnet/bfd/bfd_main.c') diff --git a/src/vnet/bfd/bfd_main.c b/src/vnet/bfd/bfd_main.c index 01de637531d..d38623c1e0a 100644 --- a/src/vnet/bfd/bfd_main.c +++ b/src/vnet/bfd/bfd_main.c @@ -1555,7 +1555,7 @@ void bfd_consume_pkt (bfd_main_t * bm, const bfd_pkt_t * pkt, u32 bs_idx) { bfd_session_t *bs = bfd_find_session_by_idx (bm, bs_idx); - if (!bs) + if (!bs || (pkt->your_disc && pkt->your_disc != bs->local_discr)) { return; } -- cgit 1.2.3-korg