From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8D582A2EDB for ; Sun, 29 Sep 2019 06:28:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9B9272B88; Sun, 29 Sep 2019 06:28:42 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 0D583DE3 for ; Sun, 29 Sep 2019 06:28:40 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x8T49rEa030618; Sat, 28 Sep 2019 21:28:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=WOSlLPXekjbU+qZtLlvlbuH3lry/4H8myELlfcmRZWw=; b=QjsY5nVR17F0t0PGsxfJKkrtZC7YYjExgylUvq8ZAkhOqxr30XKEgfyT670oVHW8DjUi bWgp0yHtAOwQyiGjkNBslADWaYV2A2aATD9ftcWCeLCzIepeSFuIgY0pagm+old4Jkst 5sC3l8u7SlogC6607sH8L1mc6dphulavY+8dxOU3a7hOOxrK+fNd8qckW77SlRSDMgnC O/NDPv1MD49Y5lEQuQg0LPnRLP3FXZH536YFwmWv8ueeyzkZr17QC2KLui4MANRcARAF nLFe/VwqgW5juNg633GkW3uBjrnr58MKD1GRQ9oESOq02pmBK4cnvyHfgpDFoX6j2OdV BA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0a-0016f401.pphosted.com with ESMTP id 2va4vrt9sf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 28 Sep 2019 21:28:39 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 28 Sep 2019 21:28:38 -0700 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.53) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 28 Sep 2019 21:28:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bgMN8vxmyFEGMrS4zChHrMqglDg93OlawDRstI8GtOy+hUTu7qHsFvwdHq0hy2fkuYHghcyo1n+bFEbiYkzrlHeFqzFYFwvmjO36MBCHyikWrYCQiHByyiRrL+54SW342rYukYYoQ9H9hQcxK9VvgXYXxT5Sv7UoH1vzBC37wQhlHqJMDmUlPq5IlSMF5tIYmCA1sfD+nu1jfQbFb0EZpUcCko98RC2VPOn3j1OR4yzsTan0FoJUuGXdaM6tlhc/ijmRU67UdbK7cuRQ8yj1jMePXdrC00E3pDGWdaqZUNcfjVnLwXcV7HJQt4PVR+YkvegfFbdCgnzXFTvSG1TjCA== 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-SenderADCheck; bh=WOSlLPXekjbU+qZtLlvlbuH3lry/4H8myELlfcmRZWw=; b=U43h8B4HPAdcK5f9+5vu6FBsOsAu1fGAsv8YWtIfBth1MasfAX5CQU9VE8P4RxZ1Hwlx9JoCYzBik3e/fZ2Z0KABNKijoYaxD2XMWX2nYX2iv7+ftF0WCRcJ8H2aZ+sV+PFFfwjkiWZNRUjPLRiexlUkdN+f/FLic1swdZgWDRarkfJYoFoJFvFS83oOVul3K4qdctsuBfK1dEcDBxArR9MtWoJXuzla0Yns1NyVvN6FEJAddGoA2hXaPBGS/RkuVKeW6zWsB1RlFWXUHunEvaQMR4xFPucSu2/YC9HS+i5w14gkWD1B+aN3huct4osyuvCaXxfNeRqsO562fVo1TA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WOSlLPXekjbU+qZtLlvlbuH3lry/4H8myELlfcmRZWw=; b=Z/CuX5PgK9bSfFn43TUR3KBaBfpMchSEiwcVn45yfrKpycTNP4nSmnkKsTDvf6fml4KTnAJFvBKLhghWSDYlmBCtvjCqKJZ6SJ2Mpt02zkbAC0176DefdFTyF8Ydfi1Y38zfvUTRTazmZWdLyo3BvyT0mcdHRlN1sWTFWgU/A6s= Received: from CY4PR18MB1144.namprd18.prod.outlook.com (10.173.184.19) by CY4PR18MB0934.namprd18.prod.outlook.com (10.173.182.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.20; Sun, 29 Sep 2019 04:28:36 +0000 Received: from CY4PR18MB1144.namprd18.prod.outlook.com ([fe80::2d29:c0c6:4b83:374a]) by CY4PR18MB1144.namprd18.prod.outlook.com ([fe80::2d29:c0c6:4b83:374a%11]) with mapi id 15.20.2284.028; Sun, 29 Sep 2019 04:28:36 +0000 From: Vivek Kumar Sharma To: "dev@dpdk.org" CC: "intoviveksharma@gmail.com" , "ferruh.yigit@intel.com" Thread-Topic: [PATCH] app/testpmd: support QinQ offload in VLAN set command Thread-Index: AQHVaizritkapGRRBUG48nnSKHEb+adCKEFY Date: Sun, 29 Sep 2019 04:28:36 +0000 Message-ID: References: <1568376912-9585-1-git-send-email-viveksharma@marvell.com> In-Reply-To: <1568376912-9585-1-git-send-email-viveksharma@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2401:4900:30e4:e02d:a8c6:fbb4:b8e3:e517] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 84f43a18-70ab-473f-20e1-08d744957ec8 x-ms-traffictypediagnostic: CY4PR18MB0934: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 017589626D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39840400004)(136003)(396003)(346002)(366004)(376002)(199004)(189003)(2906002)(54906003)(86362001)(55016002)(6436002)(66446008)(76176011)(64756008)(66556008)(71200400001)(66476007)(6506007)(91956017)(5640700003)(53546011)(66946007)(52536014)(33656002)(71190400001)(1730700003)(81166006)(81156014)(46003)(76116006)(2351001)(99286004)(6116002)(446003)(256004)(316002)(11346002)(229853002)(8676002)(8936002)(102836004)(2501003)(14454004)(476003)(6246003)(25786009)(186003)(7696005)(4326008)(74316002)(305945005)(5660300002)(7736002)(9686003)(486006)(6916009)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR18MB0934; H:CY4PR18MB1144.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: BCL:0; x-microsoft-antispam-message-info: taAEgx+M75Cmm1twPzaOd+FUAG536pXuXCXKTccK6OGW0GwzmQcoDMT4elVy1lQUczIDoqXXz+MpGHRGGvCrbJlrvgkPu8NV7CdXPDSmncP2HcXZquu38b55muDAQq7M84RrHDbaKTl6VMKq3BpX4niEO/Rvrns2WtnrA3BApBkyE9Vd56dniVU87qDhYZDhe2b+J8zdFDwWPF1q9cITVQMLdip2tt9tHE8Qd8/g8sWgqMWZvHbt7QKLpf9AnDlyqjx3yHIoUu7EcOvSwjs98MBFQD4/T6r+5lrwyAZAKgLPbxajR7yQF+cPhPcip/WF59+h/vowoS1/oQJvxWSXlf7620S6plRb+UNWYri+xWt3BazJqzqk8GnMnUPVjGx6R1gcr7dv+UT4EjK6SqXqfHtntej4NjihheQUkifWloA= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 84f43a18-70ab-473f-20e1-08d744957ec8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2019 04:28:36.2735 (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-CrossTenant-userprincipalname: LlY7AmJfxAS02+u5Ukid5RLBFQhIxZL3jfMtXwV9HsU0LvkmjHzSguhuTr3j2728z2SGuTSAbWSg4bThINp6jA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR18MB0934 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-09-29_02:2019-09-25,2019-09-29 signatures=0 Subject: Re: [dpdk-dev] [PATCH] app/testpmd: support QinQ offload in VLAN set command 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" Ping!=0A= =0A= =0A= Thanks,=0A= Vivek=0A= =0A= =0A= ________________________________________=0A= From: viveksharma@marvell.com =0A= Sent: 13 September 2019 17:45=0A= To: dev@dpdk.org=0A= Cc: intoviveksharma@gmail.com; ferruh.yigit@intel.com; Vivek Kumar Sharma= =0A= Subject: [PATCH] app/testpmd: support QinQ offload in VLAN set command=0A= =0A= From: Vivek Sharma =0A= =0A= Segregate QinQ from Extend Offload and support QinQ offload=0A= in vlan set command. Merge all port wise rx vlan offloads in=0A= command line help and documentation for a cleaner structure.=0A= =0A= Signed-off-by: Vivek Sharma =0A= ---=0A= app/test-pmd/cmdline.c | 19 +++++++------------=0A= app/test-pmd/config.c | 27 +++++++++++++++++++++++++= ++=0A= app/test-pmd/testpmd.h | 1 +=0A= doc/guides/testpmd_app_ug/testpmd_funcs.rst | 23 ++++-------------------= =0A= 4 files changed, 39 insertions(+), 31 deletions(-)=0A= =0A= diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c=0A= index b6bc34b..479a4f2 100644=0A= --- a/app/test-pmd/cmdline.c=0A= +++ b/app/test-pmd/cmdline.c=0A= @@ -325,9 +325,6 @@ static void cmd_help_long_parsed(void *parsed_result,= =0A= "set vf broadcast (port_id) (vf_id) (on|off)\n"=0A= " Set VF broadcast for a VF from the PF.\n\n"=0A= =0A= - "vlan set strip (on|off) (port_id)\n"=0A= - " Set the VLAN strip on a port.\n\n"=0A= -=0A= "vlan set stripq (on|off) (port_id,queue_id)\n"=0A= " Set the VLAN strip for a queue on a port.\n\n"= =0A= =0A= @@ -358,12 +355,8 @@ static void cmd_help_long_parsed(void *parsed_result,= =0A= "set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\= n"=0A= " Set all TCs' min bandwidth(%%) for all PF and = VFs.\n\n"=0A= =0A= - "vlan set filter (on|off) (port_id)\n"=0A= - " Set the VLAN filter on a port.\n\n"=0A= -=0A= - "vlan set qinq (on|off) (port_id)\n"=0A= - " Set the VLAN QinQ (extended queue in queue)"= =0A= - " on a port.\n\n"=0A= + "vlan set (strip|filter|qinq|extend) (on|off) (port= _id)\n"=0A= + " Set the VLAN strip or filter or qinq strip or = extend\n\n"=0A= =0A= "vlan set (inner|outer) tpid (value) (port_id)\n"= =0A= " Set the VLAN TPID for Packet Filtering on"=0A= @@ -3902,6 +3895,8 @@ cmd_vlan_offload_parsed(void *parsed_result,=0A= }=0A= else if (!strcmp(res->what, "filter"))=0A= rx_vlan_filter_set(port_id, on);=0A= + else if (!strcmp(res->what, "qinq"))=0A= + rx_vlan_qinq_strip_set(port_id, on);=0A= else=0A= vlan_extend_set(port_id, on);=0A= =0A= @@ -3916,7 +3911,7 @@ cmdline_parse_token_string_t cmd_vlan_offload_set =3D= =0A= set, "set");=0A= cmdline_parse_token_string_t cmd_vlan_offload_what =3D=0A= TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,=0A= - what, "strip#filter#qinq#stripq");=0A= + what, "strip#filter#qinq#extend#stripq");= =0A= cmdline_parse_token_string_t cmd_vlan_offload_on =3D=0A= TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,=0A= on, "on#off");=0A= @@ -3927,9 +3922,9 @@ cmdline_parse_token_string_t cmd_vlan_offload_portid = =3D=0A= cmdline_parse_inst_t cmd_vlan_offload =3D {=0A= .f =3D cmd_vlan_offload_parsed,=0A= .data =3D NULL,=0A= - .help_str =3D "vlan set strip|filter|qinq|stripq on|off "=0A= + .help_str =3D "vlan set strip|filter|qinq|extend|stripq on|off "=0A= ": "=0A= - "Filter/Strip for rx side qinq(extended) for both rx/tx sid= es",=0A= + "Strip/Filter/QinQ for rx side Extend for both rx/tx sides"= ,=0A= .tokens =3D {=0A= (void *)&cmd_vlan_offload_vlan,=0A= (void *)&cmd_vlan_offload_set,=0A= diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c=0A= index 1a5a5c1..372ca54 100644=0A= --- a/app/test-pmd/config.c=0A= +++ b/app/test-pmd/config.c=0A= @@ -2985,6 +2985,33 @@ rx_vlan_filter_set(portid_t port_id, int on)=0A= ports[port_id].dev_conf.rxmode.offloads =3D port_rx_offloads;=0A= }=0A= =0A= +void=0A= +rx_vlan_qinq_strip_set(portid_t port_id, int on)=0A= +{=0A= + int diag;=0A= + int vlan_offload;=0A= + uint64_t port_rx_offloads =3D ports[port_id].dev_conf.rxmode.offloa= ds;=0A= +=0A= + if (port_id_is_invalid(port_id, ENABLED_WARN))=0A= + return;=0A= +=0A= + vlan_offload =3D rte_eth_dev_get_vlan_offload(port_id);=0A= +=0A= + if (on) {=0A= + vlan_offload |=3D ETH_QINQ_STRIP_OFFLOAD;=0A= + port_rx_offloads |=3D DEV_RX_OFFLOAD_QINQ_STRIP;=0A= + } else {=0A= + vlan_offload &=3D ~ETH_QINQ_STRIP_OFFLOAD;=0A= + port_rx_offloads &=3D ~DEV_RX_OFFLOAD_QINQ_STRIP;=0A= + }=0A= +=0A= + diag =3D rte_eth_dev_set_vlan_offload(port_id, vlan_offload);=0A= + if (diag < 0)=0A= + printf("%s(port_pi=3D%d, on=3D%d) failed "=0A= + "diag=3D%d\n", __func__, port_id, on, diag);=0A= + ports[port_id].dev_conf.rxmode.offloads =3D port_rx_offloads;=0A= +}=0A= +=0A= int=0A= rx_vft_set(portid_t port_id, uint16_t vlan_id, int on)=0A= {=0A= diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h=0A= index ce13eb8..05c8967 100644=0A= --- a/app/test-pmd/testpmd.h=0A= +++ b/app/test-pmd/testpmd.h=0A= @@ -752,6 +752,7 @@ void rx_vlan_strip_set_on_queue(portid_t port_id, uint1= 6_t queue_id, int on);=0A= =0A= void rx_vlan_filter_set(portid_t port_id, int on);=0A= void rx_vlan_all_filter_set(portid_t port_id, int on);=0A= +void rx_vlan_qinq_strip_set(portid_t port_id, int on);=0A= int rx_vft_set(portid_t port_id, uint16_t vlan_id, int on);=0A= void vlan_extend_set(portid_t port_id, int on);=0A= void vlan_tpid_set(portid_t port_id, enum rte_vlan_type vlan_type,=0A= diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testp= md_app_ug/testpmd_funcs.rst=0A= index 67f4339..0029865 100644=0A= --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst=0A= +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst=0A= @@ -799,13 +799,6 @@ Set broadcast mode for a VF from the PF::=0A= =0A= testpmd> set vf broadcast (port_id) (vf_id) (on|off)=0A= =0A= -vlan set strip=0A= -~~~~~~~~~~~~~~=0A= -=0A= -Set the VLAN strip on a port::=0A= -=0A= - testpmd> vlan set strip (on|off) (port_id)=0A= -=0A= vlan set stripq=0A= ~~~~~~~~~~~~~~~=0A= =0A= @@ -841,19 +834,11 @@ Set VLAN antispoof for a VF from the PF::=0A= =0A= testpmd> set vf vlan antispoof (port_id) (vf_id) (on|off)=0A= =0A= -vlan set filter=0A= -~~~~~~~~~~~~~~~=0A= -=0A= -Set the VLAN filter on a port::=0A= -=0A= - testpmd> vlan set filter (on|off) (port_id)=0A= -=0A= -vlan set qinq=0A= -~~~~~~~~~~~~~=0A= -=0A= -Set the VLAN QinQ (extended queue in queue) on for a port::=0A= +vlan set (strip|filter|qinq|extend)=0A= +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=0A= +Set the VLAN strip/filter/QinQ strip/extend on for a port::=0A= =0A= - testpmd> vlan set qinq (on|off) (port_id)=0A= + testpmd> vlan set (strip|filter|qinq|extend) (on|off) (port_id)=0A= =0A= vlan set tpid=0A= ~~~~~~~~~~~~~=0A= --=0A= 2.7.4=0A= =0A=