Browse Source

openvswitch: add patch "datapath: Backport __ip_select_ident() function"

Signed-off-by: Alexandru Ardelean <aa@ocedo.com>
Alexandru Ardelean 10 years ago
parent
commit
78f0bd7e45

+ 43
- 0
net/openvswitch/patches/0005-datapath-backport___ip_select_ident_function.patch View File

@@ -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)))