[Bug 1262692] Re: oops using openvswitch 1.4.6 with 3.5 series kernel

Chris J Arges 1262692 at bugs.launchpad.net
Tue Jan 7 15:26:29 UTC 2014


Ok so the problem is that Linux changed the prototype of
ip_select_indent. We can fix this on the ovs side using the following:

diff --git a/datapath/tunnel.c b/datapath/tunnel.c
index 1ebbc77..d62e1ea 100644
--- a/datapath/tunnel.c
+++ b/datapath/tunnel.c
@@ -1294,8 +1294,14 @@ int ovs_tnl_send(struct vport *vport, struct sk_buff *skb)
                iph->tos = tos;
                iph->ttl = ttl;
                iph->frag_off = frag_off;
-               ip_select_ident(iph, &rt_dst(rt), NULL);
 
+               /* linux commit 703133de changes the interface of
+                  ip_select_ident from iph to skb */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+               ip_select_ident(skb, &rt_dst(rt), NULL);
+#else
+               ip_select_ident(iph, &rt_dst(rt), NULL);
+#endif
                skb = tnl_vport->tnl_ops->update_header(vport, mutable,
                                                        &rt_dst(rt), skb);
                if (unlikely(!skb))


So we just need to check if the kernel version has this header and switch accordingly. The version I have above isn't exactly correct since there are differences between linux upstream and stable.

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to openvswitch in Ubuntu.
https://bugs.launchpad.net/bugs/1262692

Title:
  oops using openvswitch 1.4.6 with 3.5 series kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1262692/+subscriptions



More information about the Ubuntu-server-bugs mailing list