From patchwork Thu Feb 15 18:12:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Elder X-Patchwork-Id: 136834 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 661C143B19; Thu, 15 Feb 2024 19:12:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D5971402AD; Thu, 15 Feb 2024 19:12:40 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2097.outbound.protection.outlook.com [40.107.13.97]) by mails.dpdk.org (Postfix) with ESMTP id DC3B940276 for ; Thu, 15 Feb 2024 19:12:38 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Quk/LCQZ64rI6Ni2wyOFDhw5+A2HIcI3qfpWANbc0TqHqhQh1YUiIsMWNXl0IunmH+dR9aKen9rjjDqSMnA3xfcgM6v2mSECudMsezcFRVjs2jKRcklXVkRsb7A3OOOYCVLr5wqT4sn+kdi+QbxKRY3UaJqdtoizDuojM0MYkeTZ6JqoeDCgPp7prsF/qYc7X0FA4/F6TkD7Mxxi11O+hJyFyPadL7YcJsZDoVh8GpOEcmHqtYNDedOLfwbaG3dVfzYv53dl7V8QXRLkEeMR4SEsQg253PyUjAA1HQCSSMd5Z5dI2gLnNqMXAilnMaKbiOJmZqsVB/ZVbzW9+T6FuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bmc+3xqyVT0YdigkIuhy+Kem0YK06Av6nneGrQi2iik=; b=LM9MoxTlgVPnataTToZ7Bj3k/608h6AFlX6LVpt9iFMByuO38rjZKT3b4kHgtGrSLfCXoB4N8D7NKzEtWqeEl4Xb+gB7PHnGFfEAm007qyId1jdxyBo0PvusRO17wGBXGl1fT6d44cgrwSXoyZo9BGDbr1I8AUXsH0xEy62G7lBCmh4ELnW21c+gW6Owh/ABH3HKCL5UsBWBlZcOoQ9RQJvfJhdikPw6MC0aQsgxdO08hz6/t+lPBk6Qgtpqf3wC9ZU0MTRHs+h9go9Fo8bBAWk2tMfdFNzswWmKaxScXOOVNPPHjjG+yvDE6r2CqH7UFuWB5YVVCTBS3RJgrKRF0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bmc+3xqyVT0YdigkIuhy+Kem0YK06Av6nneGrQi2iik=; b=IeOz01MfBoIDZZi6RQSdjTX6mrKVL43L/ISKDjbmhy1gd7sU5Eo29HVSqDALbw8NV7x0k0LwY/2O/9IxRF5y8w7xV93utBh3HvscUiuJnQsw//LEz3FI4LuL/LxE7uPv1+w0/RQWWMdpzzyYvNDLJrmKRaa92B5LzSrH8Qz9ZQ4= Received: from PA4PR83MB0526.EURPRD83.prod.outlook.com (2603:10a6:102:26b::17) by VI0PR83MB0624.EURPRD83.prod.outlook.com (2603:10a6:800:211::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.14; Thu, 15 Feb 2024 18:12:36 +0000 Received: from PA4PR83MB0526.EURPRD83.prod.outlook.com ([fe80::b55f:3890:59e4:b623]) by PA4PR83MB0526.EURPRD83.prod.outlook.com ([fe80::b55f:3890:59e4:b623%7]) with mapi id 15.20.7316.012; Thu, 15 Feb 2024 18:12:35 +0000 From: Alan Elder To: Ferruh Yigit , Long Li , Andrew Rybchenko CC: "dev@dpdk.org" , stephen Subject: [PATCH v5] net/netvsc: fix parsing of VLAN metadata Thread-Topic: [PATCH v5] net/netvsc: fix parsing of VLAN metadata Thread-Index: AQHaYDqN2jU67BtCW0uOIfYmxwGfQQ== Date: Thu, 15 Feb 2024 18:12:35 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=f4302bab-817a-4614-96e5-21c7bbac0c65; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2024-02-15T17:32:49Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PA4PR83MB0526:EE_|VI0PR83MB0624:EE_ x-ms-office365-filtering-correlation-id: ee2e0644-184b-46e5-3328-08dc2e51afe9 x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wqmVECcsdWm5wjDEm43+31B47F+PVZenKp7+khZm2DtjVXcF56BYUXEm2y+c5WnyM7xRNUrIZxiljDXdtAmcnFQKXujo7N6MGp2McP2YJ4ieoRV43TFfcsr+gU/1/nvCNNcWwa0KoScN199cIP65Rym2meTQmYqIvExyEUI1+B89HPDgksrwDG48piVtKmVK9zfLaT1lDOahAYqqaf1WiH2XmkFqrz/M+dh5mszKUfYdm4ZHBQbCpka3LF7ELUvKIaSLQh+lBaQ8V6UXZs/UTmutCHe+86UNpAkGkQOnUCElChHXT7XCCZb7zkICz6aeBogl1BSqLFYuIL54qjAH4xGsOFfQK2PP6S1eABakGcRny1T5HVYkwzJFYwYHldi2l7K3tTQuP0r54Jsv7HnszSclaIhvD/XsyNENA1j3P9xLCUKCA+wtCjH+S1jD/ns3auxwCtI8SG25nhjMD0kmgcpMChLsmoWLMihh1KOQOzkIuMl49ApEt1nNpESpbI2vCuWHHjtYfEQZbVE+9SZk1alS1AQhQGVyaZSY82NTwo5kljCKMKCqvuHwbtnjYruPAQV0QuFjq/f29XINxvlSgVEdj8UL0COmc3vc0hRCmZU0N6fAjj6sRiXdgtNUv/bJ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR83MB0526.EURPRD83.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(346002)(39860400002)(366004)(136003)(396003)(376002)(230922051799003)(64100799003)(186009)(1800799012)(451199024)(66556008)(44832011)(76116006)(66476007)(66946007)(4326008)(8990500004)(66446008)(2906002)(64756008)(41300700001)(5660300002)(8936002)(8676002)(52536014)(55016003)(82960400001)(82950400001)(86362001)(122000001)(33656002)(83380400001)(38070700009)(110136005)(54906003)(6506007)(7696005)(71200400001)(38100700002)(316002)(478600001)(10290500003)(9686003)(26005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?lgk1w4BJ5M6GqUs12elc4qcSzKLG?= =?utf-8?q?JLwknPwfzW8FtBU5WLh3oGqNAOB+wiesAC9G+GZKcxrfsFyIulyOpwJF05H3HZ4+x?= =?utf-8?q?IYwPGpcsvKgfdboD6B0p5F1EMglXQSEYBnH1tzvGezem42PW4pKU+VEj12KBP14ar?= =?utf-8?q?NUziv1UjyNgS6imdi86oqbtSHGnzKRk7eGUriT9he+CeJn5g40hUPU+c09SNA1k4P?= =?utf-8?q?YJnwtuCwCMncAM9/2ZoU1jl9Nf6iEAzhbJ1c5sdYyOxLvjeX7qKrc37QMFo6n9hYU?= =?utf-8?q?X8ib4F9KvjqvlSKgQW9Odzk7Hh52I+4b7fZza/xR500VvGKr9Dw1gqy1c7KAwwpiS?= =?utf-8?q?2uCLezqnJpSOTA3nVleQqaiVVOYVXKjnKVSnU4fCtBNlZpBEYzR7qmXWJHTxAFMvY?= =?utf-8?q?mDx7fgF/SoVDbnqpS62bqzsTMhCGMEl6ujhQ8ijhnwxIKttowjivpQbfa1kWrpXU9?= =?utf-8?q?P8t+/XjUoXzt6RvyUoEO9QyjrxptNcx77rGeOcdVnlbilG7hV4y6/YDJfdok1+o5a?= =?utf-8?q?WwbrkeeGDEDyvRXlucM1pLQB6QXsijdxIAnpw9QuWEo9q5fO4tsROiHRNWk4OwLfU?= =?utf-8?q?uboGBLGVDnhYjQW1/xzbZpzLcLhf4ShCHgXzTw7DTn9XQ/ggwOkKLtyR86lsBsVjK?= =?utf-8?q?UDDpSg15xAnoZDqmDrubuF54K2awaHSYUs03iFCZQPS5THuoIGSjUSfOM+F9pnilg?= =?utf-8?q?HZGyblP9/waLIeLji4nDnsKMEYuTIwAoffGl+yut9rCEpJ5jkArj2kmWM1hhS1gq7?= =?utf-8?q?O1jPOra96FxBdZNCdl9lDqDA6M0u5EjmUaKJqWK9XgnuvuQ0YEJ/lKscxuL4/UsJ/?= =?utf-8?q?b4U5Ut6pzgLgmTz3zCsWZSL3THFtvx3y4X+l3517Oz5umw7Dm0mo+zBRogJaLLYF/?= =?utf-8?q?A6OFJqD0l5O++drieuyigQ4dsn/PO56a2K0Z863ymGdgcKfctU5+4Pffve0jZRUcO?= =?utf-8?q?ge4qFQbkD5HLwgPjS9slYTbclCixhlrI+R+w4OMcrbNqkFmd9DESrfbPy5driTmf6?= =?utf-8?q?HZ2zwKM5NKJMcgxeeClss8tEO61JZb3j313B8Z1+Y5aVAgyxeLNf6sYIQFT7hyavJ?= =?utf-8?q?nkXeTEqyAHMn4xegZeV8Zidt0eTnm0xQ6mXoYFckYY2XB97VivEjVHkMOfy1mfVN6?= =?utf-8?q?jx2IJ4sWxg7KhNZKpdXCRuu1gtXX97AgVc0qA5LnLQJPa6/en+qzV8yrGmsCEZbEn?= =?utf-8?q?Ih/h+HeKXv/8Jg29b4WI3nkWN7iZWxznIBwo7oUgX4zzCcXCNzUqoYPkgv8bpV9ow?= =?utf-8?q?jZ6Lv21EaaqT4na2qjsgRw+5BcmCPM7gPydJIp1nuBkPZBWqMDfgUTJwcg8jf++pF?= =?utf-8?q?wYu7+cMCg6Um3u5r0dFF0FPe5QQ/5g/6b72Lwaq/2XUzuAdGyc19KhnpLbHh9luPw?= =?utf-8?q?and1KKltMV6jug0ebtYLfDEQ8kwCbWvc6R3yGaSlM2XRpsqZfJXlS2nAo1qZxyIlP?= =?utf-8?q?l4UcLHv9BBc24?= MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PA4PR83MB0526.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee2e0644-184b-46e5-3328-08dc2e51afe9 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2024 18:12:35.7925 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jkx0/RmLykjxhoeRWmSzpVH2ece1Loc9GWhW7KBaAOMP75dGFmaHPZbX17gamLpo2Q8UirAQyCE0XMRmUVOEsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR83MB0624 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The previous code incorrectly parsed the VLAN ID and priority. If the 16-bits of VLAN ID and priority/CFI on the wire was 0123456789ABCDEF the code parsed it as 456789ABCDEF3012. There were macros defined to handle this conversion but they were not used. Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device") Cc: sthemmin@microsoft.com Cc: stable@dpdk.org Signed-off-by: Alan Elder --- v5: * Move the VLAN parsing macros to rte_ether.h v4: * Make consistent with FreeBSD code --- .mailmap | 1 + drivers/net/netvsc/hn_rxtx.c | 8 ++++++-- lib/net/rte_ether.h | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) -- 2.25.1 diff --git a/.mailmap b/.mailmap index a0756974e2..eca02318d6 100644 --- a/.mailmap +++ b/.mailmap @@ -33,6 +33,7 @@ Alain Leon Alan Brady Alan Carew Alan Dewar +Alan Elder Alan Liu Alan Winkowski Alejandro Lucero diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index e4f5015aa3..9bf1ec5509 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -612,7 +612,9 @@ static void hn_rxpkt(struct hn_rx_queue *rxq, struct hn_rx_bufinfo *rxb, RTE_PTYPE_L4_MASK); if (info->vlan_info != HN_NDIS_VLAN_INFO_INVALID) { - m->vlan_tci = info->vlan_info; + m->vlan_tci = RTE_VLAN_TCI_MAKE(NDIS_VLAN_INFO_ID(info->vlan_info), + NDIS_VLAN_INFO_PRI(info->vlan_info), + NDIS_VLAN_INFO_CFI(info->vlan_info)); m->ol_flags |= RTE_MBUF_F_RX_VLAN_STRIPPED | RTE_MBUF_F_RX_VLAN; /* NDIS always strips tag, put it back if necessary */ @@ -1332,7 +1334,9 @@ static void hn_encap(struct rndis_packet_msg *pkt, if (m->ol_flags & RTE_MBUF_F_TX_VLAN) { pi_data = hn_rndis_pktinfo_append(pkt, NDIS_VLAN_INFO_SIZE, NDIS_PKTINFO_TYPE_VLAN); - *pi_data = m->vlan_tci; + *pi_data = NDIS_VLAN_INFO_MAKE(RTE_VLAN_TCI_ID(m->vlan_tci), + RTE_VLAN_TCI_PRI(m->vlan_tci), + RTE_VLAN_TCI_DEI(m->vlan_tci)); } if (m->ol_flags & RTE_MBUF_F_TX_TCP_SEG) { diff --git a/lib/net/rte_ether.h b/lib/net/rte_ether.h index ce073ea818..b27f38b3a9 100644 --- a/lib/net/rte_ether.h +++ b/lib/net/rte_ether.h @@ -46,6 +46,22 @@ extern "C" { #define RTE_ETHER_MIN_MTU 68 /**< Minimum MTU for IPv4 packets, see RFC 791. */ +/* VLAN header fields */ +#define RTE_VLAN_DEI_SHIFT 12 +#define RTE_VLAN_PRI_SHIFT 13 +#define RTE_VLAN_PRI_MASK 0xe000 /* Priority Code Point */ +#define RTE_VLAN_DEI_MASK 0x1000 /* Drop Eligible Indicator */ +#define RTE_VLAN_ID_MASK 0x0fff /* VLAN Identifier */ + +#define RTE_VLAN_TCI_ID(vlan_tci) ((vlan_tci) & RTE_VLAN_ID_MASK) +#define RTE_VLAN_TCI_PRI(vlan_tci) (((vlan_tci) & RTE_VLAN_PRI_MASK) >> \ + RTE_VLAN_PRI_SHIFT) +#define RTE_VLAN_TCI_DEI(vlan_tci) (((vlan_tci) & RTE_VLAN_DEI_MASK) >> \ + RTE_VLAN_DEI_SHIFT) +#define RTE_VLAN_TCI_MAKE(id, pri, dei) ((id) | \ + ((pri) << RTE_VLAN_PRI_SHIFT) | \ + ((dei) << RTE_VLAN_DEI_SHIFT)) + /** * Ethernet address: * A universally administered address is uniquely assigned to a device by its