Recreate and error info:
Hit a new issue with OVS after updating to the Ubuntu 4.8 kernel from the
Ubuntu 4.4 kernel.
Iperf was used to send traffic between client VMs over VXLAN. The traffic did
still flow, but every packet had to go to user space due to the flow creation
failures, which drastically impacted performance and cpu utilization.
When using VXLAN, the following error is showing up in dmesg
openvswitch: netlink: Unknown IP tunnel attribute 14
Also there are tons of these errors in the openvswitch log
2017-03-01T15:50:47.860Z|00018|dpif(handler164)|WARN|system@ovs-system: failed
to put[create] (Invalid argument) ufid:2d1a9aeb-7b24-4235-a208-a01f98237e60
recirc_id(0),dp_hash(0/0),skb_pri
Debug showed that this attribute, OVS_TUNNEL_KEY_ATTR_PAD, was being seen in the
switch statement in method, static int ip_tun_from_nlattr, in flow_netlink.c .
Because there is no case for this attribute, the default is hit and returns an
error.
The issue was first seen using the packages in the Ubuntu 4.8 kernel, which is
OVS 2.5. OVS 2.6 and 2.6.1 were also tried with the kernel packages and the
same issue was seen. Tried building OVS 2.7 and loading the
openvswitch-datapath-dkms_2.7.0-1_all.deb that got built but the issue persisted.
The proposed patch seems to eliminate the error messages and also fixed the
segmentation and performance issues that were seen.
Kris Murphy (1):
openvswitch: Add missing case OVS_TUNNEL_KEY_ATTR_PAD
net/openvswitch/flow_netlink.c | 2 ++
1 file changed, 2 insertions(+)
--
2.7.4
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>
---
net/openvswitch/flow_netlink.c | 2 ++
1 file changed, 2 insertions(+)
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>
---
net/openvswitch/flow_netlink.c | 2 ++
1 file changed, 2 insertions(+)
From: Joe Stringer <hidden> Date: 2017-03-16 18:46:31
On 16 March 2017 at 08:51, Kris Murphy [off-list ref] wrote:
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>
Thanks for the fix. In future please also place the target tree (in
this case 'net') in the subject line.
Acked-by: Joe Stringer <redacted>
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>
Sorry that was incorrect, the commit that added the attribute was in 4.7
so please add cc: Stable@vger.kernel.org #4.7+
On 3/28/2017 10:22 AM, Kris Murphy wrote:
The issue exists starting with 4.6 so can you add cc:
Stable@vger.kernel.org #4.6+
On 3/16/2017 2:00 PM, David Miller wrote:
Added a case for OVS_TUNNEL_KEY_ATTR_PAD to the switch statement
in ip_tun_from_nlattr in order to prevent the default case
returning an error.
Fixes: b46f6ded906e ("libnl: nla_put_be64(): align on a 64-bit area")
Signed-off-by: Kris Murphy <redacted>