From: Matthew Smith Date: Fri, 14 May 2021 22:00:15 +0000 (-0500) Subject: gre: Walk IPv6 adjacencies during restack X-Git-Tag: v21.10-rc0~35 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=a0455ffdbe9c2765d61d8c8efb7bb73f998ffb5b;p=vpp.git 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 --- 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; } } }