[ovs-git] [openvswitch/ovs] 2a5ade: tunnel: make tun_key_to_attr aware of tunnel type.

GitHub noreply at github.com
Mon May 14 23:54:45 UTC 2018


  Branch: refs/heads/branch-2.8
  Home:   https://github.com/openvswitch/ovs
  Commit: 2a5adeee5bd5d1ca81232b776fafca18bf234e2c
      https://github.com/openvswitch/ovs/commit/2a5adeee5bd5d1ca81232b776fafca18bf234e2c
  Author: William Tu <u9012063 at gmail.com>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M lib/dpif.c
    M lib/odp-util.c
    M lib/odp-util.h
    M ofproto/ofproto-dpif-xlate.c
    M ofproto/tunnel.c
    M ofproto/tunnel.h
    M tests/tunnel.at

  Log Message:
  -----------
  tunnel: make tun_key_to_attr aware of tunnel type.

When there is a flow rule which forwards a packet from geneve
port to another tunnel port, ex: gre, the tun_metadata carried
from the geneve port might affect the outgoing port.  For example,
the datapath action from geneve port output to gre port (1) shows:
  set(tunnel(tun_id=0x7b,dst=2.2.2.2,ttl=64,
    geneve({class=0xffff,type=0,len=4,0x123}),flags(df|key))),1
Where the geneve(...) should not exist.

When using kernel's tunnel port, this triggers an error saying:
"Multiple metadata blocks provided", when there is a rule forwarding
the geneve packet to vxlan/erspan tunnel port.  A userspace test case
using geneve and gre also demonstrates the issue.

The patch makes the tun_key_to_attr aware of the tunnel type. So only
the relevant output tunnel's options are set.

Reported-by: Xiaoyan Jin <xiaoyanj at vmware.com>
Signed-off-by: William Tu <u9012063 at gmail.com>
Cc: Greg Rose <gvrose8192 at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>



      **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the git mailing list