From patchwork Fri Jul 6 05:38:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianbo Liu X-Patchwork-Id: 940273 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=fail (p=none dis=none) header.from=mellanox.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41MNp72GbWz9s47 for ; Fri, 6 Jul 2018 15:39:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932630AbeGFFjY (ORCPT ); Fri, 6 Jul 2018 01:39:24 -0400 Received: from mail-il-dmz.mellanox.com ([193.47.165.129]:42501 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932573AbeGFFjX (ORCPT ); Fri, 6 Jul 2018 01:39:23 -0400 Received: from Internal Mail-Server by MTLPINE1 (envelope-from jianbol@mellanox.com) with ESMTPS (AES256-SHA encrypted); 6 Jul 2018 08:42:13 +0300 Received: from r-vrt-24-1.mtr.labs.mlnx. (r-vrt-24-1.mtr.labs.mlnx [10.213.24.1]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id w665d81f027687; Fri, 6 Jul 2018 08:39:21 +0300 From: Jianbo Liu To: netdev@vger.kernel.org, davem@davemloft.net, jiri@resnulli.us Cc: Jianbo Liu , Jiri Pirko , Simon Horman , Andrew Lunn , Tom Herbert , John Crispin , Paolo Abeni , Sven Eckelmann , WANG Cong , David Ahern , Jon Maloy Subject: [PATCH v2 net-next 1/5] net/flow_dissector: Save vlan ethertype from headers Date: Fri, 6 Jul 2018 05:38:12 +0000 Message-Id: <20180706053817.17712-2-jianbol@mellanox.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180706053817.17712-1-jianbol@mellanox.com> References: <20180706053817.17712-1-jianbol@mellanox.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Change vlan dissector key to save vlan tpid to support both 802.1Q and 802.1AD ethertype. Signed-off-by: Jianbo Liu Acked-by: Jiri Pirko --- include/net/flow_dissector.h | 2 +- net/core/flow_dissector.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index adc24df5..8f89968 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -47,7 +47,7 @@ struct flow_dissector_key_tags { struct flow_dissector_key_vlan { u16 vlan_id:12, vlan_priority:3; - u16 padding; + __be16 vlan_tpid; }; struct flow_dissector_key_mpls { diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 53f96e4..18cb99b 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -751,6 +751,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb, const struct vlan_hdr *vlan; struct vlan_hdr _vlan; bool vlan_tag_present = skb && skb_vlan_tag_present(skb); + __be16 saved_vlan_tpid = proto; if (vlan_tag_present) proto = skb->protocol; @@ -789,6 +790,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb, (ntohs(vlan->h_vlan_TCI) & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT; } + key_vlan->vlan_tpid = saved_vlan_tpid; } fdret = FLOW_DISSECT_RET_PROTO_AGAIN;