Broadly, for the conntrack and ip_fragment backport in the OVS tree, we have
until now depended on a macro to include the entire backport based on kernel
version. Any kernel that the backport is compiled against from version v3.10 up
to v4.3 ends up using the backported version of all functions, rather than
making use of the upstream functions as much as possible.

This approach is a little different from what the remainder of the OVS backport
code does, where upstream code is used as much as possible. Particularly with
future kernels, it is better for us to rely on the upstream functionality
rather than always backporting the version in the tree.

In future we anticipate different combinations of this functionality being
backported into distribution kernels, which makes these version checks less
reliable for finding the actual functionality available in the host kernel.

This series removes all of the existing version checks in the
conntrack/fragment backport code in favour of checks for individual functions.
I propose backporting these to branch-2.5 as well, to make it more likely that
the v2.5 release will continue to work with updated distribution kernels as
they are released (or at least, less work to fix it later).

Joe Stringer (13):
  compat: Detect and use inet_frag_queue->last_in.
  compat: Detect and use inet_frag_queue->list_evictor.
  compat: Detect and use inet_frags->frags_work.
  compat: Detect and use inet_frags->lock.
  compat: Detect and use struct nf_conntrack_zone.
  compat: Detect and use nf_ipv6_ops->fragment.
  compat: Detect and use nf_connlabels_get().
  compat: Detect and use __skb_dst_copy().
  compat: Detect and use inet_getpeer_v4().
  compat: Detect and use upstream ip_fragment().
  compat: Detect and use nf_ct_frag6_gather().
  datapath: Re-designate OVS_FRAGMENT_BACKPORT.
  travis: Update kernel matrix.

 .travis.yml                                        |  16 ++--
 acinclude.m4                                       |  30 +++++-
 datapath/compat.h                                  |   5 +
 .../linux/compat/include/linux/netfilter_ipv6.h    |   6 +-
 datapath/linux/compat/include/net/dst.h            |   2 +-
 datapath/linux/compat/include/net/inet_frag.h      |  10 +-
 datapath/linux/compat/include/net/inetpeer.h       |   3 +-
 datapath/linux/compat/include/net/ip.h             |  18 ++--
 datapath/linux/compat/include/net/ip6_route.h      |  13 +--
 .../include/net/netfilter/ipv6/nf_defrag_ipv6.h    |  14 ++-
 .../include/net/netfilter/nf_conntrack_expect.h    |   4 +-
 .../include/net/netfilter/nf_conntrack_labels.h    |   4 +-
 .../include/net/netfilter/nf_conntrack_zones.h     |   4 +-
 datapath/linux/compat/inet_fragment.c              | 104 ++++++++++-----------
 datapath/linux/compat/ip6_output.c                 |   2 +-
 datapath/linux/compat/ip_fragment.c                |   8 +-
 datapath/linux/compat/nf_conntrack_core.c          |   4 +-
 datapath/linux/compat/nf_conntrack_reasm.c         |   8 +-
 18 files changed, 151 insertions(+), 104 deletions(-)

-- 
2.1.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to