-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
19.08, 20.01
-
None
We are spawning and destroying GTPU tunnels at a high rate. Only 10K tunnels ever exist simultaneously in our test.
With default settings, we observe out of memory error in load_balance_create after approximately .5M tunnel create commands. Apparently, load balancers are leaking.
As far as my understanding goes, a load_balancer is first created in fib_entry_track, to get notifications about the route changes. This is only created once for a unique DIP and the refcount is correctly decremented once the last subscription ceases.
The refcount is also bumped in gtpu_tunnel_restack_dpo, when next_dpo is updated. Since the later is never reset, the refcount never drops to zero.
This is straightforward to exercise in CLI: create and immediately destroy several GTPU tunnels. Compare `show dpo memory` output before and after.
It looks like other tunnel types, namely geneve, vxlan, vxlan-gpe and vxlan-gbp are also susceptible.