From a0455ffdbe9c2765d61d8c8efb7bb73f998ffb5b Mon Sep 17 00:00:00 2001 From: Matthew Smith Date: Fri, 14 May 2021 17:00:15 -0500 Subject: [PATCH] gre: Walk IPv6 adjacencies during restack Type: fix If a GRE tunnel is created and the peer is not resolved yet and an IPv6 route is added which points to the tunnel, packets matching the route will be dropped. When the tunnel peer is resolved, adjacencies on the tunnel interface should be restacked and packets matching the route can be encapsulated and sent.. There is a loop that is intended to do this for both IPv4 and IPv6. The call to walk adjacencies is invoked in a "return" statement though. So the loop is exited and the function returns before IPv6 adjacencies are walked. Remove the return so the loop finishes. Change-Id: Ia4f695681713020209ea490ae4142857cea49c41 Signed-off-by: Matthew Smith --- src/vnet/gre/interface.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vnet/gre/interface.c b/src/vnet/gre/interface.c index 30dfa3057b1..f2c679cb9b5 100644 --- a/src/vnet/gre/interface.c +++ b/src/vnet/gre/interface.c @@ -225,9 +225,11 @@ gre_tunnel_restack (gre_tunnel_t * gt) switch (gt->mode) { case TUNNEL_MODE_P2P: - return (adj_nbr_walk (gt->sw_if_index, proto, gre_adj_walk_cb, NULL)); + adj_nbr_walk (gt->sw_if_index, proto, gre_adj_walk_cb, NULL); + break; case TUNNEL_MODE_MP: - return (adj_nbr_walk (gt->sw_if_index, proto, mgre_adj_walk_cb, NULL)); + adj_nbr_walk (gt->sw_if_index, proto, mgre_adj_walk_cb, NULL); + break; } } }