From: Eric Garver <hidden> Date: 2017-05-18 19:59:58
CSMU6_RX is relevant for collect_metadata as well. As such leave it
outside of the dev's IPv4/IPv6 checks.
Fixes: 9b4437a5b870 ("geneve: Unify LWT and netdev handling.")
Signed-off-by: Eric Garver <redacted>
---
drivers/net/geneve.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
From: Eric Garver <hidden> Date: 2017-05-20 13:35:06
On Fri, May 19, 2017 at 06:57:46PM -0700, Pravin Shelar wrote:
On Thu, May 18, 2017 at 12:59 PM, Eric Garver [off-list ref] wrote:
quoted
CSMU6_RX is relevant for collect_metadata as well. As such leave it
outside of the dev's IPv4/IPv6 checks.
Can you explain it bit? is this flag used with ipv4 tunnels?
It's used with collect_metadata as both ipv4 and ipv6 sockets will be
created.
openvswitch recently gained support for creating tunnels with rtnetlink.
It sets COLLECT_METADATA and CSUM6_RX. After create, it does a get to
verify the device got created with all the requested configuration. The
verify was failing due to CSUM6_RX not being returned.
Since ip_tunnel_info_af() defaults to returning AF_INET, we fall into
the IPv4 case and CSUM6_RX is never returned. Other relevant areas that
call ip_tunnel_info_af() do so using the info from the skb, not the
geneve_dev.
I hope that made it clear. Thanks for taking a look.
Eric.
On Sat, May 20, 2017 at 6:35 AM, Eric Garver [off-list ref] wrote:
On Fri, May 19, 2017 at 06:57:46PM -0700, Pravin Shelar wrote:
quoted
On Thu, May 18, 2017 at 12:59 PM, Eric Garver [off-list ref] wrote:
quoted
CSMU6_RX is relevant for collect_metadata as well. As such leave it
outside of the dev's IPv4/IPv6 checks.
Can you explain it bit? is this flag used with ipv4 tunnels?
It's used with collect_metadata as both ipv4 and ipv6 sockets will be
created.
openvswitch recently gained support for creating tunnels with rtnetlink.
It sets COLLECT_METADATA and CSUM6_RX. After create, it does a get to
verify the device got created with all the requested configuration. The
verify was failing due to CSUM6_RX not being returned.
Since ip_tunnel_info_af() defaults to returning AF_INET, we fall into
the IPv4 case and CSUM6_RX is never returned. Other relevant areas that
call ip_tunnel_info_af() do so using the info from the skb, not the
geneve_dev.
ok.
I think ip_tunnel_info_af() check is not right. it does not work in
case of collect_metadata.
Better fix would be check for genene->sock4 and genene->sock6 and
build the netlink skb accordingly.
From: Eric Garver <hidden> Date: 2017-05-22 16:50:54
On Sat, May 20, 2017 at 09:56:44PM -0700, Pravin Shelar wrote:
On Sat, May 20, 2017 at 6:35 AM, Eric Garver [off-list ref] wrote:
quoted
On Fri, May 19, 2017 at 06:57:46PM -0700, Pravin Shelar wrote:
quoted
On Thu, May 18, 2017 at 12:59 PM, Eric Garver [off-list ref] wrote:
quoted
CSMU6_RX is relevant for collect_metadata as well. As such leave it
outside of the dev's IPv4/IPv6 checks.
Can you explain it bit? is this flag used with ipv4 tunnels?
It's used with collect_metadata as both ipv4 and ipv6 sockets will be
created.
openvswitch recently gained support for creating tunnels with rtnetlink.
It sets COLLECT_METADATA and CSUM6_RX. After create, it does a get to
verify the device got created with all the requested configuration. The
verify was failing due to CSUM6_RX not being returned.
Since ip_tunnel_info_af() defaults to returning AF_INET, we fall into
the IPv4 case and CSUM6_RX is never returned. Other relevant areas that
call ip_tunnel_info_af() do so using the info from the skb, not the
geneve_dev.
ok.
I think ip_tunnel_info_af() check is not right. it does not work in
case of collect_metadata.
Better fix would be check for genene->sock4 and genene->sock6 and
build the netlink skb accordingly.
Agreed. That's a better idea.
Lets drop this patch. I'll work on one to look at the actual sockets
instead.
Thanks Pravin.