[ovs-git] [openvswitch/ovs] aad7cb: datapath: compat: Refactor egress tunnel info

GitHub noreply at github.com
Sat Jul 9 02:28:23 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: aad7cb91efd3ff4c01ddd35ca8998d96aec399cc
      https://github.com/openvswitch/ovs/commit/aad7cb91efd3ff4c01ddd35ca8998d96aec399cc
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/actions.c
    M datapath/datapath.c
    M datapath/datapath.h
    M datapath/flow_netlink.c
    M datapath/flow_netlink.h
    M datapath/linux/compat/dev-openvswitch.c
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/gso.h
    M datapath/linux/compat/include/linux/netdevice.h
    M datapath/linux/compat/include/net/geneve.h
    M datapath/linux/compat/include/net/gre.h
    M datapath/linux/compat/include/net/lisp.h
    M datapath/linux/compat/include/net/stt.h
    M datapath/linux/compat/include/net/vxlan.h
    M datapath/linux/compat/ip_gre.c
    M datapath/linux/compat/lisp.c
    M datapath/linux/compat/stt.c
    M datapath/linux/compat/vxlan.c
    M datapath/vport-geneve.c
    M datapath/vport-gre.c
    M datapath/vport-lisp.c
    M datapath/vport-stt.c
    M datapath/vport-vxlan.c
    M datapath/vport.c
    M datapath/vport.h

  Log Message:
  -----------
  datapath: compat: Refactor egress tunnel info

upstream tunnel egress info is retrieved using ndo_fill_metadata_dst.
Since we do not have it on older kernel we need to keep vport operation
to do same on these kernels.
Following patch try to merge these to operations into one to avoid code
duplication.
This commit backports fc4099f1 ("openvswitch:
Fix egress tunnel info.")

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: c6e13fccb90bb502410fd58611e82749d34078b5
      https://github.com/openvswitch/ovs/commit/c6e13fccb90bb502410fd58611e82749d34078b5
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/gre.c
    M datapath/linux/compat/include/linux/skbuff.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/ip_tunnels_core.c
    M datapath/linux/compat/lisp.c
    M datapath/linux/compat/stt.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: iptunnel: scrub packet in iptunnel_pull_header

Upstream Commit:
    commit 7f290c94352e59b1d720055fce760a69a63bd0a1
    Author: Jiri Benc <jbenc at redhat.com>

    iptunnel: scrub packet in iptunnel_pull_header

    Part of skb_scrub_packet was open coded in iptunnel_pull_header. Let it call
    skb_scrub_packet directly instead.

    Signed-off-by: Jiri Benc <jbenc at redhat.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 5a109898bdda855cd8e1d846d2e0981db176f3b4
      https://github.com/openvswitch/ovs/commit/5a109898bdda855cd8e1d846d2e0981db176f3b4
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/ip_tunnels_core.c

  Log Message:
  -----------
  datapath: backport: tunnels: Remove encapsulation offloads on decap.

Following patch backports updated iptunnel pull function.
Also brings in following upstream fix:

    commit a09a4c8dd1ec7f830e1fb9e59eb72bddc965d168
    Author: Jesse Gross <jesse at kernel.org>

    tunnels: Remove encapsulation offloads on decap.

    If a packet is either locally encapsulated or processed through GRO
    it is marked with the offloads that it requires. However, when it is
    decapsulated these tunnel offload indications are not removed. This
    means that if we receive an encapsulated TCP packet, aggregate it with
    GRO, decapsulate, and retransmit the resulting frame on a NIC that does
    not support encapsulation, we won't be able to take advantage of hardware
    offloads even though it is just a simple TCP packet at this point.

    This fixes the problem by stripping off encapsulation offload indications
    when packets are decapsulated.

    The performance impacts of this bug are significant. In a test where a
    Geneve encapsulated TCP stream is sent to a hypervisor, GRO'ed, decapsulated,
    and bridged to a VM performance is improved by 60% (5Gbps->8Gbps) as a
    result of avoiding unnecessary segmentation at the VM tap interface.

    Reported-by: Ramu Ramamurthy <sramamur at linux.vnet.ibm.com>
    Fixes: 68c33163 ("v4 GRE: Add TCP segmentation offload for GRE")
    Signed-off-by: Jesse Gross <jesse at kernel.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: d281b6a9a5e79533042e6647114940ef4ef7d838
      https://github.com/openvswitch/ovs/commit/d281b6a9a5e79533042e6647114940ef4ef7d838
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/Modules.mk
    A datapath/linux/compat/dst_cache.c
    M datapath/linux/compat/include/linux/percpu.h
    A datapath/linux/compat/include/net/dst_cache.h
    A datapath/linux/compat/include/net/ip6_fib.h
    M datapath/linux/compat/utils.c

  Log Message:
  -----------
  datapath: backport: net: add dst_cache support

This backports dst-cache implementation from upstream implementation.

    commit 911362c70df5b766c243dc297fadeaced786ffd8
    Author: Paolo Abeni <pabeni at redhat.com>

    net: add dst_cache support
    This patch add a generic, lockless dst cache implementation.
    The need for lock is avoided updating the dst cache fields
    only in per cpu scope, and requiring that the cache manipulation
    functions are invoked with the local bh disabled.

    The refresh_ts and reset_ts fields are used to ensure the cache
    consistency in case of cuncurrent cache update (dst_cache_set*) and
    reset operation (dst_cache_reset).

    Consider the following scenario:

    CPU1:                                       CPU2:
      <cache lookup with emtpy cache: it fails>
      <get dst via uncached route lookup>
                                          <related configuration changes>
                                          dst_cache_reset()
      dst_cache_set()

    The dst entry set passed to dst_cache_set() should not be used
    for later dst cache lookup, because it's obtained using old
    configuration values.

    Since the refresh_ts is updated only on dst_cache lookup, the
    cached value in the above scenario will be discarded on the next
    lookup.

    Signed-off-by: Paolo Abeni <pabeni at redhat.com>
    Suggested-and-acked-by: Hannes Frederic Sowa <hannes at stressinduktion.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: cf5789aa4e30d60c6d46c19d9329145d5f795783
      https://github.com/openvswitch/ovs/commit/cf5789aa4e30d60c6d46c19d9329145d5f795783
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/ip_gre.c
    M datapath/linux/compat/ip_tunnels_core.c
    M datapath/linux/compat/lisp.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: ip_tunnel_core: iptunnel_handle_offloads returns int and doesn't free skb

There is return type change in upstream handle-offload functions.
Following patch brings these changes in.
This is backport of aed069df ("ip_tunnel_core:
iptunnel_handle_offloads returns int and doesn't free skb")
I have also removed duplicate definitions of tunnel_handle_offloads()
from ip-tunnel header.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 4431d10a1452a9b6cedf429090dbc7660778e260
      https://github.com/openvswitch/ovs/commit/4431d10a1452a9b6cedf429090dbc7660778e260
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/include/net/dst_metadata.h
    M datapath/linux/compat/include/net/udp_tunnel.h

  Log Message:
  -----------
  datapath: backport: tunnel: introduce ipv6_tun_rx_dst()

Update ovs_udp_tun_rx_dst() to handle ipv6 tunnels.

This commit partially backports c29a70d2c ("tunnel: introduce udp_tun_rx_dst()")

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 9dc970e18041950149128071be1f379cb7523619
      https://github.com/openvswitch/ovs/commit/9dc970e18041950149128071be1f379cb7523619
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/include/net/ip_tunnels.h

  Log Message:
  -----------
  datapath: compat: Remove unnecessary iptunnel_xmit() declaration.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 3259c4ff757c4d7c297fd149b91d500ba97f0476
      https://github.com/openvswitch/ovs/commit/3259c4ff757c4d7c297fd149b91d500ba97f0476
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/include/net/dst_metadata.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/ipv6.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/include/net/vxlan.h
    M datapath/linux/compat/udp_tunnel.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: ip_tunnel: add support for setting flow label via collect metadata

Update udp_tunnel6_xmit_skb(). Specificaly changes are
related to setting ipv6 label.

Upstream commit:
    commit 134611446dc657e1bbc73ca0e4e6b599df687db0
    Author: Daniel Borkmann <daniel at iogearbox.net>

    ip_tunnel: add support for setting flow label via collect metadata

    This patch extends udp_tunnel6_xmit_skb() to pass in the IPv6 flow label
    from call sites. Currently, there's no such option and it's always set to
    zero when writing ip6_flow_hdr(). Add a label member to ip_tunnel_key, so
    that flow-based tunnels via collect metadata frontends can make use of it.
    vxlan and geneve will be converted to add flow label support separately.

    Signed-off-by: Daniel Borkmann <daniel at iogearbox.net>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 1c95839fee02afa9396a799fff7e42634b1e598a
      https://github.com/openvswitch/ovs/commit/1c95839fee02afa9396a799fff7e42634b1e598a
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/dst_cache.c
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/gre.c
    M datapath/linux/compat/gso.h
    M datapath/linux/compat/include/net/dst_cache.h
    M datapath/linux/compat/include/net/dst_metadata.h
    M datapath/linux/compat/include/net/geneve.h
    M datapath/linux/compat/include/net/gre.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/include/net/vxlan.h
    M datapath/linux/compat/ip_gre.c
    M datapath/linux/compat/ip_tunnel.c
    M datapath/linux/compat/ip_tunnels_core.c
    M datapath/linux/compat/lisp.c
    M datapath/linux/compat/stt.c
    M datapath/linux/compat/udp_tunnel.c
    M datapath/linux/compat/vxlan.c
    M datapath/vport-netdev.c

  Log Message:
  -----------
  datapath: compat: rename HAVE_METADATA_DST to USE_UPSTREAM_TUNNEL

To better represent the meaning of symbol.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: b7ebebcdd7d6513fee9b3f181c47bb5b11a08297
      https://github.com/openvswitch/ovs/commit/b7ebebcdd7d6513fee9b3f181c47bb5b11a08297
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/Modules.mk
    A datapath/linux/compat/include/linux/udp.h
    M datapath/linux/compat/include/net/udp.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/udp.c
    M datapath/linux/compat/udp_tunnel.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: compat: Update udp_sock_create

Update udp-socket-create to create ipv6 socket currectly.

Partially backports commit fd384412e199b ("udp_tunnel: Seperate ipv6
functions into its own file.")

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: f45a3684fe0eec7672c8c5b0cdadb8308cca3708
      https://github.com/openvswitch/ovs/commit/f45a3684fe0eec7672c8c5b0cdadb8308cca3708
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/include/net/udp_tunnel.h

  Log Message:
  -----------
  datapath: compat: Update IPv6 in setup_udp_tunnel_sock()

Update setup_udp_tunnel_sock() to handle ipv6 sockets.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: d7e58913468f5f880722206369340bfdad4f46ee
      https://github.com/openvswitch/ovs/commit/d7e58913468f5f880722206369340bfdad4f46ee
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/udp_tunnel.c

  Log Message:
  -----------
  datapath: backport: udp: Add socket based GRO and config

Upstream commit:
    commit 38fd2af24fcfda93f9fea3e53f26e48775ae9e09
    Author: Tom Herbert <tom at herbertland.com>

    udp: Add socket based GRO and config

    Add gro_receive and  gro_complete to struct udp_tunnel_sock_cfg.

    Signed-off-by: Tom Herbert <tom at herbertland.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 43dd2fce5499ab794b4cff55cb6ef46974b36c78
      https://github.com/openvswitch/ovs/commit/43dd2fce5499ab794b4cff55cb6ef46974b36c78
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/include/net/ip6_tunnel.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/ip_gre.c
    M datapath/linux/compat/ip_tunnels_core.c
    M datapath/linux/compat/lisp.c
    M datapath/linux/compat/stt.c
    M datapath/linux/compat/udp_tunnel.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: ip_tunnel: Move stats update to iptunnel_xmit()

Upstream commit:
    commit 039f50629b7f860f36644ed1f34b27da9aa62f43
    Author: Pravin B Shelar <pshelar at ovn.org>

    ip_tunnel: Move stats update to iptunnel_xmit()

    By moving stats update into iptunnel_xmit(), we can simplify
    iptunnel_xmit() usage. With this change there is no need to
    call another function (iptunnel_xmit_stats()) to update stats
    in tunnel xmit code path.

    Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: d244215fa9838f789c1c69222ba699380ef6a7e0
      https://github.com/openvswitch/ovs/commit/d244215fa9838f789c1c69222ba699380ef6a7e0
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/gso.c

  Log Message:
  -----------
  datapath: compat: Prepare tnl-segmentation for ipv6.

Current tnl_skb_gso_segment() is written for ipv4 tunnels. Following
patch make it generic so that it can also handle ipv6 tunnels.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 54461156108126d4a3b5c71367d9425a82f7cfbd
      https://github.com/openvswitch/ovs/commit/54461156108126d4a3b5c71367d9425a82f7cfbd
  Author: Pravin B Shelar <pshelar at nicira.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/gso.c
    M datapath/linux/compat/gso.h
    M datapath/linux/compat/include/net/ip6_tunnel.h
    M datapath/linux/compat/udp_tunnel.c

  Log Message:
  -----------
  datapath: compat: Add support for IPv6 UDP tunnel segmentation.

Next patch adds support for IPV6 Geneve and VXLAN, But support for UDP
segmentation is available on all supported kernel.
Following patch adds support for UDP tunnels over IPv6 for such kernels.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: f2252c6105a32bada26949fa65ec146c4ac30697
      https://github.com/openvswitch/ovs/commit/f2252c6105a32bada26949fa65ec146c4ac30697
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/include/linux/if_ether.h
    M datapath/linux/compat/include/linux/if_link.h
    M datapath/linux/compat/include/linux/netdev_features.h
    M datapath/linux/compat/include/linux/netdevice.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/rtnetlink.h
    M datapath/linux/compat/include/net/udp_tunnel.h
    M datapath/linux/compat/include/net/vxlan.h
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: compat: Update Geneve and VxLAN modules.

This patch brings in various updates to upstream Geneve and VxLAN
modules. For geneve this patch adds IPv6 support, for vxlan it adds
VXLAN GPE is the major feature.
This should make OVS compat tunnel implementation in sync upto
current net branch.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 8a2d4905a00fb4c2b37c55486dba353890c89048
      https://github.com/openvswitch/ovs/commit/8a2d4905a00fb4c2b37c55486dba353890c89048
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M FAQ.md
    M NEWS
    M datapath/flow.c
    M datapath/flow.h
    M datapath/flow_netlink.c

  Log Message:
  -----------
  datapath: Add support for IPv6 tunnels.

Mostly backports upstream commit along with other pieces
to make IPv6 tunneling work.

    commit 6b26ba3a7d952e611dcde1f3f77ce63bcc70540a
    Author: Jiri Benc <jbenc at redhat.com>

    openvswitch: netlink attributes for IPv6 tunneling

    Add netlink attributes for IPv6 tunnel addresses. This enables IPv6 support
    for tunnels.

    Signed-off-by: Jiri Benc <jbenc at redhat.com>
    Acked-by: Pravin B Shelar <pshelar at ovn.org>
    Acked-by: Thomas Graf <tgraf at suug.ch>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: e02c0ed70fb786d8b60b3cba87dcc9375c103639
      https://github.com/openvswitch/ovs/commit/e02c0ed70fb786d8b60b3cba87dcc9375c103639
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/flow_netlink.c
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/gso.h
    M datapath/linux/compat/include/net/ip_tunnels.h
    M datapath/linux/compat/include/net/vxlan.h
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: compat: Use dst-cache for Geneve and VxLAN tunnels.

It partialy backport commit:
    commit d71785ffc7e7cae3fbdc4ea8a9d05b7a1c59f7b8
    Author: Paolo Abeni <pabeni at redhat.com>

    net: add dst_cache to ovs vxlan lwtunnel

    In case of UDP traffic with datagram length
    below MTU this give about 2% performance increase
    when tunneling over ipv4 and about 60% when tunneling
    over ipv6

    Signed-off-by: Paolo Abeni <pabeni at redhat.com>
    Suggested-and-acked-by: Hannes Frederic Sowa <hannes at stressinduktion.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Bug fix commit db3c6139e6e ("bpf, vxlan, geneve, gre: fix usage of
dst_cache on xmit"). is also included. Geneve changes
were added in 468dfffcd762cbb2777ec5a76bc21e3748ebf47e ("geneve: add
dst caching support")

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 29e7e7d04428ebbef20ccc0ee082250253d3cbc8
      https://github.com/openvswitch/ovs/commit/29e7e7d04428ebbef20ccc0ee082250253d3cbc8
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/flow_netlink.c

  Log Message:
  -----------
  datapath: backport: openvswitch: correct encoding of set tunnel action attributes

upstream commit:
    commit e905eabc90a5b787d8708df164543ee295bea5f2
    Author: Simon Horman <simon.horman at netronome.com>

    openvswitch: correct encoding of set tunnel action attributes

    In a set action tunnel attributes should be encoded in a
    nested action.

    I noticed this because ovs-dpctl was reporting an error
    when dumping flows due to the incorrect encoding of tunnel attributes
    in a set action.

    Fixes: fc4099f17240 ("openvswitch: Fix egress tunnel info.")
    Signed-off-by: Simon Horman <simon.horman at netronome.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: c1eb2500d139ee1f39c7729e7fdb3459f2144a69
      https://github.com/openvswitch/ovs/commit/c1eb2500d139ee1f39c7729e7fdb3459f2144a69
  Author: Pravin B Shelar <pshelar at nicira.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M acinclude.m4
    M datapath/linux/compat/gso.h
    M datapath/linux/compat/include/linux/skbuff.h
    M datapath/linux/compat/skbuff-openvswitch.c

  Log Message:
  -----------
  datapath: compat: get rid of OVS_CB inner header offsets.

OVS has GSO compat functionality which needs inner offset
of the packet to segment a packet. older kernel did not
include these offsets in skb, therefore these were stored
in OVS_GSO_CB. Now OVS has dropped support for these
old kernel, So none of the supported kernel needs this
comapt code. Following patch removes it.

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 362f222d956489a7d07912a7d7e619e08b099d7d
      https://github.com/openvswitch/ovs/commit/362f222d956489a7d07912a7d7e619e08b099d7d
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c

  Log Message:
  -----------
  datapath: backport: geneve: add IPv6 bits to geneve_fill_metadata_dst

Upstream commit:
    commit b8812fa88371ae567c907448d9a7ba62d09b90c9
    Author: John W. Linville <linville at tuxdriver.com>

    geneve: add IPv6 bits to geneve_fill_metadata_dst

    Signed-off-by: John W. Linville <linville at tuxdriver.com>
    Reviewed-by: Jesse Gross <jesse at ovn.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: cc3af88e1a7224421606090bda7ba560198f00a9
      https://github.com/openvswitch/ovs/commit/cc3af88e1a7224421606090bda7ba560198f00a9
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: udp_offload: Set encapsulation before inner completes.

Upstream commit:
    commit 229740c63169462a838a8b8e16391ed000934631
    Author: Jarno Rajahalme <jarno at ovn.org>

    udp_offload: Set encapsulation before inner completes.

    UDP tunnel segmentation code relies on the inner offsets being set for
    an UDP tunnel GSO packet, but the inner *_complete() functions will
    set the inner offsets only if 'encapsulation' is set before calling
    them.  Currently, udp_gro_complete() sets 'encapsulation' only after
    the inner *_complete() functions are done.  This causes the inner
    offsets having invalid values after udp_gro_complete() returns, which
    in turn will make it impossible to properly segment the packet in case
    it needs to be forwarded, which would be visible to the user either as
    invalid packets being sent or as packet loss.

    This patch fixes this by setting skb's 'encapsulation' in
    udp_gro_complete() before calling into the inner complete functions,
    and by making each possible UDP tunnel gro_complete() callback set the
    inner_mac_header to the beginning of the tunnel payload.

    Signed-off-by: Jarno Rajahalme <jarno at ovn.org>
    Reviewed-by: Alexander Duyck <aduyck at mirantis.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 2b3397ebcda56f039714bfb6451b70e4407fe0ef
      https://github.com/openvswitch/ovs/commit/2b3397ebcda56f039714bfb6451b70e4407fe0ef
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: udp: prevent skbs lingering in tunnel socket queues

Upstream commit:
    commit e5aed006be918af163eb397e45aa5ea6cefd5e01
    Author: Hannes Frederic Sowa <hannes at stressinduktion.org>

    udp: prevent skbs lingering in tunnel socket queues

    In case we find a socket with encapsulation enabled we should call
    the encap_recv function even if just a udp header without payload is
    available. The callbacks are responsible for correctly verifying and
    dropping the packets.

    Also, in case the header validation fails for geneve and vxlan we
    shouldn't put the skb back into the socket queue, no one will pick
    them up there.  Instead we can simply discard them in the respective
    encap_recv functions.

    Signed-off-by: Hannes Frederic Sowa <hannes at stressinduktion.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 43038e799cf464b2e766fef0e15da326b6fbbdf8
      https://github.com/openvswitch/ovs/commit/43038e799cf464b2e766fef0e15da326b6fbbdf8
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c

  Log Message:
  -----------
  datapath: backport: geneve: fix tx_errors statistics

Upstream commit:
    commit efeb2267bba8aa893afdadfc9bae4790777c600c
    Author: Haishuang Yan <yanhaishuang at cmss.chinamobile.com>

    geneve: fix tx_errors statistics

    Tx errors present summation of errors encountered while transmitting
    packets.

    Signed-off-by: Haishuang Yan <yanhaishuang at cmss.chinamobile.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 7cecb9c90b53720a7eb70fde30305946ad41b51b
      https://github.com/openvswitch/ovs/commit/7cecb9c90b53720a7eb70fde30305946ad41b51b
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c
    M datapath/linux/compat/ip_gre.c

  Log Message:
  -----------
  datapath: backport: ovs/gre,geneve: fix error path when creating an iface

Upstream commit:
    commit 106da663ff495e0aea3ac15b8317aa410754fcac
    Author: Nicolas Dichtel <nicolas.dichtel at 6wind.com>

    ovs/gre,geneve: fix error path when creating an iface

    After ipgre_newlink()/geneve_configure() call, the netdev is registered.

    Fixes: 7e059158d57b ("vxlan, gre, geneve: Set a large MTU on ovs-created tunnel devices")
    CC: David Wragg <david at weave.works>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: 74d56f0b114d320c8f8c8d49b648fc22dfa4d79e
      https://github.com/openvswitch/ovs/commit/74d56f0b114d320c8f8c8d49b648fc22dfa4d79e
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/geneve.c

  Log Message:
  -----------
  datapath: backport: ovs/geneve: fix rtnl notifications on iface deletion

Upstream Commit:
    commit 41009481b690493c169ce85f591b9d32c6fd9422
    Author: Nicolas Dichtel <nicolas.dichtel at 6wind.com>

    ovs/geneve: fix rtnl notifications on iface deletion

    The function geneve_dev_create_fb() (only used by ovs) never calls
    rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
    never set to RTNL_LINK_INITIALIZED.
    During the deletion phase, the function rollback_registered_many() sends
    a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.

    Fixes: e305ac6cf5a1 ("geneve: Add support to collect tunnel metadata.")
    CC: Pravin B Shelar <pshelar at ovn.org>
    CC: Jesse Gross <jesse at ovn.org>
    CC: Thomas Graf <tgraf at suug.ch>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: f6d708693589df5f2fac4c1c85a0a5c6fe7ae112
      https://github.com/openvswitch/ovs/commit/f6d708693589df5f2fac4c1c85a0a5c6fe7ae112
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/vxlan.c

  Log Message:
  -----------
  datapath: backport: ovs/vxlan: fix rtnl notifications on iface deletion

At this point OVS tunneling is insync with upstream net
branch (commit 9a0fee2b552b1).

upstream commit:
    commit cf5da330bbdd0c06b05c525a3d1d58ccd82c87a6
    Author: Nicolas Dichtel <nicolas.dichtel at 6wind.com>

    ovs/vxlan: fix rtnl notifications on iface deletion

    The function vxlan_dev_create() (only used by ovs) never calls
    rtnl_configure_link(). The consequence is that dev->rtnl_link_stat is
    never set to RTNL_LINK_INITIALIZED.
    During the deletion phase, the function rollback_registered_many() sends
    a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.

    Note that the function vxlan_dev_create() is moved after the rtnl stuff so
    that vxlan_dellink() can be called in this function.

    Fixes: dcc38c033b32 ("openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN")
    CC: Thomas Graf <tgraf at suug.ch>
    CC: Pravin B Shelar <pshelar at ovn.org>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


  Commit: ea997e594516966f3d60f4089e44d0b72f6b7498
      https://github.com/openvswitch/ovs/commit/ea997e594516966f3d60f4089e44d0b72f6b7498
  Author: Pravin B Shelar <pshelar at ovn.org>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M datapath/linux/compat/ip_tunnels_core.c

  Log Message:
  -----------
  datapath: backport: iptunnel: make rx/tx bytes counters consistent

Upstream commit:
commit bc22a0e2ea03b75b51a1f722f93821744b5b5ff1
Author: Nicolas Dichtel <nicolas.dichtel at 6wind.com>

    iptunnel: make rx/tx bytes counters consistent

    This was already done a long time ago in
    commit 64194c31a0b6 ("inet: Make tunnel RX/TX byte counters more consistent")
    but tx path was broken (at least since 3.10).

    Before the patch the gre header was included on tx.

    After the patch:
    $ ping -c1 192.168.0.121 ; ip -s l ls dev gre1
    PING 192.168.0.121 (192.168.0.121) 56(84) bytes of data.
    64 bytes from 192.168.0.121: icmp_req=1 ttl=64 time=2.95 ms

    --- 192.168.0.121 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 2.955/2.955/2.955/0.000 ms
    7: gre1 at NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN mode DEFAULT group default
  link/gre 10.16.0.249 peer 10.16.0.121
  RX: bytes  packets  errors  dropped overrun mcast
  84         1        0       0       0       0
  TX: bytes  packets  errors  dropped carrier collsns
  84         1        0       0       0       0

    Reported-by: Julien Meunier <julien.meunier at 6wind.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
Acked-by: Jesse Gross <jesse at kernel.org>


Compare: https://github.com/openvswitch/ovs/compare/9dede5cff553...ea997e594516


More information about the git mailing list