From patchwork Sat Apr 13 08:54:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivek Kumar Sharma X-Patchwork-Id: 52746 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 37A841B105; Sat, 13 Apr 2019 14:35:22 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 344221B184; Sat, 13 Apr 2019 10:54:58 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3D8oZYF002477; Sat, 13 Apr 2019 01:54:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=XLOZjBJcj1JxinU7RaEhm7r45KaglVA+0RRjw+C+63k=; b=SUJKepGPF1dMB6O88HDOamlLcK9PnGI6wk3tSpZNO1Tk8dOHrTWdYFEFvu/KxW5DGPxK WROrQ3wzijMmXlTSUAKxoi4l5Htw0l4oAamyFvzApJbR858VECXPHBvGydAsBgblWGWW AX+nf6uMuuVQEhmXR6zNVsyEOQRk9U9kXebKc/keAwuvts9sP0vNu0Ip/WuC/ZBUJEqL e9dEK9POboeJzvgY26W+KXguavmMkVq5DuekV8FyX3PhBq4cb0lQgaJlOujg92IRYYka DwWrRGtvSY5z1rkieO6dXPDjhXI7NkBLSbLcqNL8+h7f7FZ8xOSwkDsH2noZW1AAXzlb iw== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2rtthaugst-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 13 Apr 2019 01:54:57 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 13 Apr 2019 01:54:55 -0700 Received: from NAM01-BY2-obe.outbound.protection.outlook.com (104.47.34.55) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 13 Apr 2019 01:54:55 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XLOZjBJcj1JxinU7RaEhm7r45KaglVA+0RRjw+C+63k=; b=EgVUjItKxEg9vGeAjQ1zPNf46in39XHe4R/YDYhs+l7cu1PvoRDA+veYd5pFwZ5yhIXzqj9SFyAA7er8JN5VLv1zZKm62Avn6JHWU8WkuDuJNFiTz1sC1WVdqvgb9+Ppl/lr+4PSsPmuhcsPIskuggBeuQQcge5UbaEEjB3cYO4= Received: from DM6PR18MB2907.namprd18.prod.outlook.com (20.179.49.225) by DM6PR18MB2699.namprd18.prod.outlook.com (20.179.49.206) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.19; Sat, 13 Apr 2019 08:54:54 +0000 Received: from DM6PR18MB2907.namprd18.prod.outlook.com ([fe80::e865:4e62:3650:d7f0]) by DM6PR18MB2907.namprd18.prod.outlook.com ([fe80::e865:4e62:3650:d7f0%2]) with mapi id 15.20.1792.018; Sat, 13 Apr 2019 08:54:54 +0000 From: Vivek Kumar Sharma To: "dev@dpdk.org" CC: "thomas@monjalon.net" , "ferruh.yigit@intel.com" , "arybchenko@solarflare.com" , Vivek Kumar Sharma , "stable@dpdk.org" Thread-Topic: [PATCH] ethdev: fix QinQ strip offload support Thread-Index: AQHU8daQluSm2XqzzEyNi4iBRRBdeg== Date: Sat, 13 Apr 2019 08:54:54 +0000 Message-ID: <1555145658-31088-1-git-send-email-viveksharma@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR0401CA0016.apcprd04.prod.outlook.com (2603:1096:3:1::26) To DM6PR18MB2907.namprd18.prod.outlook.com (2603:10b6:5:167::33) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.7.4 x-originating-ip: [180.151.17.164] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2b1cc1dd-e886-4c65-7788-08d6bfedb282 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:DM6PR18MB2699; x-ms-traffictypediagnostic: DM6PR18MB2699: x-microsoft-antispam-prvs: x-forefront-prvs: 00064751B6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39850400004)(396003)(136003)(366004)(346002)(376002)(199004)(189003)(99286004)(54906003)(6506007)(386003)(71200400001)(5640700003)(102836004)(8936002)(106356001)(81166006)(71190400001)(81156014)(8676002)(2351001)(2501003)(1730700003)(2616005)(2906002)(476003)(316002)(26005)(486006)(14444005)(256004)(50226002)(52116002)(105586002)(3846002)(478600001)(6116002)(186003)(14454004)(25786009)(86362001)(4326008)(6916009)(68736007)(6512007)(305945005)(6486002)(36756003)(5660300002)(66066001)(6436002)(7736002)(97736004)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR18MB2699; H:DM6PR18MB2907.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: AcrMAsFR76WSsc2Z3SeGdl/j1HKLRXgS5SkvBiVPUwhIPxvVejCbRSu+kPwOq//qzL95T5rNftAG2PXfUnnigNzoIOSTgRhJeNEMnNYq+g3KnnppPkxhyuNl8v+35b5v0rbOMO+nPl43jUTmn8+al1cnqkkwcneLJIfoM7FsSeCF/7ctg1ChmUM3hfDz42UV2U4uyKSaQrkFtYz03A4B6lrH8F58cfNj38H+xqf5r2CCVf4W8iljY03/DV650ONzTun6jWi353g6Cg64OAVfxCVyX9bro75Zi5qnh47XlzcwyRItIFx9wVG6JghyObW7ynyijwRTixeiW5OZegkW/4Bqjxe5rnFOmz9H5MTCuyv7vQQ+TODzdJK25dfu5hfWWfwJ/TP2dFnntG2jSKwmzzFHcf/u78zSt41IYARsNQw= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 2b1cc1dd-e886-4c65-7788-08d6bfedb282 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2019 08:54:54.6986 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB2699 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-13_02:, , signatures=0 X-Mailman-Approved-At: Sat, 13 Apr 2019 14:35:08 +0200 Subject: [dpdk-dev] [PATCH] ethdev: fix QinQ strip offload support 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Enable missing support for QinQ strip rx offload in vlan offload set/get methods. Fixes: cc9d0456b870 ("i40e: support double vlan stripping and insertion") Cc: stable@dpdk.org Signed-off-by: Vivek Sharma --- lib/librte_ethdev/rte_ethdev.c | 17 +++++++++++++++++ lib/librte_ethdev/rte_ethdev.h | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 243beb4..222df4e 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -2770,6 +2770,19 @@ rte_eth_dev_set_vlan_offload(uint16_t port_id, int offload_mask) mask |= ETH_VLAN_EXTEND_MASK; } + cur = !!(offload_mask & ETH_QINQ_STRIP_OFFLOAD); + org = !!(dev->data->dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_QINQ_STRIP); + if (cur != org) { + if (cur) + dev->data->dev_conf.rxmode.offloads |= + DEV_RX_OFFLOAD_QINQ_STRIP; + else + dev->data->dev_conf.rxmode.offloads &= + ~DEV_RX_OFFLOAD_QINQ_STRIP; + mask |= ETH_QINQ_STRIP_MASK; + } + /*no change*/ if (mask == 0) return ret; @@ -2805,6 +2818,10 @@ rte_eth_dev_get_vlan_offload(uint16_t port_id) DEV_RX_OFFLOAD_VLAN_EXTEND) ret |= ETH_VLAN_EXTEND_OFFLOAD; + if (dev->data->dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_QINQ_STRIP) + ret |= DEV_RX_OFFLOAD_QINQ_STRIP; + return ret; } diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index 40a068f..c1792f4 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -550,11 +550,13 @@ struct rte_eth_rss_conf { #define ETH_VLAN_STRIP_OFFLOAD 0x0001 /**< VLAN Strip On/Off */ #define ETH_VLAN_FILTER_OFFLOAD 0x0002 /**< VLAN Filter On/Off */ #define ETH_VLAN_EXTEND_OFFLOAD 0x0004 /**< VLAN Extend On/Off */ +#define ETH_QINQ_STRIP_OFFLOAD 0x0008 /**< QINQ Strip On/Off */ /* Definitions used for mask VLAN setting */ #define ETH_VLAN_STRIP_MASK 0x0001 /**< VLAN Strip setting mask */ #define ETH_VLAN_FILTER_MASK 0x0002 /**< VLAN Filter setting mask*/ #define ETH_VLAN_EXTEND_MASK 0x0004 /**< VLAN Extend setting mask*/ +#define ETH_QINQ_STRIP_MASK 0x0008 /**< QINQ Strip setting mask */ #define ETH_VLAN_ID_MAX 0x0FFF /**< VLAN ID is in lower 12 bits*/ /* Definitions used for receive MAC address */ @@ -965,7 +967,8 @@ struct rte_eth_conf { DEV_RX_OFFLOAD_TCP_CKSUM) #define DEV_RX_OFFLOAD_VLAN (DEV_RX_OFFLOAD_VLAN_STRIP | \ DEV_RX_OFFLOAD_VLAN_FILTER | \ - DEV_RX_OFFLOAD_VLAN_EXTEND) + DEV_RX_OFFLOAD_VLAN_EXTEND | \ + DEV_RX_OFFLOAD_QINQ_STRIP) /* * If new Rx offload capabilities are defined, they also must be