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 AAFA2A2EDB for ; Fri, 6 Sep 2019 21:45:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 642601F3FC; Fri, 6 Sep 2019 21:45:55 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00082.outbound.protection.outlook.com [40.107.0.82]) by dpdk.org (Postfix) with ESMTP id AF8D51F3F9 for ; Fri, 6 Sep 2019 21:45:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sOPawx9DeYzXF9lKtCbOhMTdqXa7nqZA2ssVDWR0m1w=; b=tBxBkHnHIPZdGKkvqmmmuzMBvyxN9a6B+nye4lUCSclBojHb+N+lPUbciaEXvOxk3vv0dkFUUFzLVivfJsuiSkhB7e7J4ojR97KQqQ4NKjq/dqq+2KND6J97lWfNka4lkAvdpUlNLc47SepWPNDndgZW14zZAwK/QkC2Q7qMZ5A= Received: from HE1PR0802CA0001.eurprd08.prod.outlook.com (2603:10a6:3:bd::11) by AM6PR08MB3014.eurprd08.prod.outlook.com (2603:10a6:209:47::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.13; Fri, 6 Sep 2019 19:45:52 +0000 Received: from AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::207) by HE1PR0802CA0001.outlook.office365.com (2603:10a6:3:bd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 19:45:52 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT040.mail.protection.outlook.com (10.152.17.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 19:45:50 +0000 Received: ("Tessian outbound a25c4e5fef41:v27"); Fri, 06 Sep 2019 19:45:44 +0000 X-CR-MTA-TID: 64aa7808 Received: from 2c4fdaa9917b.3 (cr-mta-lb-1.cr-mta-net [104.47.9.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 98DDBA7E-9A04-4037-AAB0-D692729808C3.1; Fri, 06 Sep 2019 19:45:39 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2055.outbound.protection.outlook.com [104.47.9.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2c4fdaa9917b.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Fri, 06 Sep 2019 19:45:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZxMh+cXtn2jOOr5/zWt9xcSdjWugPe28KfhciUm8pOWqm8PP2a6JKVF4hWM3h7r7Z6GKVIuU1zPhgPniUD3Qs7QNU0McA587AENGvcBWlJsF7CD8tRYmsKilhOHsU+GaXgLVj9XMkWPpJxffbx0gAgZIBoRVKoPn0Jd07ySHYkuj559f2i1zvl3MECvcR3tJfbNFhabL/wA/Z1iJSUBtchWNMmEFEzGlsUnbS7jin9WDF/Rlt/SP46FesoN27V69APs8asyF+Y/zZlqznILLP8ZhDOtl7C2etqyzyBF7ONx7c1GQeSI5aj2wKOS5DEs/J1oS3iQWPnVl72BahrA7GQ== 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=sOPawx9DeYzXF9lKtCbOhMTdqXa7nqZA2ssVDWR0m1w=; b=d4aCFJ+9ZUucMCi7o0q+ORNgTs/AOK1UjZECsOQDfdE1zepEc672hcigNOItREv1LYx/n3ejhhscdsaWb393Vn8bkKKjFUdqMx7QH8iqezPpcYsVIa+8lLPk29+MLJGmiHKFJLQu5LwMiM1ZcE4PH52cT8cK1mDwI8gaDsyvE4dANVC9kRb9NkqxKmFrrqhkOHR1NABCbXweVKSepNczJ/sjMZLaAijZZHQc9Q8vDolFS07kdhDsM258WSHSJ1MvShAISPn8nbdNgX/RdLx9ANakdqVM/5/rIIKcSGD7nKILahvaNqHc9IG7o3dzrYLrND6vInaBtx2uNox3jHfyKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sOPawx9DeYzXF9lKtCbOhMTdqXa7nqZA2ssVDWR0m1w=; b=tBxBkHnHIPZdGKkvqmmmuzMBvyxN9a6B+nye4lUCSclBojHb+N+lPUbciaEXvOxk3vv0dkFUUFzLVivfJsuiSkhB7e7J4ojR97KQqQ4NKjq/dqq+2KND6J97lWfNka4lkAvdpUlNLc47SepWPNDndgZW14zZAwK/QkC2Q7qMZ5A= Received: from VE1PR08MB5149.eurprd08.prod.outlook.com (20.179.30.152) by VE1PR08MB4976.eurprd08.prod.outlook.com (10.255.158.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.18; Fri, 6 Sep 2019 19:45:36 +0000 Received: from VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::a8af:a9b8:4597:4128]) by VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::a8af:a9b8:4597:4128%3]) with mapi id 15.20.2178.023; Fri, 6 Sep 2019 19:45:36 +0000 From: Honnappa Nagarahalli To: "Ruifeng Wang (Arm Technology China)" , "bruce.richardson@intel.com" , "vladimir.medvedkin@intel.com" , "olivier.matz@6wind.com" CC: "dev@dpdk.org" , "stephen@networkplumber.org" , "konstantin.ananyev@intel.com" , "Gavin Hu (Arm Technology China)" , Dharmik Thakkar , nd , "Ruifeng Wang (Arm Technology China)" , "paulmck@linux.ibm.com" , nd Thread-Topic: [PATCH v2 4/6] app/test: add test case for LPM RCU integration Thread-Index: AQHVZOunk44aGu/r8UKNyCPunKUEYw== Date: Fri, 6 Sep 2019 19:45:36 +0000 Message-ID: References: <20190822063457.41596-1-ruifeng.wang@arm.com> <20190906094534.36060-1-ruifeng.wang@arm.com> <20190906094534.36060-5-ruifeng.wang@arm.com> In-Reply-To: <20190906094534.36060-5-ruifeng.wang@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: de73d8f3-fbb7-4bf8-aa7b-6faac9e80629.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 73af0ae9-99e7-4c67-43dd-08d73302d23d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam-Untrusted: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:VE1PR08MB4976; X-MS-TrafficTypeDiagnostic: VE1PR08MB4976:|VE1PR08MB4976:|AM6PR08MB3014: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:3173;OLM:3173; x-forefront-prvs: 0152EBA40F X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(346002)(136003)(366004)(376002)(39860400002)(396003)(199004)(189003)(13464003)(4326008)(2201001)(86362001)(66066001)(5660300002)(25786009)(446003)(76176011)(11346002)(476003)(2501003)(486006)(14444005)(5024004)(71200400001)(6246003)(71190400001)(14454004)(256004)(478600001)(99286004)(66476007)(7696005)(6506007)(53546011)(102836004)(52536014)(66946007)(64756008)(26005)(66446008)(186003)(53936002)(66556008)(55016002)(6436002)(81166006)(81156014)(8936002)(8676002)(74316002)(305945005)(110136005)(54906003)(3846002)(6116002)(2906002)(9686003)(76116006)(316002)(229853002)(33656002)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB4976; H:VE1PR08MB5149.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: mt0K9GiVtTYIJFXZesB0yXjUqwTwBwBgoaifqRVokK8J7YIV0vawQ/ohZmkD9FcHn7pH4aqPBXlyX/8b8AtFT2n6QV3uEBgyputE724nPthEzT5pxbpjSPjr+t+c7mr6NHPrQDzOVxxJhWRckqSdyJgvmxfUUZStirAW2ne3MAzkEu/rs8H3voIXV2TX3m+fMcLKXRJxrxKLzG80spF4pwh49HulDjMzXhfGzt/alHE6aDWLZgtDtqumbkRxvPkFywWG2BGVwdcgFiNGa3AuiFZPnrMdKC4wBsrBfjBC6DCmcG/Zau5wVdG/4FZh+/csRPrbEtD8HvqOYZyv1GoYAQ3i5Sjs079yrf15gsKyb9r+P0oJr5pdZQADar2dvV5vnrUp+Fn7GbY+927QYOoTRIruIvarNfC9M14qhLZwSCw= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4976 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(346002)(396003)(136003)(376002)(2980300002)(199004)(189003)(13464003)(63350400001)(478600001)(26826003)(476003)(6506007)(74316002)(305945005)(70206006)(70586007)(76176011)(11346002)(126002)(97756001)(14454004)(55016002)(446003)(9686003)(8746002)(8936002)(8676002)(63370400001)(486006)(5660300002)(7736002)(229853002)(81156014)(81166006)(6246003)(2201001)(3846002)(316002)(336012)(23726003)(25786009)(46406003)(2501003)(47776003)(50466002)(6116002)(53546011)(4326008)(66066001)(110136005)(36906005)(86362001)(99286004)(7696005)(54906003)(52536014)(5024004)(102836004)(76130400001)(14444005)(2906002)(356004)(186003)(26005)(22756006)(33656002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3014; H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:TempError; LANG:en; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; A:1; MX:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: 4c237621-5a11-438c-7473-08d73302c9e9 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(710020)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM6PR08MB3014; NoDisclaimer: True X-Forefront-PRVS: 0152EBA40F X-Microsoft-Antispam-Message-Info: RtSY5BB4FSwcg+bWOvVXr6ne9IUPxE9yNtzb2dubsvX5c53/8Fqs3gr3yYQ/hh+avclCkSZqJy8uQ6dzEX1KxFmTeWmZLnWw2Nf1M7DAyRJl1ai/RycRxbwGef+aHcRNnFaRtJEMooxJRiJq+/yc1r15+9Egdq8B2gdFSmcvwJnY4sZIYMEj1xfhNCG9V5zTOGBZwonG5edUwDV6nW1NhxzCk/D1xUYbWrcdTeRVWAs6slkwkGT8AGps6rMC4v61Ws6vqAUYYOeiyAFqhsu8flEdvpJM1/JaIptbwE4Su/BEc+opTHhHzHuw0PFISiNT3ymWKz2s7sOh5IKVQw1QyRINr7/lnrn0h0QOFQCAb/Z1fX47HdvXf/p3S5In4SlCKi4c0hJSN9DUAqYnWo/iU9wDI0cSRN5aZa0jVOWYCts= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2019 19:45:50.5440 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 73af0ae9-99e7-4c67-43dd-08d73302d23d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3014 Subject: Re: [dpdk-dev] [PATCH v2 4/6] app/test: add test case for LPM RCU integration 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" Adding Paul for feedback > -----Original Message----- > From: Ruifeng Wang > Sent: Friday, September 6, 2019 4:46 AM > To: bruce.richardson@intel.com; vladimir.medvedkin@intel.com; > olivier.matz@6wind.com > Cc: dev@dpdk.org; stephen@networkplumber.org; > konstantin.ananyev@intel.com; Gavin Hu (Arm Technology China) > ; Honnappa Nagarahalli > ; Dharmik Thakkar > ; nd ; Ruifeng Wang (Arm > Technology China) > Subject: [PATCH v2 4/6] app/test: add test case for LPM RCU integration >=20 > Add positive and negative tests for API rte_lpm_rcu_qsbr_add. > Also test LPM library behavior when RCU QSBR is enabled. >=20 > Signed-off-by: Ruifeng Wang > Reviewed-by: Gavin Hu > Reviewed-by: Honnappa Nagarahalli > --- > app/test/test_lpm.c | 153 +++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 152 insertions(+), 1 deletion(-) >=20 > diff --git a/app/test/test_lpm.c b/app/test/test_lpm.c index > e969fe051..cfd372395 100644 > --- a/app/test/test_lpm.c > +++ b/app/test/test_lpm.c > @@ -8,6 +8,7 @@ >=20 > #include > #include > +#include >=20 > #include "test.h" > #include "test_xmmt_ops.h" > @@ -40,6 +41,8 @@ static int32_t test15(void); static int32_t test16(voi= d); > static int32_t test17(void); static int32_t test18(void); > +static int32_t test19(void); > +static int32_t test20(void); >=20 > rte_lpm_test tests[] =3D { > /* Test Cases */ > @@ -61,7 +64,9 @@ rte_lpm_test tests[] =3D { > test15, > test16, > test17, > - test18 > + test18, > + test19, > + test20 > }; >=20 > #define NUM_LPM_TESTS (sizeof(tests)/sizeof(tests[0])) @@ -1266,6 > +1271,152 @@ test18(void) > return PASS; > } >=20 > +/* > + * rte_lpm_rcu_qsbr_add positive and negative tests. > + * - Add RCU QSBR variable to LPM > + * - Add another RCU QSBR variable to LPM > + * - Check LPM attached RCU QSBR variable and FIFO queue */ int32_t > +test19(void) > +{ > + struct rte_lpm *lpm =3D NULL; > + struct rte_lpm_config config; > + size_t sz; > + struct rte_rcu_qsbr *qsv; > + struct rte_rcu_qsbr *qsv2; > + int32_t status; > + > + config.max_rules =3D MAX_RULES; > + config.number_tbl8s =3D NUMBER_TBL8S; > + config.flags =3D 0; > + > + lpm =3D rte_lpm_create(__func__, SOCKET_ID_ANY, &config); > + TEST_LPM_ASSERT(lpm !=3D NULL); > + > + /* Create RCU QSBR variable */ > + sz =3D rte_rcu_qsbr_get_memsize(RTE_MAX_LCORE); > + qsv =3D (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, sz, > + RTE_CACHE_LINE_SIZE, > SOCKET_ID_ANY); > + TEST_LPM_ASSERT(qsv !=3D NULL); > + > + status =3D rte_rcu_qsbr_init(qsv, RTE_MAX_LCORE); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + /* Attach RCU QSBR to LPM table */ > + status =3D rte_lpm_rcu_qsbr_add(lpm, qsv); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + /* Create and attach another RCU QSBR to LPM table */ > + qsv2 =3D (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, sz, > + RTE_CACHE_LINE_SIZE, > SOCKET_ID_ANY); > + TEST_LPM_ASSERT(qsv2 !=3D NULL); > + > + status =3D rte_lpm_rcu_qsbr_add(lpm, qsv2); > + TEST_LPM_ASSERT(status !=3D 0); > + > + TEST_LPM_ASSERT(lpm->qsv =3D=3D qsv); > + TEST_LPM_ASSERT(lpm->qs_fifo !=3D NULL); > + > + rte_lpm_free(lpm); > + rte_free(qsv); > + rte_free(qsv2); > + > + return PASS; > +} > + > +/* > + * rte_lpm_rcu_qsbr_add functional test. > + * - Create LPM which supports 1 tbl8 group at max > + * - Add RCU QSBR variable to LPM > + * - Add a rule with depth=3D28 (> 24) > + * - Register a reader thread (not a real thread) > + * - Reader lookup existing rule > + * - Writer delete the rule > + * - Reader lookup the rule > + * - Writer re-add the rule (no available tbl8 group) > + * - Reader report quiescent state and unregister > + * - Writer re-add the rule > + * - Reader lookup the rule > + */ > +int32_t > +test20(void) > +{ > + struct rte_lpm *lpm =3D NULL; > + struct rte_lpm_config config; > + size_t sz; > + struct rte_rcu_qsbr *qsv; > + int32_t status; > + uint32_t ip, next_hop, next_hop_return; > + uint8_t depth; > + > + config.max_rules =3D MAX_RULES; > + config.number_tbl8s =3D 1; > + config.flags =3D 0; > + > + lpm =3D rte_lpm_create(__func__, SOCKET_ID_ANY, &config); > + TEST_LPM_ASSERT(lpm !=3D NULL); > + > + /* Create RCU QSBR variable */ > + sz =3D rte_rcu_qsbr_get_memsize(1); > + qsv =3D (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, sz, > + RTE_CACHE_LINE_SIZE, > SOCKET_ID_ANY); > + TEST_LPM_ASSERT(qsv !=3D NULL); > + > + status =3D rte_rcu_qsbr_init(qsv, 1); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + /* Attach RCU QSBR to LPM table */ > + status =3D rte_lpm_rcu_qsbr_add(lpm, qsv); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + ip =3D RTE_IPV4(192, 18, 100, 100); > + depth =3D 28; > + next_hop =3D 1; > + status =3D rte_lpm_add(lpm, ip, depth, next_hop); > + TEST_LPM_ASSERT(status =3D=3D 0); > + TEST_LPM_ASSERT(lpm->tbl24[ip>>8].valid_group); > + > + /* Register pseudo reader */ > + status =3D rte_rcu_qsbr_thread_register(qsv, 0); > + TEST_LPM_ASSERT(status =3D=3D 0); > + rte_rcu_qsbr_thread_online(qsv, 0); > + > + status =3D rte_lpm_lookup(lpm, ip, &next_hop_return); > + TEST_LPM_ASSERT(status =3D=3D 0); > + TEST_LPM_ASSERT(next_hop_return =3D=3D next_hop); > + > + /* Writer update */ > + status =3D rte_lpm_delete(lpm, ip, depth); > + TEST_LPM_ASSERT(status =3D=3D 0); > + TEST_LPM_ASSERT(!lpm->tbl24[ip>>8].valid); > + > + status =3D rte_lpm_lookup(lpm, ip, &next_hop_return); > + TEST_LPM_ASSERT(status !=3D 0); > + > + status =3D rte_lpm_add(lpm, ip, depth, next_hop); > + TEST_LPM_ASSERT(status !=3D 0); > + > + /* Reader quiescent */ > + rte_rcu_qsbr_quiescent(qsv, 0); > + > + status =3D rte_lpm_add(lpm, ip, depth, next_hop); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + rte_rcu_qsbr_thread_offline(qsv, 0); > + status =3D rte_rcu_qsbr_thread_unregister(qsv, 0); > + TEST_LPM_ASSERT(status =3D=3D 0); > + > + status =3D rte_lpm_lookup(lpm, ip, &next_hop_return); > + TEST_LPM_ASSERT(status =3D=3D 0); > + TEST_LPM_ASSERT(next_hop_return =3D=3D next_hop); > + > + rte_lpm_free(lpm); > + rte_free(qsv); > + > + return PASS; > +} > + > /* > * Do all unit tests. > */ > -- > 2.17.1