[ovs-git] [openvswitch/ovs] cdd42e: tunneling: Track recursion levels across ARP gener...

GitHub noreply at github.com
Fri Sep 18 00:09:27 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: cdd42edaa30993879ac5c567bd6a43442df5d0d1
      https://github.com/openvswitch/ovs/commit/cdd42edaa30993879ac5c567bd6a43442df5d0d1
  Author: Jesse Gross <jesse at nicira.com>
  Date:   2015-09-17 (Thu, 17 Sep 2015)

  Changed paths:
    M ofproto/ofproto-dpif-xlate.c
    M ofproto/ofproto-dpif-xlate.h
    M ofproto/ofproto-dpif.c
    M ofproto/ofproto-dpif.h

  Log Message:
  -----------
  tunneling: Track recursion levels across ARP generation.

If a packet is output to a tunnel port when userspace tunneling is
enabled, it will cause an ARP packet to be generated if the destination
is unknown. This ARP packet is injected into the physical bridge as
a new packet, where it is flooded.

If there is a loop (such as if the tunnel destination is the same bridge),
the result will be infinite recursion. Even though we currently track
recursion limits, they are not effective here since each ARP packet is
considered to be a new translation. This changes the behavior so that
each ARP flow translation is initialized with the recursion counter of
the previous flow. Note that the problem only applies to ARP - data
packets in a loop will hit an existing recursion counter in the datapath.

An additional side effect of this change is that ARP packets are no
longer unconditionally flooded in the new bridge. They will now follow any
flow rules in the new bridge that might apply to them, the same as with
the kernel datapath.

Reported-by: David Evans <davidjoshuaevans at gmail.com>
Tested-by: David Evans <davidjoshuaevans at gmail.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>
Acked-by: Pravin B Shelar <pshelar at nicira.com>




More information about the git mailing list