Skip to content

Commit

Permalink
compat: Include confirm_neigh parameter if needed
Browse files Browse the repository at this point in the history
A change backported to the Linux 4.14.162 LTS kernel requires
a boolean parameter.  Check for the presence of the parameter
and adjust the caller in that case.

Passes check-kmod test with no regressions.

Passes Travis build here:
https://travis-ci.org/gvrose8192/ovs-experimental/builds/633461320

Signed-off-by: Greg Rose <[email protected]>
Signed-off-by: Simon Horman <[email protected]>
  • Loading branch information
gvrose8192 authored and shorman-netronome committed Jan 7, 2020
1 parent 1ecb4cd commit 6634cc8
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
2 changes: 2 additions & 0 deletions acinclude.m4
Original file line number Diff line number Diff line change
Expand Up @@ -1065,6 +1065,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
[OVS_DEFINE([HAVE_IP_GRE_CALC_HLEN])])
OVS_GREP_IFELSE([$KSRC/include/linux/rbtree.h], [rb_link_node_rcu],
[OVS_DEFINE([HAVE_RBTREE_RB_LINK_NODE_RCU])])
OVS_GREP_IFELSE([$KSRC/include/net/dst_ops.h], [bool confirm_neigh],
[OVS_DEFINE([HAVE_DST_OPS_CONFIRM_NEIGH])])
if cmp -s datapath/linux/kcompat.h.new \
datapath/linux/kcompat.h >/dev/null 2>&1; then
Expand Down
4 changes: 4 additions & 0 deletions datapath/linux/compat/ip6_gre.c
Original file line number Diff line number Diff line change
Expand Up @@ -1089,7 +1089,11 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb,

/* TooBig packet may have updated dst->dev's mtu */
if (!t->parms.collect_md && dst && dst_mtu(dst) > dst->dev->mtu)
#ifndef HAVE_DST_OPS_CONFIRM_NEIGH
dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu);
#else
dst->ops->update_pmtu(dst, NULL, skb, dst->dev->mtu, false);
#endif

err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu,
NEXTHDR_GRE);
Expand Down
5 changes: 5 additions & 0 deletions datapath/linux/compat/ip_tunnel.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,12 @@ static int rpl_tnl_update_pmtu(struct net_device *dev, struct sk_buff *skb,
mtu = skb_valid_dst(skb) ? dst_mtu(skb_dst(skb)) : dev->mtu;

if (skb_valid_dst(skb))
#ifndef HAVE_DST_OPS_CONFIRM_NEIGH
skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
#else
skb_dst(skb)->ops->update_pmtu(skb_dst(skb),
NULL, skb, mtu, false);
#endif

if (skb->protocol == htons(ETH_P_IP)) {
if (!skb_is_gso(skb) &&
Expand Down

0 comments on commit 6634cc8

Please sign in to comment.