Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-1867

DPO leak in various tunnel types

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • 19.08, 20.01
    • VNET
    • 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.

            Unassigned Unassigned
            mejedy Nick Zavaritsky
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: