From patchwork Mon Nov 13 09:03:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 837392 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="umBRiuyf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yb4Ss2C0jz9sBW for ; Mon, 13 Nov 2017 20:04:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752187AbdKMJEJ (ORCPT ); Mon, 13 Nov 2017 04:04:09 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:51410 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751597AbdKMJEH (ORCPT ); Mon, 13 Nov 2017 04:04:07 -0500 Received: by mail-pf0-f193.google.com with SMTP id j28so9062059pfk.8 for ; Mon, 13 Nov 2017 01:04:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ct4+Vdtmzw3ZZX01L3UyVFfZSVmj1MZYu017PfV5Qs4=; b=umBRiuyfM3fommvXx+s0Pm507YY76MJOUXh5hxEo2yybVrMGxGnl+XcE5nuWW4HG+2 sMHOi3Efmejj50TV4IsFnppBsvG0XNiq9j/SirxxLrsbneGdqYDtK2LEyu3hIvlIcs2k +jd9lJPL9M0ESR8aBt4jsVWSZXuER4xqjqpe/tNrQjDTrzBTPCj69j5MzeeRzP26LWc3 LxdEz5laFZ2UyO9stCZ7l2SYFiHVA4V12bIIOIDNSJs0h1YsqX5bE2jt5hXIRJB70LOE QDlIWI0dKUrvsQCuYTzlK6cFdzhpnwi78AuGJARCyjcSEIzY5LAr+YlWV+xbkgRizZLJ oBdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ct4+Vdtmzw3ZZX01L3UyVFfZSVmj1MZYu017PfV5Qs4=; b=WOJTP40TDouZXZ6BrpqS28syXbCEBYDmP0LhWUs/z8ZfO0enP7sScTMbsiJgQz73PT KttqDzWh20FFZ5+TmOJaG+9i0omMyHentC0Sn5w9C113IXZIpEBzIqGb4kGN7+mojg7S ar16dXpe3HhN4LEpHTHAmxhEgPQ3bXI8AG7E/W8NcefW06BEWwv/z6p3xvzjzCF1yR+C 4qpJsGp5upoMi7ETGWQd44eruEKwYRGowITyJaVds9XdHbiaPVkHftNS0hBhhGXNR3yJ IPQvSkJg+T1YmBVNrJfCYIX/EnTyLhfShl4dFrulIbaJ5TMRxpmQsbHOfU2dOWrzX1Vr hLlg== X-Gm-Message-State: AJaThX7si6cGsiwER9+x+3jl6X53BXIzFyyTHH3mmTByt2BrNfEpXsMn kbU/ZCmyc5MIZT2/0Kv/MOigqklR X-Google-Smtp-Source: AGs4zMYazaFuVgcz4NuYQQqjA1F6k+oI19oK+KbTWyXlaTmfXmsLv1zrq3qvSLJL/UOUt7UH66RnPw== X-Received: by 10.84.235.198 with SMTP id m6mr8143278plt.153.1510563847193; Mon, 13 Nov 2017 01:04:07 -0800 (PST) Received: from leo.usersys.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id x87sm33761947pfi.10.2017.11.13.01.04.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Nov 2017 01:04:06 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Eric Garver , Pravin B Shelar , "David S. Miller" , Jiri Benc , Hangbin Liu Subject: [PATCH net] geneve: show remote address and checksum info even after link down Date: Mon, 13 Nov 2017 17:03:26 +0800 Message-Id: <1510563806-8012-1-git-send-email-liuhangbin@gmail.com> X-Mailer: git-send-email 2.5.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org geneve->sock4/6 were added with geneve_open and released with geneve_stop. So when geneve link down, we will not able to show remote address and checksum info after commit 11387fe4a98 ("geneve: fix fill_info when using collect_metadata"). Fix this by reset back to the previous behavior: only show the corresponding remote address and always show checksum info. Fixes: 11387fe4a98 ("geneve: fix fill_info when using collect_metadata") Signed-off-by: Hangbin Liu --- drivers/net/geneve.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index ed51018..b010db7 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c @@ -1511,32 +1511,18 @@ static int geneve_fill_info(struct sk_buff *skb, const struct net_device *dev) if (nla_put_u32(skb, IFLA_GENEVE_ID, vni)) goto nla_put_failure; - if (rtnl_dereference(geneve->sock4)) { + if (ip_tunnel_info_af(info) == AF_INET) { if (nla_put_in_addr(skb, IFLA_GENEVE_REMOTE, info->key.u.ipv4.dst)) goto nla_put_failure; - if (nla_put_u8(skb, IFLA_GENEVE_UDP_CSUM, - !!(info->key.tun_flags & TUNNEL_CSUM))) - goto nla_put_failure; - - } - #if IS_ENABLED(CONFIG_IPV6) - if (rtnl_dereference(geneve->sock6)) { + } else { if (nla_put_in6_addr(skb, IFLA_GENEVE_REMOTE6, &info->key.u.ipv6.dst)) goto nla_put_failure; - - if (nla_put_u8(skb, IFLA_GENEVE_UDP_ZERO_CSUM6_TX, - !(info->key.tun_flags & TUNNEL_CSUM))) - goto nla_put_failure; - - if (nla_put_u8(skb, IFLA_GENEVE_UDP_ZERO_CSUM6_RX, - !geneve->use_udp6_rx_checksums)) - goto nla_put_failure; - } #endif + } if (nla_put_u8(skb, IFLA_GENEVE_TTL, info->key.ttl) || nla_put_u8(skb, IFLA_GENEVE_TOS, info->key.tos) || @@ -1550,6 +1536,14 @@ static int geneve_fill_info(struct sk_buff *skb, const struct net_device *dev) if (nla_put_flag(skb, IFLA_GENEVE_COLLECT_METADATA)) goto nla_put_failure; } + + if (nla_put_u8(skb, IFLA_GENEVE_UDP_CSUM, + !!(info->key.tun_flags & TUNNEL_CSUM)) || + nla_put_u8(skb, IFLA_GENEVE_UDP_ZERO_CSUM6_TX, + !(info->key.tun_flags & TUNNEL_CSUM)) || + nla_put_u8(skb, IFLA_GENEVE_UDP_ZERO_CSUM6_RX, + !geneve->use_udp6_rx_checksums)) + goto nla_put_failure; return 0; nla_put_failure: