get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/136534/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 136534,
    "url": "http://patchwork.dpdk.org/api/patches/136534/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/PA4PR83MB0526398D23186AB50C38D0EF97442@PA4PR83MB0526.EURPRD83.prod.outlook.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<PA4PR83MB0526398D23186AB50C38D0EF97442@PA4PR83MB0526.EURPRD83.prod.outlook.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/PA4PR83MB0526398D23186AB50C38D0EF97442@PA4PR83MB0526.EURPRD83.prod.outlook.com",
    "date": "2024-02-08T14:12:38",
    "name": "net/netvsc: fix parsing of VLAN metadata",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a77414d2426291e6c101e48457944544343f47d1",
    "submitter": {
        "id": 3272,
        "url": "http://patchwork.dpdk.org/api/people/3272/?format=api",
        "name": "Alan Elder",
        "email": "alan.elder@microsoft.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/PA4PR83MB0526398D23186AB50C38D0EF97442@PA4PR83MB0526.EURPRD83.prod.outlook.com/mbox/",
    "series": [
        {
            "id": 31051,
            "url": "http://patchwork.dpdk.org/api/series/31051/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=31051",
            "date": "2024-02-08T14:12:38",
            "name": "net/netvsc: fix parsing of VLAN metadata",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/31051/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/136534/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/136534/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id AE08943ADF;\n\tThu,  8 Feb 2024 15:15:34 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 3C31B4028B;\n\tThu,  8 Feb 2024 15:15:34 +0100 (CET)",
            "from EUR02-VI1-obe.outbound.protection.outlook.com\n (mail-vi1eur02on2105.outbound.protection.outlook.com [40.107.241.105])\n by mails.dpdk.org (Postfix) with ESMTP id 18D2A40278\n for <dev@dpdk.org>; Thu,  8 Feb 2024 15:12:42 +0100 (CET)",
            "from PA4PR83MB0526.EURPRD83.prod.outlook.com (2603:10a6:102:26b::17)\n by AS1PR83MB0513.EURPRD83.prod.outlook.com (2603:10a6:20b:480::6)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.8; Thu, 8 Feb\n 2024 14:12:38 +0000",
            "from PA4PR83MB0526.EURPRD83.prod.outlook.com\n ([fe80::b55f:3890:59e4:b623]) by PA4PR83MB0526.EURPRD83.prod.outlook.com\n ([fe80::b55f:3890:59e4:b623%7]) with mapi id 15.20.7292.009; Thu, 8 Feb 2024\n 14:12:38 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=ROeH3Edb/nKCY1s92EPoTjAHXYl+TUMp40DU9+/ZzpR+r7krylPlDYKFZiVJcTENwviapL9+/hcU45tncQnWqnBmkYYtvF/21M3voEa0kpdZtzNWqlHkrEOcvjre2dg2sep2BbeLO/NrW3+GwCGmlkuIXd0xBcY3f1cJAB+Xn0UoMJCP0JKEIjCikQi5MPvnN+jn7kfxxB6HrLnZC7qduMrwQLPV8ykYtuurFLW7qMexw3GJP4nkWmgQYI+uO4DxApKQuzUyoQrPPo7QsdHUkJ7+eM9gJlhgEVGs/A2SGwLckV346M1unldOyP9eb2gJKhFyCatC7/O/ZN47p8NMDg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=uj7QJP6xHkeh9SDMCefaAR1JTzBoT/IyCd9i9y8bUiY=;\n b=deU2EebXElA4ZN/b8Qt7gBGqmDI8HNT6XbAxaTP/UpHXdDal5NyBDiOVQDnppc+/rOhcDoqbux5NIvYJ1hw2Gfka48SJRdm4+khK341oZV30qPR/SydCZSk7xCjM+TzNTO8qOZkotUGoTfo4FHpavCy25cCuluPpLErDzfC446ZktG3lOVFKrxPIs+c/3o2VREhCdrrImk7QQ688eYMmDjKfTIdRKaptlNcJ2DnpAWypdKyYyoae4kddf8L1sNKQlZbq+XYp8MQn0MfK3ecqOYQM4UMtA0g8kiB2w1Tet90CwHPWsKGXAx9boBc0kHRFBEMN7MsjShfDkcIBP2bZ0Q==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=microsoft.com; dmarc=pass action=none\n 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;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=uj7QJP6xHkeh9SDMCefaAR1JTzBoT/IyCd9i9y8bUiY=;\n b=TMG4WZQZ5PNkZZ8Wi5IyxOFLiP1xKY27T33j+BCuv6JeMzwZavBDM95BbY9iWMgx1r4RERbxQV+hyGuyjlRohQ7vcmuTrSeOgjqgR9OQP3ivlih/2ucCLImV61d0OW7o/FL7UBkxsNvwcvezAQAfvhhEk+ZmMg/jITIBiEcGRmw=",
        "From": "Alan Elder <alan.elder@microsoft.com>",
        "To": "Long Li <longli@microsoft.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>",
        "Subject": "[PATCH] net/netvsc: fix parsing of VLAN metadata",
        "Thread-Topic": "[PATCH] net/netvsc: fix parsing of VLAN metadata",
        "Thread-Index": "Adpal+z56Y2peScmQ0G2ljcsz/E8Dg==",
        "Date": "Thu, 8 Feb 2024 14:12:38 +0000",
        "Message-ID": "\n <PA4PR83MB0526398D23186AB50C38D0EF97442@PA4PR83MB0526.EURPRD83.prod.outlook.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "msip_labels": "\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=eac44bd7-4986-4a28-b743-886125979211;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2024-02-08T13:54:50Z;\n MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;",
        "authentication-results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=microsoft.com;",
        "x-ms-publictraffictype": "Email",
        "x-ms-traffictypediagnostic": "PA4PR83MB0526:EE_|AS1PR83MB0513:EE_",
        "x-ms-office365-filtering-correlation-id": "08a60452-3966-40b9-9366-08dc28b00188",
        "x-ms-exchange-senderadcheck": "1",
        "x-ms-exchange-antispam-relay": "0",
        "x-microsoft-antispam": "BCL:0;",
        "x-microsoft-antispam-message-info": "\n TcZ2uoB8Wp0UH5uXI3KrxpLeo09R/9uKt6//Z3X9nPF55atd6M3imwYdM1tWrsy0rAMHIWuKB0kQZ6+ow596ePl2uj2HRcnWUuJlrfk9t8AGMzcKKy+YxxS56YZpoY5kBrseg97sQLzG6OvVG6qX08nC2XL/LACuCyfxecNCMURKcAsnrocHHDfGPU2dUCzDrlj+MRDnMdSAIJGVMydh+tDCFflpUqcIEoxejIZMQS6LpMtQ3GrhozkULsg8VL3tNqyNdGDjXKQsPBWBH6bZfw5whr23NbfyY047tyU9cSWANgPjimCZK7GZ/yFhRmID/uaLTH9oOdnI0341pCTOyxCvCrQNCaBxYPVXIAQ8eSFlR+Tz1kYen+lurdWTyi5BNfKGQy5s6l1mcF5DMq+YWEhAT50rFdFbwd9NiFtHpdcep8O8DGmRj49KENuxMZEf9+GAkHhD7pPtRjbAy6KyvlLhs/sE0zj+wqmRHIiRw+TWWXAh4HnAmuvdg0YdFpW7kccenDLwFbIJMtRBibce74GB2iEbLjnvmdQxW6zGpujU149EZ0KAz/UEJNFCDFOtEZgUKdln4aDkbj2ntJWJglGWQolvYku7kNWfY3DQL7CiPm1b+G/v9XScv56j4pNm",
        "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PA4PR83MB0526.EURPRD83.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(376002)(366004)(396003)(346002)(136003)(39860400002)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(5660300002)(2906002)(44832011)(52536014)(55016003)(83380400001)(41300700001)(86362001)(122000001)(38100700002)(26005)(8990500004)(9686003)(82960400001)(7696005)(64756008)(6506007)(6862004)(10290500003)(71200400001)(66446008)(8936002)(478600001)(8676002)(66946007)(76116006)(33656002)(66476007)(66556008)(82950400001)(38070700009)(6636002)(4326008)(316002);\n DIR:OUT; SFP:1102;",
        "x-ms-exchange-antispam-messagedata-chunkcount": "1",
        "x-ms-exchange-antispam-messagedata-0": "\n t8NVzgtZCNnwN+C6xk0nDXTAfMbJ+NtTTvOzPfec2cObEJuJLmS7VXKzRLvPun54VxdSeDLFpfUXLx8X+fCSybXqlPmvFx5Imx9rR71fwl+xDVuNnZRRBapiIeLl6nLJyCd2qbKFaXZVKVzF/l2Mb+Z9/7GjPGOfWMISiE2eCZQjX1QcevrXcEM++41F3YT7QFToJ3sipTSok5jPd092AIzgIbgfvUhPV3y5fQmd/dB/O3d012S61qILWpOamICPSS6y2UWtxa6RT0X4e1EJaw8TxY7vFBNORjsHsjSOQTZCSDP8hIjxAP3JZsH9NVo8Pw1Ue0uqlaDAB6wHKNHiZ5hWiCplMszilSYKdOwX2DdDWMQis9NKuph3zILc6ir9yPVQp7eHrlxDVTuBnVUSEYV3eYyQvjnZ37xgxmsGmAFv8gIwoOXkkEcPTBg8/tfzUUf5Xun+j0YDPhXxUvaFcaxM9r53mU7GsCWAHcis4fuPYScKLZizpOfICeQtWv+eRKdozKG39rAmNxQ6UBrb1d5ktcCaV+O0AyDEfjaLE0qFhVoh5l5TyUn6v5QFaLie6RdOvh0/g5sbLUDdE9pg3Fj+qRo4oWelYDQTT2McTLPS1lFmXLdS6qo34FkR0k8G5HvZ24jmzojihnkLle6/W9GCdScfnMj6bL8AG5szGbPlp5EkldWHnRU8YRQhb7k24cak67YkJr+9mY9KIK6U2zrS6cjhh5gwo/UM27QOBrnWHuRKC43hEo0jzOjgNTkGp4RXVevJvzip8LIib0Y4IftWJVMSljwTurtoGF0Zgb4pFaYtVBLTqOu15ucHA+45TscOjQaDeAlytWaU/8rsu2pEclgsL+OBLu3BfLNrA60ekruFKKGn0yVyCAd6E2mmRqQGb/2gR7Su2Ubnn3Fm8mIzqmWbSKBTM2yV50LqptVp04xTlz4tApln35Wsf62rnB9Uj77NtU0r+Y/qc27AQeyvjjz82ptUKku1/lWlDtKN8cpHML3nAu7+EU314ga978OvVOxI/ukdFc3cqndSHOmAGwo5/CIyuAG4WeYekKK1gGZDuQmyNosOoyfGDxqvsr25lP7mRPECAkq2KjSlqPuTYyUsrX8NEdS2C1LxcqiYwjpb/P7YzsjsL19vo5igr/Vg5l1DNLYQYkPeZoan1AV04w8cXyqbqb58A5vby/A2REOnIqIB3d2dNYDJof2ecT2VQ1KyPIIEKbK4mtWVnGpmUFuCFkGv6zlRnKjQ2+MnzWCxgpvBmrSLgmjcxxPLxqL1552GeRkx9LcetdrRT7CA5XA418wNvAhvAp/tw/x6AV2UCAuF0gy2dQyOJ4NT/tqXbkOT7Da9PBn5QgLmepZcHwqBCUekrDOkFTP2Rkc9txshuRyiEIkQEupwfWQuE/Ry+NlNj8uALevGFE3DNH9nAe1V6oADcosGEhYO+JnF6bi/Elapb2QsQjNikWYs6WuUgpwUS4FKU9aWXXsBtUFBkIZ+pVESgcZNfei9d6IwuK3+zNlmXjKjmoY8Iy+S",
        "Content-Type": "multipart/alternative;\n boundary=\"_000_PA4PR83MB0526398D23186AB50C38D0EF97442PA4PR83MB0526EURP_\"",
        "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": "\n 08a60452-3966-40b9-9366-08dc28b00188",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "08 Feb 2024 14:12:38.4543 (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": "\n BAtRxsl48pjBxYyMXLAqkIEg/oJML4q0u7K+xu+sP9xH9O9Sr4DM9iwRYxw3hg4ds8h2MKBhsvpSd6q/LSjzaQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AS1PR83MB0513",
        "X-Mailman-Approved-At": "Thu, 08 Feb 2024 15:15:32 +0100",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The previous code incorrectly parsed the VLAN ID and priority.\nIf the 16-bits of VLAN ID and priority/CFI on the wire was\n0123456789ABCDEF the code parsed it as 456789ABCDEF3012.  There\nwere macros defined to handle this conversion but they were not\nused.\n\nThis fix takes an approach similar to the Linux netvsc driver and\ndefines an explicit structure to use for parsing.\n\nFixes: 4e9c73e96e83 (\"net/netvsc: add Hyper-V network device\")\nCc: sthemmin@microsoft.com<mailto:sthemmin@microsoft.com>\nCc: stable@dpdk.org<mailto:stable@dpdk.org>\n\nSigned-off-by: Alan Elder alan.elder@microsoft.com<mailto:alan.elder@microsoft.com>\n---\n .mailmap                     |  1 +\n drivers/net/netvsc/hn_rxtx.c | 23 +++++++++++++++++------\n drivers/net/netvsc/ndis.h    | 23 +++++++++++++----------\n 3 files changed, 31 insertions(+), 16 deletions(-)\n\n--\n2.25.1",
    "diff": "diff --git a/.mailmap b/.mailmap\nindex 864d33ee46..0fde0fa509 100644\n--- a/.mailmap\n+++ b/.mailmap\n@@ -32,6 +32,7 @@ Akihiko Odaki akihiko.odaki@daynix.com<mailto:akihiko.odaki@daynix.com>\n Alain Leon xerebz@gmail.com<mailto:xerebz@gmail.com>\n Alan Carew alan.carew@intel.com<mailto:alan.carew@intel.com>\n Alan Dewar alan.dewar@att.com<mailto:alan.dewar@att.com> adewar@brocade.com<mailto:adewar@brocade.com>\n+Alan Elder alan.elder@microsoft.com<mailto:alan.elder@microsoft.com>\n Alan Liu zaoxingliu@gmail.com<mailto:zaoxingliu@gmail.com>\n Alan Winkowski walan@marvell.com<mailto:walan@marvell.com>\n Alejandro Lucero alejandro.lucero@netronome.com<mailto:alejandro.lucero@netronome.com>\ndiff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c\nindex bc6f60c64a..949780abd5 100644\n--- a/drivers/net/netvsc/hn_rxtx.c\n+++ b/drivers/net/netvsc/hn_rxtx.c\n@@ -42,8 +42,13 @@\n #define HN_TXD_CACHE_SIZE  32 /* per cpu tx_descriptor pool cache */\n #define HN_RXQ_EVENT_DEFAULT   2048\n\n+#define HN_VLAN_PRIO_MASK  0xe000 /* Priority Code Point */\n+#define HN_VLAN_PRIO_SHIFT 13\n+#define HN_VLAN_CFI_MASK   0x1000 /* Canonical Format Indicator / Drop Eligible Indicator */\n+#define HN_VLAN_VID_MASK   0x0fff /* VLAN Identifier */\n+\n struct hn_rxinfo {\n-   uint32_t    vlan_info;\n+   struct ndis_pkt_vlan_info vlan_info;\n    uint32_t    csum_info;\n    uint32_t    hash_info;\n    uint32_t    hash_value;\n@@ -477,7 +482,7 @@ hn_rndis_rxinfo(const void *info_data, unsigned int info_dlen,\n        case NDIS_PKTINFO_TYPE_VLAN:\n            if (unlikely(dlen < NDIS_VLAN_INFO_SIZE))\n                return -EINVAL;\n-           info->vlan_info = *((const uint32_t *)data);\n+           info->vlan_info = *((const struct ndis_pkt_vlan_info *)data);\n            mask |= HN_RXINFO_VLAN;\n            break;\n\n@@ -611,8 +616,10 @@ static void hn_rxpkt(struct hn_rx_queue *rxq, struct hn_rx_bufinfo *rxb,\n                       RTE_PTYPE_L3_MASK |\n                       RTE_PTYPE_L4_MASK);\n\n-   if (info->vlan_info != HN_NDIS_VLAN_INFO_INVALID) {\n-       m->vlan_tci = info->vlan_info;\n+   if (info->vlan_info.value != HN_NDIS_VLAN_INFO_INVALID) {\n+       m->vlan_tci = info->vlan_info.vlanid |\n+               (info->vlan_info.pri << HN_VLAN_PRIO_SHIFT) |\n+               (info->vlan_info.cfi ? HN_VLAN_CFI_MASK : 0);\n        m->ol_flags |= RTE_MBUF_F_RX_VLAN_STRIPPED | RTE_MBUF_F_RX_VLAN;\n\n        /* NDIS always strips tag, put it back if necessary */\n@@ -669,7 +676,7 @@ static void hn_rndis_rx_data(struct hn_rx_queue *rxq,\n    unsigned int pktinfo_off, pktinfo_len;\n    const struct rndis_packet_msg *pkt = data;\n    struct hn_rxinfo info = {\n-       .vlan_info = HN_NDIS_VLAN_INFO_INVALID,\n+       .vlan_info.value = HN_NDIS_VLAN_INFO_INVALID,\n        .csum_info = HN_NDIS_RXCSUM_INFO_INVALID,\n        .hash_info = HN_NDIS_HASH_INFO_INVALID,\n    };\n@@ -1332,7 +1339,11 @@ static void hn_encap(struct rndis_packet_msg *pkt,\n    if (m->ol_flags & RTE_MBUF_F_TX_VLAN) {\n        pi_data = hn_rndis_pktinfo_append(pkt, NDIS_VLAN_INFO_SIZE,\n                          NDIS_PKTINFO_TYPE_VLAN);\n-       *pi_data = m->vlan_tci;\n+       struct ndis_pkt_vlan_info *vlan = (struct ndis_pkt_vlan_info *)pi_data;\n+       vlan->value = 0;\n+       vlan->vlanid = (m->vlan_tci & HN_VLAN_VID_MASK);\n+       vlan->cfi = (!!(m->vlan_tci & HN_VLAN_CFI_MASK));\n+       vlan->pri = ((m->vlan_tci & HN_VLAN_PRIO_MASK) >> HN_VLAN_PRIO_SHIFT);\n    }\n\n    if (m->ol_flags & RTE_MBUF_F_TX_TCP_SEG) {\ndiff --git a/drivers/net/netvsc/ndis.h b/drivers/net/netvsc/ndis.h\nindex d97a397a86..a1e587c738 100644\n--- a/drivers/net/netvsc/ndis.h\n+++ b/drivers/net/netvsc/ndis.h\n@@ -316,16 +316,19 @@ struct ndis_offload {\n  */\n\n /* VLAN */\n-#define    NDIS_VLAN_INFO_SIZE     sizeof(uint32_t)\n-#define    NDIS_VLAN_INFO_PRI_MASK     0x0007\n-#define    NDIS_VLAN_INFO_CFI_MASK     0x0008\n-#define    NDIS_VLAN_INFO_ID_MASK      0xfff0\n-#define    NDIS_VLAN_INFO_MAKE(id, pri, cfi)   \\\n-   (((pri) & NDIS_VLAN_INFO_PRI_MASK) |    \\\n-    (((cfi) & 0x1) << 3) | (((id) & 0xfff) << 4))\n-#define    NDIS_VLAN_INFO_ID(inf)      (((inf) & NDIS_VLAN_INFO_ID_MASK) >> 4)\n-#define    NDIS_VLAN_INFO_CFI(inf)     (((inf) & NDIS_VLAN_INFO_CFI_MASK) >> 3)\n-#define    NDIS_VLAN_INFO_PRI(inf)     ((inf) & NDIS_VLAN_INFO_PRI_MASK)\n+struct ndis_pkt_vlan_info {\n+   union {\n+       struct {\n+           uint32_t pri:3; /* User Priority */\n+           uint32_t cfi:1; /* Canonical Format ID / DEI */\n+           uint32_t vlanid:12; /* VLAN ID */\n+           uint32_t reserved:16;\n+       };\n+       uint32_t value;\n+   };\n+};\n+\n+#define    NDIS_VLAN_INFO_SIZE     sizeof(struct ndis_pkt_vlan_info)\n\n /* Reception checksum */\n #define    NDIS_RXCSUM_INFO_SIZE       sizeof(uint32_t)\n",
    "prefixes": []
}