From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 9D1781B430; Sat, 7 Jul 2018 18:13:05 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 7B73CB8005F; Sat, 7 Jul 2018 16:13:04 +0000 (UTC) Received: from [192.168.1.16] (85.187.13.33) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1044.25; Sat, 7 Jul 2018 17:12:59 +0100 To: Adrien Mazarguil , Andrew Rybchenko CC: , References: <1530285811-2907-1-git-send-email-arybchenko@solarflare.com> <20180705111449.GL4025@6wind.com> <20180705192355.GQ4025@6wind.com> From: Andrew Rybchenko Message-ID: Date: Sat, 7 Jul 2018 19:12:43 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180705192355.GQ4025@6wind.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [85.187.13.33] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.100.1062-23952.003 X-TM-AS-Result: No--17.747900-0.000000-31 X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-MDID: 1530979985-I4bH5icvHn7s Subject: Re: [dpdk-dev] [PATCH] net/sfc: cut non VLAN ID bits from TCI X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jul 2018 16:13:05 -0000 On 05.07.2018 22:23, Adrien Mazarguil wrote: > On Thu, Jul 05, 2018 at 01:14:49PM +0200, Adrien Mazarguil wrote: >> On Fri, Jun 29, 2018 at 04:23:31PM +0100, Andrew Rybchenko wrote: >>> TCI may contain PCP or DEI bits. Matching of these bits is not >>> supported, but the bits still may be set in specification value and >>> not covered by mask. So, these bits should be ignored. >>> >>> Fixes: 894080975e1e ("net/sfc: support VLAN in flow API filters") >>> Cc: stable@dpdk.org >>> >>> Signed-off-by: Andrew Rybchenko >>> Reviewed-by: Roman Zhukov >>> >>> --- >>> drivers/net/sfc/sfc_flow.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c >>> index 5613d59a9..18387415e 100644 >>> --- a/drivers/net/sfc/sfc_flow.c >>> +++ b/drivers/net/sfc/sfc_flow.c >>> @@ -371,7 +371,8 @@ sfc_flow_parse_vlan(const struct rte_flow_item *item, >>> * the outer tag and the next matches the inner tag. >>> */ >>> if (mask->tci == supp_mask.tci) { >>> - vid = rte_bswap16(spec->tci); >>> + /* Apply mask to keep VID only */ >>> + vid = rte_bswap16(spec->tci & mask->tci); >>> >>> if (!(efx_spec->efs_match_flags & >>> EFX_FILTER_MATCH_OUTER_VID)) { >> I think there is an issue with this patch when spec->mask is user-provided, >> PMDs have to trust it. They must not simply ignore bits they cannot handle >> but explicitly reject the flow rule for correctness. >> >> Most devices cannot match PCP and DEI, this is why the default TCI mask was >> modified in v18.05 by commit 0730ab674cb1 ("ethdev: fix default VLAN TCI >> mask in flow API") to cover the VID part only. >> >> I wrote a helper for mlx5 to help with such basic sanity checks on pattern >> items in a generic(ish) fashion, maybe you could reuse something. Have a >> look at mlx5_nl_flow_item_mask() [1]. >> >> [1] "net/mlx5: add L2-L4 pattern items to switch flow rules" >> https://mails.dpdk.org/archives/dev/2018-June/105579.html > Seems like I misread the original patch and PMD code, both are in fact > correct. > > Please ignore my previous comment, sorry for the noise! No problem. Many thanks for reviewing it. Andrew.