From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140081.outbound.protection.outlook.com [40.107.14.81]) by dpdk.org (Postfix) with ESMTP id 96F7C1B5C7 for ; Wed, 19 Dec 2018 14:04:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nK5xVmnDVfeoZ01DMiz6XK43+Vpc7ejv948Lr1KV3Ak=; b=q+Rp4jstGrUS+Ug5Cxom+CU0TphgWe/7rOFvZc979VXqIRFSchatibLRNn5RMzXtZw3FYrUEuTkV1YRrTtDeE2HQdfe6Tmgrpq9we6Lviy9QR8Tf4yKf8XoQ2NKeDf3CGmj0BWy4vEpjn5LKsei41xf9liJXY5YyjKzOcZs1nvg= Received: from VI1PR04MB4893.eurprd04.prod.outlook.com (20.177.49.154) by VI1PR04MB3168.eurprd04.prod.outlook.com (10.170.229.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.17; Wed, 19 Dec 2018 13:04:08 +0000 Received: from VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b]) by VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b%4]) with mapi id 15.20.1446.018; Wed, 19 Dec 2018 13:04:08 +0000 From: Akhil Goyal To: Konstantin Ananyev , "dev@dpdk.org" CC: Thomas Monjalon , Mohammad Abdul Awal Thread-Topic: [dpdk-dev] [PATCH v4 05/10] ipsec: add SA data-path API Thread-Index: AQHUk8lvhTVS3SpcaEmHHXi5D6o686WGDw0A Date: Wed, 19 Dec 2018 13:04:08 +0000 Message-ID: References: <1544110714-4514-2-git-send-email-konstantin.ananyev@intel.com> <1544804589-10338-5-git-send-email-konstantin.ananyev@intel.com> In-Reply-To: <1544804589-10338-5-git-send-email-konstantin.ananyev@intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR01CA0115.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00::31) To VI1PR04MB4893.eurprd04.prod.outlook.com (2603:10a6:803:56::26) authentication-results: spf=none (sender IP is ) smtp.mailfrom=akhil.goyal@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB3168; 6:+z+JsMiyk1Ku/h9roIubHHQ99+XsZcktuZWi1cVbE41GRRXAeSks32ab2NNQSWITG8hdpUDQdc5q4zqWExKn/9z2nKTKZKpdcMBGltbfqxKbuRMF3eHA+9cQXM/UR7+N4gmFGRNXs0s4lOx4Y9R+87Lp3dQsoVgPR/ucH1gqfWtXX/mWyF10T128//6dxFOhus7X4jctSUTjaXsmZtw8AMxy9ekrODJEo2yu7ZJx4YRi1nvxJIye1jNtduNqnDvDTae1Nx5ZSqgZbb09eDKmk31lgicuusSTiYX23bsd8k34/+Qxm6lqWFjiWOFKL7/9jlKihpCgJ/VT3UpT6ucOH2lxRZQtxtECAwUtfuuNLLA/e5zmePSZ9BpU3hEzvr+bQ+k68ApjZ1QRFjrlDSpRW+a4U/pipAkvvkNkr3cdtQ5ZN+vvDpkjXjaoKBdM4DpvPIaOERRBZBoJkYuK0lbpSg==; 5:bsKBvhEcdJKobZeSNJh+vw72unp0Y8zaAUygjzvzSToxN3I5FxhaeCKk7CFoyJ/34Ie6w2VT4BE4gUWDAXAsrUSihVxtUCqe9jZ0wSCpA8KfgIBxPWnypBFnfisbzP3a8XgnQtNs3ezv300g/QrtUZaeIqmPsEUh/rC7/zWM0Kk=; 7:nkyxTvkiuucrjOv7G9I+2A8RCNrtOm5BhX9pZkCeE9zeNTAJfG+UYa9DyDY6w+IDWMdoTl5dOZYCDrNFJyvPlPyCvALuKhOdQT+LO6gJbZHjbMAygitft6T22hOGAb/qXxQI1D5BfIasX9N2cJOGnw== x-ms-office365-filtering-correlation-id: 82026d08-e479-46cb-65af-08d665b2764a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB3168; x-ms-traffictypediagnostic: VI1PR04MB3168: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(999002)(6040522)(2401047)(8121501046)(5005006)(3231475)(944501520)(52105112)(93006095)(93001095)(3002001)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:VI1PR04MB3168; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB3168; x-forefront-prvs: 0891BC3F3D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(39860400002)(376002)(366004)(346002)(189003)(199004)(78486014)(305945005)(25786009)(44832011)(2616005)(7736002)(476003)(446003)(11346002)(5660300001)(6436002)(6486002)(478600001)(14444005)(256004)(486006)(36756003)(68736007)(53936002)(316002)(110136005)(6512007)(99286004)(54906003)(55236004)(6506007)(76176011)(186003)(52116002)(386003)(26005)(14454004)(102836004)(53546011)(6246003)(4326008)(4744004)(66066001)(81166006)(81156014)(8676002)(71190400001)(2501003)(8936002)(31696002)(3846002)(6116002)(71200400001)(229853002)(2906002)(86362001)(106356001)(97736004)(105586002)(31686004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB3168; H:VI1PR04MB4893.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: ix+qeuZ7qktlxt0pVGKF5rBPpxCS2Sdij/80RBu/ijAcPy2MS572bHND9Nl15MP0xoaM1ACxhYFHwz+yW5PEaaXWCwcQfPxbqLTfO0cXPc199rpL8pwsVgxfrX4ZG+4YyKYv7Fg2bm0YSweD3Ez+FA6iV5QvKOtygm3vXsDQDKx9+KvHOVCjWK8VWYikZrclSj33GWXMBice6qVb/BZsR1brpIiYfWIgP1YKR9zjNwjyMP7zMPZ7YCPQvMX6pCvdmaoZJizUY8E0S/eVKH6LSuuoilcXY/kiYmp8LLBUC0Pul3xgkJRh5Dus0ZyfX7cF spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <41C43CB563F07743BC651B47E9EEFBFF@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82026d08-e479-46cb-65af-08d665b2764a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2018 13:04:08.7769 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3168 Subject: Re: [dpdk-dev] [PATCH v4 05/10] ipsec: add SA data-path API 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: , X-List-Received-Date: Wed, 19 Dec 2018 13:04:10 -0000 SGkgS29uc3RhbnRpbiwNCg0KU29ycnkgZm9yIGEgbGF0ZSByZXZpZXcuIEkgd2FzIG9uIHVucGxh bm5lZCBsZWF2ZSBmb3IgbW9yZSB0aGFuIDIgd2Vla3MuDQoNCk9uIDEyLzE0LzIwMTggOTo1MyBQ TSwgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiBJbnRyb2R1Y2UgU2VjdXJpdHkgQXNzb2Np YXRpb24gKFNBLWxldmVsKSBkYXRhLXBhdGggQVBJDQo+IE9wZXJhdGVzIGF0IFNBIGxldmVsLCBw cm92aWRlcyBmdW5jdGlvbnMgdG86DQo+ICAgICAgLSBpbml0aWFsaXplL3RlYXJkb3duIFNBIG9i amVjdA0KPiAgICAgIC0gcHJvY2VzcyBpbmJvdW5kL291dGJvdW5kIEVTUC9BSCBwYWNrZXRzIGFz c29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gU0ENCj4gICAgICAgIChkZWNyeXB0L2VuY3J5cHQsIGF1 dGhlbnRpY2F0ZSwgY2hlY2sgaW50ZWdyaXR5LA0KPiAgICAgICAgYWRkL3JlbW92ZSBFU1AvQUgg cmVsYXRlZCBoZWFkZXJzIGFuZCBkYXRhLCBldGMuKS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogTW9o YW1tYWQgQWJkdWwgQXdhbCA8bW9oYW1tYWQuYWJkdWwuYXdhbEBpbnRlbC5jb20+DQo+IFNpZ25l ZC1vZmYtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNv bT4NCj4gQWNrZWQtYnk6IERlY2xhbiBEb2hlcnR5IDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+ DQo+IC0tLQ0KPiAgIGxpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAy ICsNCj4gICBsaWIvbGlicnRlX2lwc2VjL21lc29uLmJ1aWxkICAgICAgICAgICB8ICAgNCArLQ0K PiAgIGxpYi9saWJydGVfaXBzZWMvcnRlX2lwc2VjLmggICAgICAgICAgIHwgMTUxICsrKysrKysr KysrKysrKysrKysrKysrKysNCj4gICBsaWIvbGlicnRlX2lwc2VjL3J0ZV9pcHNlY192ZXJzaW9u Lm1hcCB8ICAgMyArDQo+ICAgbGliL2xpYnJ0ZV9pcHNlYy9zYS5jICAgICAgICAgICAgICAgICAg fCAgMjEgKysrLQ0KPiAgIGxpYi9saWJydGVfaXBzZWMvc2EuaCAgICAgICAgICAgICAgICAgIHwg ICA0ICsNCj4gICBsaWIvbGlicnRlX2lwc2VjL3Nlcy5jICAgICAgICAgICAgICAgICB8ICA0NSAr KysrKysrKw0KPiAgIDcgZmlsZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfaXBzZWMvcnRlX2lwc2Vj LmgNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9pcHNlYy9zZXMuYw0KPg0KPiBk aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9NYWtlZmlsZSBiL2xpYi9saWJydGVfaXBzZWMv TWFrZWZpbGUNCj4gaW5kZXggNzc1OGRjYzZkLi43OWYxODdmYWUgMTAwNjQ0DQo+IC0tLSBhL2xp Yi9saWJydGVfaXBzZWMvTWFrZWZpbGUNCj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9NYWtlZmls ZQ0KPiBAQCAtMTcsOCArMTcsMTAgQEAgTElCQUJJVkVSIDo9IDENCj4gICANCj4gICAjIGFsbCBz b3VyY2UgYXJlIHN0b3JlZCBpbiBTUkNTLXkNCj4gICBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVf SVBTRUMpICs9IHNhLmMNCj4gK1NSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9JUFNFQykgKz0gc2Vz LmMNCj4gICANCj4gICAjIGluc3RhbGwgaGVhZGVyIGZpbGVzDQo+ICtTWU1MSU5LLSQoQ09ORklH X1JURV9MSUJSVEVfSVBTRUMpLWluY2x1ZGUgKz0gcnRlX2lwc2VjLmgNCj4gICBTWU1MSU5LLSQo Q09ORklHX1JURV9MSUJSVEVfSVBTRUMpLWluY2x1ZGUgKz0gcnRlX2lwc2VjX3NhLmgNCj4gICAN Cj4gICBpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiBkaWZmIC0tZ2l0IGEvbGli L2xpYnJ0ZV9pcHNlYy9tZXNvbi5idWlsZCBiL2xpYi9saWJydGVfaXBzZWMvbWVzb24uYnVpbGQN Cj4gaW5kZXggNTJjNzhlYWViLi42ZThjNmZhYmUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVf aXBzZWMvbWVzb24uYnVpbGQNCj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9tZXNvbi5idWlsZA0K PiBAQCAtMyw4ICszLDggQEANCj4gICANCj4gICBhbGxvd19leHBlcmltZW50YWxfYXBpcyA9IHRy dWUNCj4gICANCj4gLXNvdXJjZXM9ZmlsZXMoJ3NhLmMnKQ0KPiArc291cmNlcz1maWxlcygnc2Eu YycsICdzZXMuYycpDQo+ICAgDQo+IC1pbnN0YWxsX2hlYWRlcnMgPSBmaWxlcygncnRlX2lwc2Vj X3NhLmgnKQ0KPiAraW5zdGFsbF9oZWFkZXJzID0gZmlsZXMoJ3J0ZV9pcHNlYy5oJywgJ3J0ZV9p cHNlY19zYS5oJykNCj4gICANCj4gICBkZXBzICs9IFsnbWJ1ZicsICduZXQnLCAnY3J5cHRvZGV2 JywgJ3NlY3VyaXR5J10NCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfaXBzZWMvcnRlX2lwc2Vj LmggYi9saWIvbGlicnRlX2lwc2VjL3J0ZV9pcHNlYy5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMC4uY2JjZDg2MWI1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv bGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWMuaA0KPiBAQCAtMCwwICsxLDE1MSBAQA0KPiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqLw0KPiArDQo+ICsjaWZuZGVmIF9SVEVfSVBT RUNfSF8NCj4gKyNkZWZpbmUgX1JURV9JUFNFQ19IXw0KPiArDQo+ICsvKioNCj4gKyAqIEBmaWxl IHJ0ZV9pcHNlYy5oDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ug d2l0aG91dCBwcmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBSVEUgSVBzZWMgc3VwcG9ydC4NCj4g KyAqIGxpYnJ0ZV9pcHNlYyBwcm92aWRlcyBhIGZyYW1ld29yayBmb3IgZGF0YS1wYXRoIElQc2Vj IHByb3RvY29sDQo+ICsgKiBwcm9jZXNzaW5nIChFU1AvQUgpLg0KPiArICovDQo+ICsNCj4gKyNp bmNsdWRlIDxydGVfaXBzZWNfc2EuaD4NCj4gKyNpbmNsdWRlIDxydGVfbWJ1Zi5oPg0KPiArDQo+ ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK2V4dGVybiAiQyIgew0KPiArI2VuZGlmDQo+ICsNCj4g K3N0cnVjdCBydGVfaXBzZWNfc2Vzc2lvbjsNCj4gKw0KPiArLyoqDQo+ICsgKiBJUHNlYyBzZXNz aW9uIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUgdXNlZCB0bzoNCj4gKyAqIC0gcHJl cGFyZSAtIGZvciBpbnB1dCBtYnVmcyBhbmQgZ2l2ZW4gSVBzZWMgc2Vzc2lvbiBwcmVwYXJlIGNy eXB0byBvcHMNCj4gKyAqICAgdGhhdCBjYW4gYmUgZW5xdWV1ZWQgaW50byB0aGUgY3J5cHRvZGV2 IGFzc29jaWF0ZWQgd2l0aCBnaXZlbiBzZXNzaW9uDQo+ICsgKiAgIChzZWUgKnJ0ZV9pcHNlY19w a3RfY3J5cHRvX3ByZXBhcmUqIGJlbG93IGZvciBtb3JlIGRldGFpbHMpLg0KPiArICogLSBwcm9j ZXNzIC0gZmluYWxpemUgcHJvY2Vzc2luZyBvZiBwYWNrZXRzIGFmdGVyIGNyeXB0by1kZXYgZmlu aXNoZWQNCj4gKyAqICAgd2l0aCB0aGVtIG9yIHByb2Nlc3MgcGFja2V0cyB0aGF0IGFyZSBzdWJq ZWN0cyB0byBpbmxpbmUgSVBzZWMgb2ZmbG9hZA0KPiArICogICAoc2VlIHJ0ZV9pcHNlY19wa3Rf cHJvY2VzcyBmb3IgbW9yZSBkZXRhaWxzKS4NCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9pcHNlY19z YV9wa3RfZnVuYyB7DQo+ICsJdWludDE2X3QgKCpwcmVwYXJlKShjb25zdCBzdHJ1Y3QgcnRlX2lw c2VjX3Nlc3Npb24gKnNzLA0KPiArCQkJCXN0cnVjdCBydGVfbWJ1ZiAqbWJbXSwNCj4gKwkJCQlz dHJ1Y3QgcnRlX2NyeXB0b19vcCAqY29wW10sDQo+ICsJCQkJdWludDE2X3QgbnVtKTsNCj4gKwl1 aW50MTZfdCAoKnByb2Nlc3MpKGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2Vzc2lvbiAqc3MsDQo+ ICsJCQkJc3RydWN0IHJ0ZV9tYnVmICptYltdLA0KPiArCQkJCXVpbnQxNl90IG51bSk7DQo+ICt9 Ow0KPiArDQo+ICsvKioNCj4gKyAqIHJ0ZV9pcHNlY19zZXNzaW9uIGlzIGFuIGFnZ3JlZ2F0ZSBz dHJ1Y3R1cmUgdGhhdCBkZWZpbmVzIHBhcnRpY3VsYXINCj4gKyAqIElQc2VjIFNlY3VyaXR5IEFz c29jaWF0aW9uIElQc2VjIChTQSkgb24gZ2l2ZW4gc2VjdXJpdHkvY3J5cHRvIGRldmljZToNCj4g KyAqIC0gcG9pbnRlciB0byB0aGUgU0Egb2JqZWN0DQo+ICsgKiAtIHNlY3VyaXR5IHNlc3Npb24g YWN0aW9uIHR5cGUNCj4gKyAqIC0gcG9pbnRlciB0byBzZWN1cml0eS9jcnlwdG8gc2Vzc2lvbiwg cGx1cyBvdGhlciByZWxhdGVkIGRhdGENCj4gKyAqIC0gc2Vzc2lvbi9kZXZpY2Ugc3BlY2lmaWMg ZnVuY3Rpb25zIHRvIHByZXBhcmUvcHJvY2VzcyBJUHNlYyBwYWNrZXRzLg0KPiArICovDQo+ICtz dHJ1Y3QgcnRlX2lwc2VjX3Nlc3Npb24gew0KPiArDQpleHRyYSBsaW5lDQo+ICsJLyoqDQo+ICsJ ICogU0EgdGhhdCBzZXNzaW9uIGJlbG9uZ3MgdG8uDQo+ICsJICogTm90ZSB0aGF0IG11bHRpcGxl IHNlc3Npb25zIGNhbiBiZWxvbmcgdG8gdGhlIHNhbWUgU0EuDQo+ICsJICovDQo+ICsJc3RydWN0 IHJ0ZV9pcHNlY19zYSAqc2E7DQo+ICsJLyoqIHNlc3Npb24gYWN0aW9uIHR5cGUgKi8NCj4gKwll bnVtIHJ0ZV9zZWN1cml0eV9zZXNzaW9uX2FjdGlvbl90eXBlIHR5cGU7DQo+ICsJLyoqIHNlc3Np b24gYW5kIHJlbGF0ZWQgZGF0YSAqLw0KPiArCXVuaW9uIHsNCj4gKwkJc3RydWN0IHsNCj4gKwkJ CXN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uICpzZXM7DQo+ICsJCX0gY3J5cHRvOw0K PiArCQlzdHJ1Y3Qgew0KPiArCQkJc3RydWN0IHJ0ZV9zZWN1cml0eV9zZXNzaW9uICpzZXM7DQo+ ICsJCQlzdHJ1Y3QgcnRlX3NlY3VyaXR5X2N0eCAqY3R4Ow0KPiArCQkJdWludDMyX3Qgb2xfZmxh Z3M7DQo+ICsJCX0gc2VjdXJpdHk7DQo+ICsJfTsNCj4gKwkvKiogZnVuY3Rpb25zIHRvIHByZXBh cmUvcHJvY2VzcyBJUHNlYyBwYWNrZXRzICovDQo+ICsJc3RydWN0IHJ0ZV9pcHNlY19zYV9wa3Rf ZnVuYyBwa3RfZnVuYzsNCj4gK30gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gKw0KPiArLyoqDQo+ ICsgKiBDaGVja3MgdGhhdCBpbnNpZGUgZ2l2ZW4gcnRlX2lwc2VjX3Nlc3Npb24gY3J5cHRvL3Nl Y3VyaXR5IGZpZWxkcw0KPiArICogYXJlIGZpbGxlZCBjb3JyZWN0bHkgYW5kIHNldHVwcyBmdW5j dGlvbiBwb2ludGVycyBiYXNlZCBvbiB0aGVzZSB2YWx1ZXMuDQppdCBtZWFucyB1c2VyIG5lZWQg bm90IGZpbGwgcnRlX2lwc2VjX3NhX3BrdF9mdW4sIHNwZWNpZnkgdGhpcyBpbiB0aGUgDQpjb21t ZW50cy4NCj4gKyAqIEBwYXJhbSBzcw0KPiArICogICBQb2ludGVyIHRvIHRoZSAqcnRlX2lwc2Vj X3Nlc3Npb24qIG9iamVjdA0KPiArICogQHJldHVybg0KPiArICogICAtIFplcm8gaWYgb3BlcmF0 aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuDQo+ICsgKiAgIC0gLUVJTlZBTCBpZiB0aGUgcGFy YW1ldGVycyBhcmUgaW52YWxpZC4NCj4gKyAqLw0KPiAraW50IF9fcnRlX2V4cGVyaW1lbnRhbA0K PiArcnRlX2lwc2VjX3Nlc3Npb25fcHJlcGFyZShzdHJ1Y3QgcnRlX2lwc2VjX3Nlc3Npb24gKnNz KTsNCj4gKw0KPiArLyoqDQo+ICsgKiBGb3IgaW5wdXQgbWJ1ZnMgYW5kIGdpdmVuIElQc2VjIHNl c3Npb24gcHJlcGFyZSBjcnlwdG8gb3BzIHRoYXQgY2FuIGJlDQo+ICsgKiBlbnF1ZXVlZCBpbnRv IHRoZSBjcnlwdG9kZXYgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIHNlc3Npb24uDQo+ICsgKiBleHBl Y3RzIHRoYXQgZm9yIGVhY2ggaW5wdXQgcGFja2V0Og0KPiArICogICAgICAtIGwyX2xlbiwgbDNf bGVuIGFyZSBzZXR1cCBjb3JyZWN0bHkNCj4gKyAqIE5vdGUgdGhhdCBlcnJvbmVvdXMgbWJ1ZnMg YXJlIG5vdCBmcmVlZCBieSB0aGUgZnVuY3Rpb24sDQo+ICsgKiBidXQgYXJlIHBsYWNlZCBiZXlv bmQgbGFzdCB2YWxpZCBtYnVmIGluIHRoZSAqbWIqIGFycmF5Lg0KPiArICogSXQgaXMgYSB1c2Vy IHJlc3BvbnNpYmlsaXR5IHRvIGhhbmRsZSB0aGVtIGZ1cnRoZXIuDQpIb3cgd2lsbCB0aGUgdXNl ciBrbm93IGhvdyBtYW55IG1idWZzIGFyZSBjb3JyZWN0bHkgcHJvY2Vzc2VkLg0KPiArICogQHBh cmFtIHNzDQo+ICsgKiAgIFBvaW50ZXIgdG8gdGhlICpydGVfaXBzZWNfc2Vzc2lvbiogb2JqZWN0 IHRoZSBwYWNrZXRzIGJlbG9uZyB0by4NCj4gKyAqIEBwYXJhbSBtYg0KPiArICogICBUaGUgYWRk cmVzcyBvZiBhbiBhcnJheSBvZiAqbnVtKiBwb2ludGVycyB0byAqcnRlX21idWYqIHN0cnVjdHVy ZXMNCj4gKyAqICAgd2hpY2ggY29udGFpbiB0aGUgaW5wdXQgcGFja2V0cy4NCj4gKyAqIEBwYXJh bSBjb3ANCj4gKyAqICAgVGhlIGFkZHJlc3Mgb2YgYW4gYXJyYXkgb2YgKm51bSogcG9pbnRlcnMg dG8gdGhlIG91dHB1dCAqcnRlX2NyeXB0b19vcCoNCj4gKyAqICAgc3RydWN0dXJlcy4NCj4gKyAq IEBwYXJhbSBudW0NCj4gKyAqICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhY2tldHMgdG8gcHJv Y2Vzcy4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgTnVtYmVyIG9mIHN1Y2Nlc3NmdWxseSBwcm9j ZXNzZWQgcGFja2V0cywgd2l0aCBlcnJvciBjb2RlIHNldCBpbiBydGVfZXJybm8uDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QgX19ydGVfZXhwZXJpbWVudGFsDQo+ICtydGVfaXBz ZWNfcGt0X2NyeXB0b19wcmVwYXJlKGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2Vzc2lvbiAqc3Ms DQo+ICsJc3RydWN0IHJ0ZV9tYnVmICptYltdLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqY29wW10s IHVpbnQxNl90IG51bSkNCj4gK3sNCj4gKwlyZXR1cm4gc3MtPnBrdF9mdW5jLnByZXBhcmUoc3Ms IG1iLCBjb3AsIG51bSk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogRmluYWxpc2UgcHJvY2Vz c2luZyBvZiBwYWNrZXRzIGFmdGVyIGNyeXB0by1kZXYgZmluaXNoZWQgd2l0aCB0aGVtIG9yDQo+ ICsgKiBwcm9jZXNzIHBhY2tldHMgdGhhdCBhcmUgc3ViamVjdHMgdG8gaW5saW5lIElQc2VjIG9m ZmxvYWQuDQo+ICsgKiBFeHBlY3RzIHRoYXQgZm9yIGVhY2ggaW5wdXQgcGFja2V0Og0KPiArICog ICAgICAtIGwyX2xlbiwgbDNfbGVuIGFyZSBzZXR1cCBjb3JyZWN0bHkNCj4gKyAqIE91dHB1dCBt YnVmcyB3aWxsIGJlOg0KPiArICogaW5ib3VuZCAtIGRlY3J5cHRlZCAmIGF1dGhlbnRpY2F0ZWQs IEVTUChBSCkgcmVsYXRlZCBoZWFkZXJzIHJlbW92ZWQsDQo+ICsgKiAqbDJfbGVuKiBhbmQgKmwz X2xlbiogZmllbGRzIGFyZSB1cGRhdGVkLg0KPiArICogb3V0Ym91bmQgLSBhcHByb3ByaWF0ZSBt YnVmIGZpZWxkcyAob2xfZmxhZ3MsIHR4X29mZmxvYWRzLCBldGMuKQ0KPiArICogcHJvcGVybHkg c2V0dXAsIGlmIG5lY2Vzc2FyeSAtIElQIGhlYWRlcnMgdXBkYXRlZCwgRVNQKEFIKSBmaWVsZHMg YWRkZWQsDQo+ICsgKiBOb3RlIHRoYXQgZXJyb25lb3VzIG1idWZzIGFyZSBub3QgZnJlZWQgYnkg dGhlIGZ1bmN0aW9uLA0KPiArICogYnV0IGFyZSBwbGFjZWQgYmV5b25kIGxhc3QgdmFsaWQgbWJ1 ZiBpbiB0aGUgKm1iKiBhcnJheS4NCnNhbWUgcXVlc3Rpb24NCj4gKyAqIEl0IGlzIGEgdXNlciBy ZXNwb25zaWJpbGl0eSB0byBoYW5kbGUgdGhlbSBmdXJ0aGVyLg0KPiArICogQHBhcmFtIHNzDQo+ ICsgKiAgIFBvaW50ZXIgdG8gdGhlICpydGVfaXBzZWNfc2Vzc2lvbiogb2JqZWN0IHRoZSBwYWNr ZXRzIGJlbG9uZyB0by4NCj4gKyAqIEBwYXJhbSBtYg0KPiArICogICBUaGUgYWRkcmVzcyBvZiBh biBhcnJheSBvZiAqbnVtKiBwb2ludGVycyB0byAqcnRlX21idWYqIHN0cnVjdHVyZXMNCj4gKyAq ICAgd2hpY2ggY29udGFpbiB0aGUgaW5wdXQgcGFja2V0cy4NCj4gKyAqIEBwYXJhbSBudW0NCj4g KyAqICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhY2tldHMgdG8gcHJvY2Vzcy4NCj4gKyAqIEBy ZXR1cm4NCj4gKyAqICAgTnVtYmVyIG9mIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQgcGFja2V0cywg d2l0aCBlcnJvciBjb2RlIHNldCBpbiBydGVfZXJybm8uDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxp bmUgdWludDE2X3QgX19ydGVfZXhwZXJpbWVudGFsDQo+ICtydGVfaXBzZWNfcGt0X3Byb2Nlc3Mo Y29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zZXNzaW9uICpzcywgc3RydWN0IHJ0ZV9tYnVmICptYltd LA0KPiArCXVpbnQxNl90IG51bSkNCj4gK3sNCj4gKwlyZXR1cm4gc3MtPnBrdF9mdW5jLnByb2Nl c3Moc3MsIG1iLCBudW0pOw0KPiArfQ0KPiArDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30N Cj4gKyNlbmRpZg0KPiArDQo+ICsjZW5kaWYgLyogX1JURV9JUFNFQ19IXyAqLw0KPiBkaWZmIC0t Z2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXAgYi9saWIvbGlicnRl X2lwc2VjL3J0ZV9pcHNlY192ZXJzaW9uLm1hcA0KPiBpbmRleCAxYTY2NzI2YjguLmQxYzUyZDdj YSAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXAN Cj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXANCj4gQEAgLTEs NiArMSw5IEBADQo+ICAgRVhQRVJJTUVOVEFMIHsNCj4gICAJZ2xvYmFsOg0KPiAgIA0KPiArCXJ0 ZV9pcHNlY19wa3RfY3J5cHRvX3ByZXBhcmU7DQo+ICsJcnRlX2lwc2VjX3Nlc3Npb25fcHJlcGFy ZTsNCj4gKwlydGVfaXBzZWNfcGt0X3Byb2Nlc3M7DQphbHBoYWJldGljYWwgb3JkZXIgaW5jb3Jy ZWN0DQo+ICAgCXJ0ZV9pcHNlY19zYV9maW5pOw0KPiAgIAlydGVfaXBzZWNfc2FfaW5pdDsNCj4g ICAJcnRlX2lwc2VjX3NhX3NpemU7DQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2lwc2VjL3Nh LmMgYi9saWIvbGlicnRlX2lwc2VjL3NhLmMNCj4gaW5kZXggZjkyN2E4MmJmLi5lNGM1MzYxZTcg MTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfaXBzZWMvc2EuYw0KPiArKysgYi9saWIvbGlicnRl X2lwc2VjL3NhLmMNCj4gQEAgLTIsNyArMiw3IEBADQo+ICAgICogQ29weXJpZ2h0KGMpIDIwMTgg SW50ZWwgQ29ycG9yYXRpb24NCj4gICAgKi8NCj4gICANCj4gLSNpbmNsdWRlIDxydGVfaXBzZWNf c2EuaD4NCj4gKyNpbmNsdWRlIDxydGVfaXBzZWMuaD4NCj4gICAjaW5jbHVkZSA8cnRlX2VzcC5o Pg0KPiAgICNpbmNsdWRlIDxydGVfaXAuaD4NCj4gICAjaW5jbHVkZSA8cnRlX2Vycm5vLmg+DQo+ IEBAIC0zMjUsMyArMzI1LDIyIEBAIHJ0ZV9pcHNlY19zYV9pbml0KHN0cnVjdCBydGVfaXBzZWNf c2EgKnNhLCBjb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3NhX3BybSAqcHJtLA0KPiAgIA0KPiAgIAly ZXR1cm4gc3o7DQo+ICAgfQ0KPiArDQo+ICtpbnQNCj4gK2lwc2VjX3NhX3BrdF9mdW5jX3NlbGVj dChjb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3Nlc3Npb24gKnNzLA0KPiArCWNvbnN0IHN0cnVjdCBy dGVfaXBzZWNfc2EgKnNhLCBzdHJ1Y3QgcnRlX2lwc2VjX3NhX3BrdF9mdW5jICpwZikNCj4gK3sN Cj4gKwlpbnQzMl90IHJjOw0KPiArDQo+ICsJUlRFX1NFVF9VU0VEKHNhKTsNCj4gKw0KPiArCXJj ID0gMDsNCj4gKwlwZlswXSA9IChzdHJ1Y3QgcnRlX2lwc2VjX3NhX3BrdF9mdW5jKSB7IDAgfTsN Cj4gKw0KPiArCXN3aXRjaCAoc3MtPnR5cGUpIHsNCj4gKwlkZWZhdWx0Og0KPiArCQlyYyA9IC1F Tk9UU1VQOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiByYzsNCj4gK30NCklzIHRoaXMgYSBkdW1t eSBmdW5jdGlvbj8gV2lsbCBpdCBiZSB1cGRhdGVkIGxhdGVyPyBJIGJlbGlldmUgc2hvdWxkIA0K aGF2ZSBhcHByb3ByaWF0ZSBjb21tZW50cyBpbiB0aGF0IGNhc2UuDQo+IGRpZmYgLS1naXQgYS9s aWIvbGlicnRlX2lwc2VjL3NhLmggYi9saWIvbGlicnRlX2lwc2VjL3NhLmgNCj4gaW5kZXggNWQx MTM4OTFhLi4wNTBhNmQ3YWUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfaXBzZWMvc2EuaA0K PiArKysgYi9saWIvbGlicnRlX2lwc2VjL3NhLmgNCj4gQEAgLTc0LDQgKzc0LDggQEAgc3RydWN0 IHJ0ZV9pcHNlY19zYSB7DQo+ICAgDQo+ICAgfSBfX3J0ZV9jYWNoZV9hbGlnbmVkOw0KPiAgIA0K PiAraW50DQo+ICtpcHNlY19zYV9wa3RfZnVuY19zZWxlY3QoY29uc3Qgc3RydWN0IHJ0ZV9pcHNl Y19zZXNzaW9uICpzcywNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3NhICpzYSwgc3RydWN0 IHJ0ZV9pcHNlY19zYV9wa3RfZnVuYyAqcGYpOw0KPiArDQo+ICAgI2VuZGlmIC8qIF9TQV9IXyAq Lw0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9zZXMuYyBiL2xpYi9saWJydGVfaXBz ZWMvc2VzLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwLi41NjJj MTQyM2UNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvbGlicnRlX2lwc2VjL3Nlcy5jDQo+ IEBAIC0wLDAgKzEsNDUgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1D bGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDE4IEludGVsIENvcnBvcmF0aW9uDQo+ICsgKi8N Cj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9pcHNlYy5oPg0KPiArI2luY2x1ZGUgInNhLmgiDQo+ICsN Cj4gK3N0YXRpYyBpbnQNCj4gK3Nlc3Npb25fY2hlY2soc3RydWN0IHJ0ZV9pcHNlY19zZXNzaW9u ICpzcykNCj4gK3sNCj4gKwlpZiAoc3MgPT0gTlVMTCB8fCBzcy0+c2EgPT0gTlVMTCkNCj4gKwkJ cmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwlpZiAoc3MtPnR5cGUgPT0gUlRFX1NFQ1VSSVRZX0FD VElPTl9UWVBFX05PTkUpIHsNCj4gKwkJaWYgKHNzLT5jcnlwdG8uc2VzID09IE5VTEwpDQo+ICsJ CQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9IGVsc2UgaWYgKHNzLT5zZWN1cml0eS5zZXMgPT0gTlVM TCB8fCBzcy0+c2VjdXJpdHkuY3R4ID09IE5VTEwpDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiAr DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK2ludCBfX3J0ZV9leHBlcmltZW50YWwNCj4g K3J0ZV9pcHNlY19zZXNzaW9uX3ByZXBhcmUoc3RydWN0IHJ0ZV9pcHNlY19zZXNzaW9uICpzcykN Cj4gK3sNCj4gKwlpbnQzMl90IHJjOw0KPiArCXN0cnVjdCBydGVfaXBzZWNfc2FfcGt0X2Z1bmMg ZnA7DQo+ICsNCj4gKwlyYyA9IHNlc3Npb25fY2hlY2soc3MpOw0KPiArCWlmIChyYyAhPSAwKQ0K PiArCQlyZXR1cm4gcmM7DQo+ICsNCj4gKwlyYyA9IGlwc2VjX3NhX3BrdF9mdW5jX3NlbGVjdChz cywgc3MtPnNhLCAmZnApOw0KPiArCWlmIChyYyAhPSAwKQ0KPiArCQlyZXR1cm4gcmM7DQo+ICsN Cj4gKwlzcy0+cGt0X2Z1bmMgPSBmcDsNCj4gKw0KPiArCWlmIChzcy0+dHlwZSA9PSBSVEVfU0VD VVJJVFlfQUNUSU9OX1RZUEVfTk9ORSkNCj4gKwkJc3MtPmNyeXB0by5zZXMtPm9wYXF1ZV9kYXRh ID0gKHVpbnRwdHJfdClzczsNCj4gKwllbHNlDQo+ICsJCXNzLT5zZWN1cml0eS5zZXMtPm9wYXF1 ZV9kYXRhID0gKHVpbnRwdHJfdClzczsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KDQo=