gre: Walk IPv6 adjacencies during restack 42/32342/2
authorMatthew Smith <mgsmith@netgate.com>
Fri, 14 May 2021 22:00:15 +0000 (17:00 -0500)
committerNeale Ranns <neale@graphiant.com>
Thu, 20 May 2021 10:16:21 +0000 (10:16 +0000)
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 <mgsmith@netgate.com>
src/vnet/gre/interface.c

index 30dfa30..f2c679c 100644 (file)
@@ -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;
       }
   }
 }