From patchwork Fri Feb 16 09:43:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Elder X-Patchwork-Id: 136843 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 8D0F743B2A; Fri, 16 Feb 2024 10:43:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1D3BF40A6F; Fri, 16 Feb 2024 10:43:06 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2094.outbound.protection.outlook.com [40.107.20.94]) by mails.dpdk.org (Postfix) with ESMTP id D9A2F4064A for ; Fri, 16 Feb 2024 10:43:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FguzTwW7eeh4k+CabmIJmZkHplr9WSvjmPwPl2tPA8uBPvbH75oMMiUTZ+vnn9wzE7eW44cUsaqYIds0Wm/16kziF62pl431ca4zO7aPu3NeGUtz4L+6+g2Ry70NvnoLX6HkXE9iXv9XsuHzolL8qWxhmerPMpz1tmQvzTCm6Wj1+y+95yn2qhLBkrwJxjNH4lz0ELeLXM1hjMX7NKiQsS5Q5a9frQzq4pUKNE0mA/3UPav0B8z4aUiEWvyMAyyzVF0UIOc0cuTdUitgpOFns2/0HGOPZxFjaWiTWM77moVv02Tq7duJDyPPlwmeU0vAORy5L8cJ/qtd8ej7ElVLuA== 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=2s/hoDJEa6HX+9WLuLz5j+khm/2CSMGCrdcfOh2vMoQ=; b=cRi6kNYxXfUJfhpe572cSbGZpx0ExJ1A8xObKTg3GTGlp3lhnLG7Xq7BorFjej67dZ7IfJeVayim0yQXH7kjYH2eAHPEMonwRW7GCdkGUDN1/1Eey6hAUkq/YX+4KG+xzudNNj3TOtE4OcS6MMt0tb9p65W6pc3dK7QoI4ePEjLuUZHrzUvyG6n4SisVwKZAfiZX1zEbWOjvn9bSqNuBcbEr0ODpJR8LO28NrscULnwscMr5bE9WBGxscczrviGOqtqKdLKZdsLFW2lHweSftM1irtrgkGRhE7smzFs3kuy9ZrxvCwX6yd5zKEY/agedxHFn/9TbWGC561VhLXE+eQ== 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=2s/hoDJEa6HX+9WLuLz5j+khm/2CSMGCrdcfOh2vMoQ=; b=UAXiYNTII3cS7nGmBD9HKndohcVtHr7j/z+05Q1KC6LPl1w8wiWfAbD3Azzc2OUr/OWbzBBHRD+Shf1GM6syxCtqaO+CRQjdt41IGmWuE21aQjNLaOV3V9PZjIXXQ7WWQniGnFhJXXdcBBkkVkGL69vMzMXbfqpossWuOwlrtRE= Received: from PA4PR83MB0526.EURPRD83.prod.outlook.com (2603:10a6:102:26b::17) by VI1PR83MB0414.EURPRD83.prod.outlook.com (2603:10a6:800:192::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.11; Fri, 16 Feb 2024 09:43:00 +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; Fri, 16 Feb 2024 09:43:00 +0000 From: Alan Elder To: Alan Elder , Ferruh Yigit , Long Li , Andrew Rybchenko CC: "dev@dpdk.org" , stephen Subject: [PATCH v6] net/netvsc: fix parsing of VLAN metadata Thread-Topic: [PATCH v6] net/netvsc: fix parsing of VLAN metadata Thread-Index: AQHaYLyHbjahO9nhRUal/z3QqM8oUg== Date: Fri, 16 Feb 2024 09:43:00 +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_|VI1PR83MB0414:EE_ x-ms-office365-filtering-correlation-id: 4105a105-bd91-4bb1-28da-08dc2ed3aa06 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: WU3jhiPhlrag7oHwm+fWPF1Rm6v/KgebZfIuIjqjGMTwTPVs/m5WPZZl/atBUACy5iUFhBjxjdbxAUW3rsa+Y9en7GxuE+uChYlHFxpBI0DjMrfiNGoATK6dIZIYCRlyKnU+J/mEUkXeE1OImueR/yUWRt2If7WLwSGVh2gD7UDQLtYw08w/2h5ll9wYPC2V00mIBgXE75iLHUUpyMnqjkmAH6RW/wNchKMHereD0gu1UkBF3+JTMQgH/TA4uBF5JbBXCKER0rGrYU/jqDn+prkMoCfhGZd2j44LLf4/B3NducArTlAm2P3MfIG+qynlXeW02YiK+jNLQq0DV99TA4Zk1koBcMraSxY2TCoqI5vfzYoyCf+7ZV8WKYBWo8LwpqPGoVjLUIWA/pUDkBllSYtdEmDooHXMoRK6cKHKC5Z4nfWx+auNR28LB8fcgZGoZuZ79QPBos/+RmYoab7ZccyyNAYM61RysTB+GAH2rYTauVTHsF2XDnkXVLfz36CZmphwxQ5VFncdgz2mqYZEFOh98JbL+bv8k1vEX2QIgMRRGqYHxkGQvgmfwPUsQ9zRv7puyv4MuCQGS+l6w+wPRfLKHZ9aPsMz2LxVzqLS0i1zMoZgaLRcOLUAZcFe2bRv 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)(136003)(346002)(39860400002)(376002)(366004)(396003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(82950400001)(122000001)(82960400001)(38100700002)(66946007)(8676002)(4326008)(66446008)(5660300002)(52536014)(66476007)(76116006)(8936002)(64756008)(44832011)(8990500004)(83380400001)(2906002)(6506007)(478600001)(7696005)(10290500003)(9686003)(41300700001)(110136005)(54906003)(71200400001)(38070700009)(316002)(33656002)(66556008)(86362001)(55016003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?9ImQC/k0I/D3Ptb2k+Gr+JBRIFko?= =?utf-8?q?WTMkeaWqitel1lIkWnm9H5I9Vw4j5YL22GjkGZ9pEb7C0v1N8o1ojeG/NlcJclI+J?= =?utf-8?q?bX/KSkN4xduxaq3+0w4HeZp0Wnr5dHET+fY5o3DymeavIMQ3+2qHIM0VnxcF65Jec?= =?utf-8?q?/fqN9/Yo5D2KJt0Wjo8DmDZIfRwLokz9XW1AIbZ/+J/A5jSas6ydLNCbymgdOpWps?= =?utf-8?q?yUUTjfEEtVDUs205ggXsMRPPBA1o9IdoL9yRzC7BGDpExsWAsNGL3pU0CDcGesLle?= =?utf-8?q?qZMeHKgHboUt6wGCjgjYOA4nYygcB9HqNP+Es28HNwUU5hlDos/7UXyelZfVxSVB8?= =?utf-8?q?WtQYjPuO+o4DhMTHZsybc/8Ta/fWVjT5mmAQg+k4q9kFQNFjfABhOn/wdfzOAGSyi?= =?utf-8?q?cGI3kAN3rleshS/z2HiGufMCIGpCEBe+vbd0b3/3QOOYXj/HvQXnWiS4fDuGmMG9o?= =?utf-8?q?yVEEf0htnha8IeCEor+TD2/ASqZRjQ/ibE0okodVYVoni4HV/teaE2KBTinvcWKAF?= =?utf-8?q?3lSfEpB+qlerTxcfPcVd8Uj8XK903G81ZwEJdx4c+5IjkkD8hWenDMRUuWmLQ/RoI?= =?utf-8?q?4blOA1zxn93J3Gwk8bWXQPXqKj36jRqRjj9fLYlAkQAb7+w3RmOnVmzz9hXYYA7/P?= =?utf-8?q?nadJXUF2K1zHk48KQo8HjikM8ZbWvsyTlAy4XYVoRgky2Xj+kZTnTqcjxvlCjMQiP?= =?utf-8?q?nfOm2YwKeVevvvS8FRJF9/2b7LHmPzEQZ0y4E2IturbrmOrnqUxo+ZO5jtO/o0nZx?= =?utf-8?q?E96NuHsO6HeovmAigORZ8StScaqXdw9m/Lr8TGsowSRXmeXsfOrkYOm2cIGgttyGW?= =?utf-8?q?r9wp2t4kehvOpbushCkRpBVwT68mOwpFsumOrjQgn+N/9/Iyd6PZnndpll7Rl5ocB?= =?utf-8?q?bhVLE4rQAwYSdOqKAy7KW6Rg6f0PJLEUm+c2QoFcuJTFOrmD9SmPov9U5tWjkfP90?= =?utf-8?q?7j1BYHWsrOA0ZSk75VdqOuWGm9TFgwiNOoW5zFX0EA79Q3TEswKEThJWMfVTYAA73?= =?utf-8?q?vkiJzvuub8rVWhaYLG8g7CIz1hMzQJ6CU/oa0/pUhjb4f0lJSN1VLdMqCQ7fjtgle?= =?utf-8?q?WMKSnm4AQ03IWrdIL8JhP92J//ZB7lnkwPINasRIYSLnE1LN+JD802a+/H4NGpMb7?= =?utf-8?q?rOdHLZJEK5dsRL3osbqKSowSNPV97vVacUANCHShjWRFtJDDuSMzbiKdBHbYC3swJ?= =?utf-8?q?q5NfVPIAJgWpaAKQWucd96nVyldn8j4ZUoGkrdmoPVd7DRFR3OHzwvBJEc4rlHJFT?= =?utf-8?q?ZpEmGbzXUW1e7HXWZ0eYizG8veCgUOi8Wr+yk4jL8jPQzJNCvbYyDkwD+yQaslCWW?= =?utf-8?q?pgWQySfhcF5/JA5PNKfhgXhC3YFYYlFYUJm4WrClNe+ldtXXpSppk2v9LU7fvhJJq?= =?utf-8?q?ssXJL0Ra4mNSYBlhsKjrE1oQWAF3qPr/hqfTR0RVFhM2O9WF1wgbBOoy7QV898p5O?= =?utf-8?q?I0LehDjuAAixaSc2h+zvYlZMa5p3Qxl2vmSdERtlFMrNTHJAaguElA1H0x/2Axfmg?= =?utf-8?q?YEFCeHXz89ns?= 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: 4105a105-bd91-4bb1-28da-08dc2ed3aa06 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2024 09:43:00.5071 (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: Zp5s56Cot7HW1Ea6p32yFXTpPWRRdHFEA5WEMm+P3b6BLasnDPiDAkVLxiVDf8AqOF1K7kB5qlvMlOTnux6tow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR83MB0414 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 --- V6: * Line length can be 100 - un-split lines 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 | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) -- 2.25.1 diff --git a/.mailmap b/.mailmap index de339562f4..08fce0c472 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..75285bdd12 100644 --- a/lib/net/rte_ether.h +++ b/lib/net/rte_ether.h @@ -46,6 +46,20 @@ 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