Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp36174ybl; Thu, 22 Aug 2019 19:14:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqy/g0HAOorJGkN4/j1Tml1W0g2LQishqLZUzXupwSpuHqrzs2/60N3E07CRZjxjM1TrjHKc X-Received: by 2002:aa7:9907:: with SMTP id z7mr2381686pff.13.1566526479367; Thu, 22 Aug 2019 19:14:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566526479; cv=none; d=google.com; s=arc-20160816; b=REQC382n2ACQjx8cswPTUgPwatjUizzdShdumpEqTMn/J3Smk+LDxKqddX4RHq4gwP qNwGp/HHkgjYA+jCn3zQ4xShxJd9/uF684YkkBChRtXtBYCTlr3uSRAHYD5jGAeQLCvV Y+pdeFnQoajj2q9MRtw1v6/CcZ+B71qfrOZvMM8XL+35+SrylihWiIbi8obt4/Ldfy0N GCMiZS0MIBQNGlwyMmVhAz26OIUbBtATstdfjSFdyAzMlhqjHp/YKPDHUU/0Ca4PPyIb v2G4tYu/FDdWNI3neQdzzlzQQJxBuwj7rv+1UBfCkmYe4x2wThwXcsDrBZB/2QEhdt64 KmLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6fIvBgkS7c/DDofch+6K8Jvt9NMJ6XyR6vpiCLRki8k=; b=vuI03tmEEqdi5F7vqluBGmUD3+tDr6mcowz6AYL8o0gRuXkE5mDn2/FccuWExvqCzs G7ooD4YT42yuQ/mKO2bV5Q3Gnr4Y2ZFPTBPPg3CReGIt98QvbpM5JxFtiOoG5gNaIpGw pFdwIOy+hKf06IoS3KpwFU6RyUWIDwGN0GiPzSzmc+NHTODjRXnueXqcmqpod5u/CxCD Cxs6bC9q+5Do50TvTWZ2JCM8xkdL97xK9ETd2Dm2LPxBR13I8RvYINteyHKAyYbzmdcN 9VT4O62FjiCUkIFk/GWfk/t17pelVvbUAJdvDvvBnTUiiKgZ/ZYQfNu40/rjTJQ/IARo YT8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ThfHAbYN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t3si1092887pjq.95.2019.08.22.19.14.24; Thu, 22 Aug 2019 19:14:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ThfHAbYN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404858AbfHVR1l (ORCPT + 99 others); Thu, 22 Aug 2019 13:27:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:51346 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404643AbfHVR0L (ORCPT ); Thu, 22 Aug 2019 13:26:11 -0400 Received: from localhost (wsip-184-188-36-2.sd.sd.cox.net [184.188.36.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3057523400; Thu, 22 Aug 2019 17:26:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566494770; bh=7XQ9J0euC29pJ7X/Bgu7TFHLAcOWBqAHFO3NB5bCm28=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ThfHAbYN8LylXuVFBzoJRhAnM9Zbf1zT47pP6b9T5lWbvCUnaFDXldL5u2FK7jEyw FliCXaFjZuVld+pmyLKmZJPTbXkTEkEc8jyID4iyKl4kqCrzgjgwby+t8scwu/76hz HcrdrOJFVda6Q6586ubiJienQa9Au1cgPd+u5sxg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, YueHaibing , Jay Vosburgh , "David S. Miller" Subject: [PATCH 4.19 74/85] bonding: Add vlan tx offload to hw_enc_features Date: Thu, 22 Aug 2019 10:19:47 -0700 Message-Id: <20190822171734.344856622@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190822171731.012687054@linuxfoundation.org> References: <20190822171731.012687054@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: YueHaibing [ Upstream commit d595b03de2cb0bdf9bcdf35ff27840cc3a37158f ] As commit 30d8177e8ac7 ("bonding: Always enable vlan tx offload") said, we should always enable bonding's vlan tx offload, pass the vlan packets to the slave devices with vlan tci, let them to handle vlan implementation. Now if encapsulation protocols like VXLAN is used, skb->encapsulation may be set, then the packet is passed to vlan device which based on bonding device. However in netif_skb_features(), the check of hw_enc_features: if (skb->encapsulation) features &= dev->hw_enc_features; clears NETIF_F_HW_VLAN_CTAG_TX/NETIF_F_HW_VLAN_STAG_TX. This results in same issue in commit 30d8177e8ac7 like this: vlan_dev_hard_start_xmit -->dev_queue_xmit -->validate_xmit_skb -->netif_skb_features //NETIF_F_HW_VLAN_CTAG_TX is cleared -->validate_xmit_vlan -->__vlan_hwaccel_push_inside //skb->tci is cleared ... --> bond_start_xmit --> bond_xmit_hash //BOND_XMIT_POLICY_ENCAP34 --> __skb_flow_dissect // nhoff point to IP header --> case htons(ETH_P_8021Q) // skb_vlan_tag_present is false, so vlan = __skb_header_pointer(skb, nhoff, sizeof(_vlan), //vlan point to ip header wrongly Fixes: b2a103e6d0af ("bonding: convert to ndo_fix_features") Signed-off-by: YueHaibing Acked-by: Jay Vosburgh Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/bonding/bond_main.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1102,6 +1102,8 @@ static void bond_compute_features(struct done: bond_dev->vlan_features = vlan_features; bond_dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL | + NETIF_F_HW_VLAN_CTAG_TX | + NETIF_F_HW_VLAN_STAG_TX | NETIF_F_GSO_UDP_L4; bond_dev->gso_max_segs = gso_max_segs; netif_set_gso_max_size(bond_dev, gso_max_size);