|
@@ -0,0 +1,43 @@
|
|
1
|
+commit 2ea824143172e38b4387ef23b8685cebaee21c69
|
|
2
|
+Author: Pravin B Shelar <pshelar@nicira.com>
|
|
3
|
+Date: Tue Sep 24 18:42:43 2013 -0700
|
|
4
|
+
|
|
5
|
+ datapath: Backport __ip_select_ident() function
|
|
6
|
+
|
|
7
|
+ definition of __ip_select_ident() changed in newer kernel and
|
|
8
|
+ it is backported to stable kernel, Therefore adding configure
|
|
9
|
+ check to detect the new function.
|
|
10
|
+
|
|
11
|
+ Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
|
|
12
|
+ Acked-by: Andy Zhou <azhou@nicira.com>
|
|
13
|
+
|
|
14
|
+diff --git a/acinclude.m4 b/acinclude.m4
|
|
15
|
+index 7e036e5..b0794d2 100644
|
|
16
|
+--- a/acinclude.m4
|
|
17
|
++++ b/acinclude.m4
|
|
18
|
+@@ -284,6 +284,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
|
|
19
|
+ OVS_GREP_IFELSE([$KSRC/include/linux/if_vlan.h], [vlan_set_encap_proto])
|
|
20
|
+
|
|
21
|
+ OVS_GREP_IFELSE([$KSRC/include/linux/in.h], [ipv4_is_multicast])
|
|
22
|
++ OVS_GREP_IFELSE([$KSRC/include/net/ip.h], [__ip_select_ident.*dst_entry],
|
|
23
|
++ [OVS_DEFINE([HAVE_IP_SELECT_IDENT_USING_DST_ENTRY])])
|
|
24
|
+
|
|
25
|
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_disable_lro])
|
|
26
|
+ OVS_GREP_IFELSE([$KSRC/include/linux/netdevice.h], [dev_get_stats])
|
|
27
|
+diff --git a/datapath/linux/compat/ip_tunnels_core.c b/datapath/linux/compat/ip_tunnels_core.c
|
|
28
|
+index d650be2..a70aefc 100644
|
|
29
|
+--- a/datapath/linux/compat/ip_tunnels_core.c
|
|
30
|
++++ b/datapath/linux/compat/ip_tunnels_core.c
|
|
31
|
+@@ -70,7 +70,12 @@ int iptunnel_xmit(struct rtable *rt,
|
|
32
|
+ iph->daddr = dst;
|
|
33
|
+ iph->saddr = src;
|
|
34
|
+ iph->ttl = ttl;
|
|
35
|
++
|
|
36
|
++#ifdef HAVE_IP_SELECT_IDENT_USING_DST_ENTRY
|
|
37
|
+ __ip_select_ident(iph, &rt_dst(rt), (skb_shinfo(skb)->gso_segs ?: 1) - 1);
|
|
38
|
++#else
|
|
39
|
++ __ip_select_ident(iph, skb_shinfo(skb)->gso_segs ?: 1);
|
|
40
|
++#endif
|
|
41
|
+
|
|
42
|
+ err = ip_local_out(skb);
|
|
43
|
+ if (unlikely(net_xmit_eval(err)))
|