From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0065.outbound.protection.outlook.com [104.47.2.65]) by dpdk.org (Postfix) with ESMTP id CC50A2A5D for ; Tue, 5 Dec 2017 07:39:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Fs1uWN3WiiUtdYQb2zY3PUlYSShdKF3MbfEShe10w1A=; b=KfRubUvH4BeJNDDTBKRbyDUk77eAQ5tkQsdatxCSIQ88bUeUgDbO2MuR2ZYXr/YtedMIMHbqAV+cBlhV+kQHOQcnhd5Dy+HNSCqvJjgTpVMC9zMvRBly5O/qTthgr4esgr0muI/FH/Af7XMvTlw0o5ORRBb+uCxwR95VF/mtahw= Received: from VI1PR05MB3149.eurprd05.prod.outlook.com (10.170.237.142) by VI1PR05MB3150.eurprd05.prod.outlook.com (10.170.237.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.5; Tue, 5 Dec 2017 06:39:27 +0000 Received: from VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::3905:ed70:f744:9dc6]) by VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::3905:ed70:f744:9dc6%13]) with mapi id 15.20.0260.007; Tue, 5 Dec 2017 06:39:26 +0000 From: Shahaf Shuler To: Ferruh Yigit , "jingjing.wu@intel.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH 1/5] app/testpmd: convert to new Ethdev offloads API Thread-Index: AQHTbU+Uubi5gepl1kSobjDEzi5HFKM0Q/FA Date: Tue, 5 Dec 2017 06:39:26 +0000 Message-ID: References: <20171123120804.143897-1-shahafs@mellanox.com> <20171123120804.143897-2-shahafs@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-originating-ip: [31.154.10.107] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB3150; 6:1KSI00fQq9fpNfvY4lhttqSy0WtSM+vzVEu4PINctz/OBPUv4NZU8k0+MycP7TxZzpJ0CqgL3UQjiOvFXEOZz29Bon0au2tjBG60T0m4fskDJdbWb6e7CzMMTOK4A2NYnMCGZXseC8OAmSu8s9iSNqSZW4akvwECq4xhsOJhq9W0LoXBnW9Q2+RX4ldptA/YtKK2D+kiK4iEHck/hE8b/eXBVo2/KV2/nDErTmkos1Phx5ld9KmKH1c6kTAYPnFpowWq0hZsMXp9S6BkQsA7+TJ1OomH2pxzr+Qs8z4o+r1sCYUwciwWTlfsm9FfBzGyEK2SaJlhViZxTLlbnN4ZN8Qu6sPnLFoP8aVxe6zDawM=; 5:cysSQx9CrYVRR+ASX/nWZIJmf2PgQvsfKraj0+HDZ+7/KxTy1D7zr4qmrDh+zULS1SQbD+OC6bks2Mchl03/8wFNNvQgd2JVuSLv5hbnBsRS6R5gHjph+f5tDRgEt5oYEkgzHHjEOmK1rebI/rncQqmLdwRssywNnZw+ukr2efQ=; 24:uISidoUNesfUT6RAW4PUcDOPiK95UcP/qiNzd0QJF6dqeA8dYcQVegPwo///59qEkAs5ofkRq2pq5vWg/Nhc5M6ecrbtZvt2ZAW1k0x27tw=; 7:VU+wltQrBq9Js+d8M2X8qGRZDwEP70+HAktlKDLX+7dIv/nlWOz+5YrLLK1EEbFiFdQsxsSr4UBvqtRCL9DcdQkxvXuS3LWJNPLPHpQx7MDQP/wStfo2j/2wKkM/QrHdm4trHkzm0ZkbF5bge+D+j1w0unKJHDe7wRWXBdkb+812OxyA9TSvl6lAcskPL6EDkYzvqQfbX+J1rR9Fw/K6vcUu9ZeULAslqm5v5eKU03r1BF+cqLAim89JwqwZyeHe x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: edf2a2f5-1adf-4dc8-014f-08d53baaee2d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286); SRVR:VI1PR05MB3150; x-ms-traffictypediagnostic: VI1PR05MB3150: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(3231022)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR05MB3150; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR05MB3150; x-forefront-prvs: 0512CC5201 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(39860400002)(376002)(366004)(199003)(189002)(24454002)(76104003)(229853002)(25786009)(6436002)(66066001)(8676002)(7696005)(7736002)(74316002)(6506006)(99286004)(55016002)(305945005)(316002)(54356011)(110136005)(86362001)(76176011)(8936002)(2501003)(97736004)(5250100002)(53546010)(2950100002)(14454004)(106356001)(478600001)(5660300001)(101416001)(105586002)(2900100001)(3660700001)(2906002)(33656002)(3280700002)(3846002)(6116002)(102836003)(189998001)(53936002)(9686003)(81166006)(81156014)(68736007)(4326008)(6246003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB3150; H:VI1PR05MB3149.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: edf2a2f5-1adf-4dc8-014f-08d53baaee2d X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2017 06:39:26.7480 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB3150 Subject: Re: [dpdk-dev] [PATCH 1/5] app/testpmd: convert to new Ethdev offloads 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: Tue, 05 Dec 2017 06:39:29 -0000 VHVlc2RheSwgRGVjZW1iZXIgNSwgMjAxNyAxMjozMSBBTSwgRmVycnVoIFlpZ2l0Og0KPiBPbiAx MS8yMy8yMDE3IDQ6MDggQU0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6DQo+ID4gRXRoZGV2IFJ4L1R4 IG9mZmxvYWRzIEFQSSBoYXMgY2hhbmdlZCBzaW5jZToNCj4gPg0KPiA+IGNvbW1pdCBjZTE3ZWRk ZWZjMjAgKCJldGhkZXY6IGludHJvZHVjZSBSeCBxdWV1ZSBvZmZsb2FkcyBBUEkiKSBjb21taXQN Cj4gPiBjYmE3ZjUzYjcxN2QgKCJldGhkZXY6IGludHJvZHVjZSBUeCBxdWV1ZSBvZmZsb2FkcyBB UEkiKQ0KPiA+DQo+ID4gQ29udmVydCB0aGUgYXBwbGljYXRpb24gdG8gdXNlIHRoZSBuZXcgQVBJ Lg0KPiANCj4gSGkgU2hhaGFmLA0KPiANCj4gQXMgZmFyIGFzIEkgY2FuIHNlZSBwYXRjaCBkb2Vz IGEgZmV3IHRoaW5nczoNCj4gMS0gQ29udmVydCByeG1vZGUgYml0ZmllbGRzIHVzYWdlIHRvIHJ4 bW9kZSBvZmZsb2FkcyB1c2FnZS4NCj4gMi0gQXBwbHkgc29tZSBjb25maWcgb3B0aW9ucyB0byBw b3J0IGNvbmZpZyBhbmQgYWRkIHNvbWUgcG9ydCBjb25maWcgY2hlY2tzLg0KPiAzLSBBZGRpbmcg ZGV2aWNlIGFkdmVydGlzZWQgY2FwYWJpbGl0eSBjaGVja3MgZm9yIHNvbWUgb2ZmbG9hZHMuDQo+ IA0KPiBXb3VsZCB5b3UgbWluZCBzZXBhcmF0ZSAyIGFuZCAzIHRvIHRoZWlyIG93biBwYXRjaGVz LCB3aXRoIHRoYXQgMSBzaG91bGQgYmUNCj4gc3RyYWlnaHRmb3J3YXJkIGFuZCAyICYgMyB3aWxs IGJlIGVhc3kgdG8gcmV2aWV3Lg0KDQpTZWUgYmVsb3cgY29tbWVudHMuICMyIG9uIHlvdXIgbGlz dCBpcyBhY3R1YWxseSBuZWVkZWQgZm9yIHRoZSBjb252ZXJzaW9uIHBhdGNoLg0KSSBjYW4gc3Bs aXQgdGhlIGV4dHJhIGNhcCBjaGVjayBpZiB5b3UgZmlsbCBpdCBuZWVkcyB0byBiZSBpbiBhIHNl cGFyYXRlIHBhdGNoLiANCg0KPiANCj4gDQo+IEFuZCBpcyB0aGlzIHVwZGF0ZSB0ZXN0ZWQgd2l0 aCBQTURzIGJvdGggc3VwcG9ydCBuZXcgb2ZmbG9hZCBtZXRob2QgYW5kDQo+IG9sZCBvZmZsb2Fk IG1ldGhvZD8NCg0KSXQgd2FzIHRlc3RlZCB3aXRoIG1seDUgYW5kIG1seDQgUE1EIGFmdGVyIHRo ZSBjb252ZXJzaW9uIHRvIHRoZSBuZXcgQVBJcy4NCkkgcHV0IHRoaXMgc2VyaWVzIGVhcmx5IHNv IGV2ZXJ5b25lIGNhbiB0cnksIHRlc3QgYW5kIHJlcG9ydCBpZiBzb21ldGhpbmcgaXMgYnJva2Vu LiANCkkgd2lsbCB0cnkgdG8gZG8gbW9yZSB0ZXN0aW5nIHdpdGggdGhlIG9sZCBtbHggUE1ELg0K DQpCVFcgLSB3ZSBhZ3JlZWQgdGhhdCB3ZSBzZXQgREQgZm9yIGFsbCBQTURzIHRvIG1vdmUgdG8g dGhlIG5ldyBBUEkgYnkgMTguMDIuIEkgc3RpbGwgaGF2ZW4ndCBzZWUgcGF0Y2hlcyBmb3IgdGhh dCBmcm9tIHRoZSByZXN0LiANCg0KPiANCj4gVGhhbmtzLA0KPiBmZXJydWgNCj4gDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4g DQo+IDwuLi4+DQo+IA0KPiA+ICAJfSBlbHNlIGlmICghc3RyY21wKHJlcy0+bmFtZSwgImh3LXZs YW4tZXh0ZW5kIikpIHsNCj4gPiAgCQlpZiAoIXN0cmNtcChyZXMtPnZhbHVlLCAib24iKSkNCj4g PiAtCQkJcnhfbW9kZS5od192bGFuX2V4dGVuZCA9IDE7DQo+ID4gKwkJCXJ4X29mZmxvYWRzIHw9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EOw0KPiANCj4gTm90IHJlbGF0ZWQgdG8gdGhpcyBw YXRjaCwgYnV0IHNpbmNlIHlvdSBhcmUgdG91Y2hpbmcgdGhlc2UsIHdoYXQgaXMgdGhlDQo+IGRp ZmZlcmVuY2UgYmV0d2VlbiBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCBhbmQNCj4gREVWX1JY X09GRkxPQURfUUlOUV9TVFJJUCA/DQoNCkdvb2QgcXVlc3Rpb24sIEkgY291bGQgbm90IGZpZ3Vy ZSBpdCBvdXQgZWl0aGVyLg0KSSBndWVzcyB0aG9zZSBhcmUgaWRlbnRpY2FsLiBJbiB0aGUgb2xk IEFQSSB0aGUgaHdfdmxhbl9leHRlbmQgd2FzIHRoZSBvZmZsb2FkIGFuZCB0aGUgREVWX1JYX09G RkxPQURfUUlOUV9TVFJJUCB3YXMgdGhlIGNhcC4NCk5vdyB0aGF0IHdlIG1lcmdlZCB0aGVtIHdl IGhhdmUgZHVwbGljYXRpb24uIA0KDQpGcm9tIG9uZSBzaWRlLCB1c2luZyBERVZfUlhfT0ZGTE9B RF9WTEFOX0VYVEVORCBpcyBtb3JlIGludHVpdGl2ZSBmb3IgYXBwbGljYXRpb24gd2hpY2ggcHJl dmlvdXNseSB1c2VkIGh3X3ZsYW5fZXh0ZW5kIHRvIHNldCB0aGUgb2ZmbG9hZCwNCkZvciB0aGUg b3RoZXIgc2lkZSBRSU5RX1NUUklQIGlzIG1vcmUgZXhwbGljaXQgd2l0aCByZXNwZWN0IHRvIHdo YXQgdGhlIGZlYXR1cmUgZG9lcywgYW5kIGl0IGlzIHRoZSBmbGFnIHdoaWNoIGlzIGN1cnJlbnRs eSBiZWluZyB1c2VkIGZvciBQTURzLg0KDQpTbyB3aGVuIHdlIHdpbGwgY2hhbmdlIGl0LCBJIGd1 ZXNzIEkgYW0gaW4gZmF2b3Igb2YgdGhlIFFJTlEgZmxhZy4gDQoNCj4gDQo+ID4gQEAgLTM0MzQs NyArMzQzOSwxNCBAQCBjbWRfdHhfdmxhbl9zZXRfcGFyc2VkKHZvaWQgKnBhcnNlZF9yZXN1bHQs DQo+IHsNCj4gPiAgCXN0cnVjdCBjbWRfdHhfdmxhbl9zZXRfcmVzdWx0ICpyZXMgPSBwYXJzZWRf cmVzdWx0Ow0KPiA+DQo+ID4gKwlpZiAoIWFsbF9wb3J0c19zdG9wcGVkKCkpIHsNCj4gPiArCQlw cmludGYoIlBsZWFzZSBzdG9wIGFsbCBwb3J0cyBmaXJzdFxuIik7DQo+ID4gKwkJcmV0dXJuOw0K PiA+ICsJfQ0KPiANCj4gcnRlX2V0aF9yeG1vZGUgYml0ZmllbGRzIHRvICJvZmZsb2FkcyIgY29u dmVyc2lvbiBpcyBtb3N0bHkgc3RyYWlnaHRmb3J3YXJkLA0KPiBidXQgaXMgYWJvdmUga2luZCBv ZiBtb2RpZmljYXRpb25zIHBhcnQgb2YgdGhpcyBjb252ZXJzaW9uIG9yIGFyZSB5b3UgYWRkaW5n DQo+IG1pc3NpbmcgY2hlY2tzPw0KDQpJdCBpcyBwYXJ0IG9mIHRoZSBjb252ZXJzaW9uIGFuZCB0 aGlzIGlzIHJlbGF0ZWQgdG8gdGVzdHBtZCBkZXNpZ24uDQoNClByZXZpb3VzbHkgaW4gdGhlIG9s ZCBBUEkgdGhlIHR4IG9mZmxvYWRzIHdlcmUgc2V0IGV2ZW4gYWZ0ZXIgdGhlIHBvcnQgaXMgc3Rh cnRlZC4gRm9yIHRoaXMgc3BlY2lmaWMgZXhhbXBsZSB0aGUgdmxhbiBpbnNlcnQganVzdCBjaGFu Z2VkIGEgZmxhZyAoVEVTVFBNRF9UWF9PRkZMT0FEX0lOU0VSVF9WTEFOKSBvbiB0aGUgYXBwbGlj YXRpb24gcG9ydCBzdHJ1Y3QgdG8gdXNlIFBLVF9UWF9WTEFOX1BLVCBpbiB0aGUgbWJ1ZiBvbF9m bGFncy4gVGhlIGFwcGxpY2F0aW9uIGRpZG4ndCB1cGRhdGUgdGhlIFBNRCBpbiBhbnl3YXkuIElu IGZhY3QsIGl0IHdhcyBwb3NzaWJsZSB0byBwdXQgdHhxX2ZsYWcgd2hpY2ggc2F5cyBubyB2bGFu IGluc2VydGlvbiBhbmQgdGhlbiB0byBzZXQgdmxhbiBpbnNlcnRpb24gdGhyb3VnaCB0aGUgQ0xJ Lg0KVGhpcyB3YXMgT0sgYmFjayB0aGVuIGJlY2F1c2UgYWxsIG9mIHRoZSBUeCBvZmZsb2FkcyB3 ZXJlIHNldCBieSBkZWZhdWx0IGFuZCB3ZSBhc3N1bWVkIHVzZXJzIGtub3cgd2hhdCB0aGV5IGFy ZSBkb2luZyB3aGVuIHNldHRpbmcgdGhlIHR4cV9mbGFncy4NCg0KTm93IGFsbCB0aGUgdHggb2Zm bG9hZHMgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuIEV2ZXJ5IFR4IG9mZmxvYWQgYmVpbmcgdXNl ZCBzaG91bGQgdXBkYXRlIHRoZSBQTUQgKGFzIGl0IG1heSBuZWVkIHRvIHN3aXRjaCB0eCBidXJz dCBmdW5jdGlvbikuIFRoaXMgaXMgd2h5IHRoZSBUeCBvZmZsb2FkcyBjb25maWd1cmF0aW9uIG11 c3QgYmUgZG9uZSB3aGVuIHRoZSBwb3J0IGlzIHN0b3BwZWQsIGFuZCBiZSBmb2xsb3dlZCB3aXRo IHJlY29uZmlndXJhdGlvbiBvZiB0aGUgZGV2aWNlIGFuZCB0aGUgcXVldWVzLg0KDQo+IA0KPiBJ IHdvdWxkIHByZWZlciBtYWtpbmcgb25seSBjb252ZXJzaW9uIHJlbGF0ZWQgY2hhbmdlcyBpbiB0 aGlzIHBhdGNoLCBhbmQNCj4gZXh0cmEgaW1wcm92ZW1lbnRzIGluIG90aGVyIHBhdGNoLg0KPiAN Cj4gPiArDQo+ID4gIAl0eF92bGFuX3NldChyZXMtPnBvcnRfaWQsIHJlcy0+dmxhbl9pZCk7DQo+ ID4gKw0KPiA+ICsJY21kX3JlY29uZmlnX2RldmljZV9xdWV1ZShSVEVfUE9SVF9BTEwsIDEsIDEp Ow0KPiANCj4gSXMgdGhpcyByZXF1aXJlZCBmb3IgY29udmVydGluZyBiaXRmaWVsZCB0byBvZmZs b2FkcyB1c2FnZT8NCg0KWWVzLCBzZWUgYWJvdmUuIA0KDQo+IA0KPiA+ICB9DQo+ID4NCj4gPiAg Y21kbGluZV9wYXJzZV90b2tlbl9zdHJpbmdfdCBjbWRfdHhfdmxhbl9zZXRfdHhfdmxhbiA9IEBA IC0zNDgxLDcNCj4gPiArMzQ5MywxNCBAQCBjbWRfdHhfdmxhbl9zZXRfcWlucV9wYXJzZWQodm9p ZCAqcGFyc2VkX3Jlc3VsdCwgIHsNCj4gPiAgCXN0cnVjdCBjbWRfdHhfdmxhbl9zZXRfcWlucV9y ZXN1bHQgKnJlcyA9IHBhcnNlZF9yZXN1bHQ7DQo+ID4NCj4gPiArCWlmICghYWxsX3BvcnRzX3N0 b3BwZWQoKSkgew0KPiA+ICsJCXByaW50ZigiUGxlYXNlIHN0b3AgYWxsIHBvcnRzIGZpcnN0XG4i KTsNCj4gPiArCQlyZXR1cm47DQo+ID4gKwl9DQo+IA0KPiBTYW1lIGZvciBhbGwgb2NjdXJyZW5j ZSBvZiB0aGVzZSB1cGRhdGVzLg0KPiANCj4gPC4uLj4NCj4gDQo+ID4gQEAgLTM2OTMsMjIgKzM3 MjQsMzQgQEAgY21kX2NzdW1fcGFyc2VkKHZvaWQgKnBhcnNlZF9yZXN1bHQsDQo+ID4NCj4gPiAg CQlpZiAoIXN0cmNtcChyZXMtPnByb3RvLCAiaXAiKSkgew0KPiA+ICAJCQltYXNrID0gVEVTVFBN RF9UWF9PRkZMT0FEX0lQX0NLU1VNOw0KPiA+ICsJCQljc3VtX29mZmxvYWRzIHw9IERFVl9UWF9P RkZMT0FEX0lQVjRfQ0tTVU07DQo+ID4gIAkJfSBlbHNlIGlmICghc3RyY21wKHJlcy0+cHJvdG8s ICJ1ZHAiKSkgew0KPiA+ICAJCQltYXNrID0gVEVTVFBNRF9UWF9PRkZMT0FEX1VEUF9DS1NVTTsN Cj4gPiArCQkJY3N1bV9vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU07DQo+ID4g IAkJfSBlbHNlIGlmICghc3RyY21wKHJlcy0+cHJvdG8sICJ0Y3AiKSkgew0KPiA+ICAJCQltYXNr ID0gVEVTVFBNRF9UWF9PRkZMT0FEX1RDUF9DS1NVTTsNCj4gPiArCQkJY3N1bV9vZmZsb2FkcyB8 PSBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07DQo+ID4gIAkJfSBlbHNlIGlmICghc3RyY21wKHJl cy0+cHJvdG8sICJzY3RwIikpIHsNCj4gPiAgCQkJbWFzayA9IFRFU1RQTURfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNOw0KPiA+ICsJCQljc3VtX29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX1NDVFBf Q0tTVU07DQo+ID4gIAkJfSBlbHNlIGlmICghc3RyY21wKHJlcy0+cHJvdG8sICJvdXRlci1pcCIp KSB7DQo+ID4gIAkJCW1hc2sgPSBURVNUUE1EX1RYX09GRkxPQURfT1VURVJfSVBfQ0tTVU07DQo+ ID4gKwkJCWNzdW1fb2ZmbG9hZHMgfD0NCj4gREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TTsNCj4gPiAgCQl9DQo+ID4NCj4gPiAtCQlpZiAoaHcpDQo+ID4gKwkJaWYgKGh3KSB7DQo+ID4g IAkJCXBvcnRzW3Jlcy0+cG9ydF9pZF0udHhfb2xfZmxhZ3MgfD0gbWFzazsNCj4gPiAtCQllbHNl DQo+ID4gKwkJCXBvcnRzW3Jlcy0+cG9ydF9pZF0uZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9 DQo+ID4gKwkJCQkJCQljc3VtX29mZmxvYWRzOw0KPiANCj4gU28geW91IGFyZSB1cGRhdGluZyBw b3J0IGNvbmZpZyBhcyB3ZWxsIGFzIHRlc3RwbWQgaW50ZXJuYWwgY29uZmlndXJhdGlvbiwNCj4g YWdhaW4gSSBndWVzcyB0aGlzIGlzIG5vdCByZWxhdGVkIHRvIGNvbnZlcnNpb24gdG8gb2ZmbG9h ZHMgdXNhZ2UuDQoNCkl0IGlzLiBTZWUgYWJvdmUuDQpUaGUgcG9ydCBjb25maWcgd2lsbCBiZSB1 c2VkIGZvciB0aGUgcmVjb25maWd1cmF0aW9uIG9mIHRoZSBkZXZpY2UgYW5kIHF1ZXVlcy4gVGhp cyBpcyBhIG11c3QgZm9yIHRoZSBUeCBvZmZsb2FkcyAuIA0KDQo+IA0KPiA8Li4uPg0KPiANCj4g PiBAQCAtMTMwMTcsNiArMTMwOTMsMTMgQEAgY21kX3NldF9tYWNzZWNfb2ZmbG9hZF9vbl9wYXJz ZWQoDQo+ID4NCj4gPiAgCXN3aXRjaCAocmV0KSB7DQo+ID4gIAljYXNlIDA6DQo+ID4gKwkJcnRl X2V0aF9kZXZfaW5mb19nZXQocG9ydF9pZCwgJmRldl9pbmZvKTsNCj4gPiArCQlpZiAoKGRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSAmDQo+ID4gKwkJICAgICBERVZfVFhfT0ZGTE9BRF9NQUNTRUNf SU5TRVJUKSA9PSAwKSB7DQo+ID4gKwkJCXByaW50ZigiV2FybmluZzogbWFjc2VjIGluc2VydCBl bmFibGVkIGJ1dCBub3QgIg0KPiA+ICsJCQkJInN1cHBvcnRlZCBieSBwb3J0ICVkXG4iLCBwb3J0 X2lkKTsNCj4gPiArCQl9DQo+IA0KPiBUaGlzIGFsc28gYWRkaW5nIGFub3RoZXIgbGF5ZXIgb2Yg Y2hlY2sgaWYgZGV2aWNlIGFkdmVydGlzZSByZXF1ZXN0ZWQNCj4gY2FwYWJpbGl0eSwgdGhpcyBp cyBhbiBpbXByb3ZlbWVudCBpbmRlcGVuZGVudCBmcm9tIGNvbnZlcnNpb24sIGNhbiB5b3UNCj4g cGxlYXNlIHNlcGFyYXRlIGludG8gaXRzIG93biBwYXRjaD8NCg0KWWVzIHdlIGNhbiBkbyBpdC4g DQoNCj4gDQo+IDwuLi4+DQo+IA0KPiA+IEBAIC02MDYsOCArNjE2LDggQEAgcG9ydF9vZmZsb2Fk X2NhcF9kaXNwbGF5KHBvcnRpZF90IHBvcnRfaWQpDQo+ID4NCj4gPiAgCWlmIChkZXZfaW5mby50 eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCkgew0KPiA+ICAJCXBy aW50ZigiVkxBTiBpbnNlcnQ6ICAgICAgICAgICAgICAgICAgICIpOw0KPiA+IC0JCWlmIChwb3J0 c1twb3J0X2lkXS50eF9vbF9mbGFncyAmDQo+ID4gLQkJICAgIFRFU1RQTURfVFhfT0ZGTE9BRF9J TlNFUlRfVkxBTikNCj4gDQo+IFRoaXMgaXMgcmVtb3ZpbmcgdGVzdHBtZCBsb2NhbCBjb25maWcg Y2hlY2ssIGp1c3QgdG8gZG91YmxlIGNoZWNrIGlmIGFsbCBwbGFjZXMNCj4gdGhhdCB1cGRhdGVz IHRoaXMgbG9jYWwgY29uZmlnIGNvdmVyZWQgdG8gdXBkYXRlIGRldmljZSBjb25maWcgdmFyaWFi bGU/DQoNCkkgaG9wZSBzby4gSWYgeW91IGZpbmQgc29tZXRoaW5nIEkgbWlzc2VkIGxldCBtZSBr bm93IDopLiANCg0KPiANCj4gQW5kIGRvIHdlIHN0aWxsIG5lZWQgdGVzdHBtZCB0eF9vbF9mbGFn cyBhZnRlciB0aGVzZSBjaGFuZ2VzPw0KDQpDdXJyZW50bHkgdGhvc2UgZmxhZ3MgYXJlIGJlaW5n IHVzZWQuIE9uZSBjYW4gcHJlcGFyZSBhbm90aGVyIHBhdGNoIHRvIHJlbW92ZSB0aG9zZSBhbmQg dXNlIHRoZSBwb3J0IGNvbmZpZyBmbGFncyBpbnN0ZWFkLiANClRoaXMgaXMgbm90IHJlbGF0ZWQg dG8gdGhlIGNvbnZlcnNpb24gYW5kIGNvdWxkIGJlIGEgbmljZSBjbGVhbnVwLiANCg0KPiANCj4g PC4uLj4NCj4gDQo+ID4gQEAgLTE2NTgsNyArMTY3OSw4IEBAIHJ4dHhfY29uZmlnX2Rpc3BsYXko dm9pZCkNCj4gPiAgCXByaW50ZigiICAlcyBwYWNrZXQgZm9yd2FyZGluZyVzIC0gQ1JDIHN0cmlw cGluZyAlcyAtICINCj4gPiAgCSAgICAgICAicGFja2V0cy9idXJzdD0lZFxuIiwgY3VyX2Z3ZF9l bmctPmZ3ZF9tb2RlX25hbWUsDQo+ID4gIAkgICAgICAgcmV0cnlfZW5hYmxlZCA9PSAwID8gIiIg OiAiIHdpdGggcmV0cnkiLA0KPiA+IC0JICAgICAgIHJ4X21vZGUuaHdfc3RyaXBfY3JjID8gImVu YWJsZWQiIDogImRpc2FibGVkIiwNCj4gPiArCSAgICAgICAocG9ydHNbMF0uZGV2X2NvbmYucnht b2RlLm9mZmxvYWRzICYNCj4gREVWX1JYX09GRkxPQURfQ1JDX1NUUklQKSA/DQo+ID4gKwkgICAg ICAgImVuYWJsZWQiIDogImRpc2FibGVkIiwNCj4gDQo+IFRoZXJlIGlzIGEgZ2xvYmFsIGNvbmZp ZyBvcHRpb24gaW4gdGVzdHBtZCwgZm9yIGFsbCBwb3J0cy4gUHJldmlvdXMgbG9nIHdhcyBwcmlu dA0KPiBiYXNlZCBvbiB0aGF0IGNvbmZpZyBvcHRpb24sIGJ1dCBub3cgeW91IGFyZSBwcmludGlu ZyB0aGUgdmFsdWUgb2YgZmlyc3QgcG9ydC4NCg0KTm90IGV4YWN0bHkgKHRoZXJlIGFyZSBtdWx0 aXBsZSB3cm9uZyBpc3N1ZXMgd2l0aCB0aGlzIGZ1bmN0aW9uKS4gRm9yIGV4YW1wbGUgdGhlIG5l eHQgbGluZXMgYXJlOg0KDQppZiAoY3VyX2Z3ZF9lbmcgPT0gJnR4X29ubHlfZW5naW5lIHx8IGN1 cl9md2RfZW5nID09ICZmbG93X2dlbl9lbmdpbmUpIA0KICAgICAgICBwcmludGYoIiAgcGFja2V0 IGxlbj0ldSAtIG5iIHBhY2tldCBzZWdtZW50cz0lZFxuIiwgICAgICAgICAgICANCiAgICAgICAg ICAgICAgICAgICAgICAgICh1bnNpZ25lZCl0eF9wa3RfbGVuZ3RoLCAoaW50KSB0eF9wa3RfbmJf c2Vncyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIA0Kc3RydWN0IHJ0ZV9ldGhfcnhjb25mICpyeF9jb25mID0g JnBvcnRzWzBdLnJ4X2NvbmY7ICAgICAgICAgICAgICAgICAgICANCnN0cnVjdCBydGVfZXRoX3R4 Y29uZiAqdHhfY29uZiA9ICZwb3J0c1swXS50eF9jb25mOyAgICAgICAgICAgICAgICAgICAgDQoN CnRoZSBsYXN0IHdlcmUgYWRkZWQgYnkgY29tbWl0IGYyYzUxMjVhNjg2YSAoImFwcC90ZXN0cG1k OiB1c2UgZGVmYXVsdCBSeC9UeCBwb3J0IGNvbmZpZ3VyYXRpb24iKS4NCg0KQXMgeW91IGNhbiBz ZWUgcG9ydFswXSBpcyB0aGUgb25lIGJlaW5nIHVzZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBjb25m aWd1cmF0aW9uIHByaW50LiANCg0KPiANCj4gSSBiZWxpZXZlIGl0IGlzIHdyb25nIHRvIGRpc3Bs YXkgb25seSBmaXJzdCBwb3J0IHZhbHVlcywgZWl0aGVyIGxvZyBjYW4gYmUgdXBkYXRlZA0KPiB0 byBzYXkgdGVzdHBtZCBkZWZhdWx0IGNvbmZpZ3MsIG9yIHJlbW92ZSBjb21wbGV0ZWx5LCBvciBw cmludCBmb3IgYWxsIHBvcnRzLA0KPiB3aGF0IGRvIHlvdSB0aGluaz8NCg0KSU1PIGl0IGlzIHRo ZSBiZXN0IHRvIHByaW50IGZvciBhbGwgcG9ydHMuIA0KDQo+IA0KPiA8Li4uPg0KPiANCj4gPiBA QCAtODk3LDM0ICs5MDAsMzEgQEAgbGF1bmNoX2FyZ3NfcGFyc2UoaW50IGFyZ2MsIGNoYXIqKiBh cmd2KQ0KPiA+ICAJCQl9DQo+ID4gICNlbmRpZg0KPiA+ICAJCQlpZiAoIXN0cmNtcChsZ29wdHNb b3B0X2lkeF0ubmFtZSwgImRpc2FibGUtY3JjLQ0KPiBzdHJpcCIpKQ0KPiA+IC0JCQkJcnhfbW9k ZS5od19zdHJpcF9jcmMgPSAwOw0KPiA+ICsJCQkJcnhfb2ZmbG9hZHMgJj0NCj4gfkRFVl9SWF9P RkZMT0FEX0NSQ19TVFJJUDsNCj4gPiAgCQkJaWYgKCFzdHJjbXAobGdvcHRzW29wdF9pZHhdLm5h bWUsICJlbmFibGUtbHJvIikpDQo+ID4gLQkJCQlyeF9tb2RlLmVuYWJsZV9scm8gPSAxOw0KPiA+ IC0JCQlpZiAoIXN0cmNtcChsZ29wdHNbb3B0X2lkeF0ubmFtZSwgImVuYWJsZS1zY2F0dGVyIikp DQo+ID4gLQkJCQlyeF9tb2RlLmVuYWJsZV9zY2F0dGVyID0gMTsNCj4gPiArCQkJCXJ4X29mZmxv YWRzIHw9IERFVl9SWF9PRkZMT0FEX1RDUF9MUk87DQo+ID4gKwkJCWlmICghc3RyY21wKGxnb3B0 c1tvcHRfaWR4XS5uYW1lLCAiZW5hYmxlLXNjYXR0ZXIiKSkNCj4gew0KPiA+ICsJCQkJcnhfb2Zm bG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsNCj4gPiArCQkJfQ0KPiANCj4gQ2FuIGRy b3AgInt9Ig0KDQpZZXMuIA0KDQo+IA0KPiA8Li4uPg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvYXBw L3Rlc3QtcG1kL3Rlc3RwbWQuYyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMgaW5kZXgNCj4gPiBj M2FiNDQ4NDkuLmUzYTdjMjZiOCAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1wbWQvdGVzdHBt ZC5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KPiA+IEBAIC0zMzgsMTUgKzMz OCwxMCBAQCBsY29yZWlkX3QgbGF0ZW5jeXN0YXRzX2xjb3JlX2lkID0gLTE7DQo+ID4gICAqLw0K PiA+ICBzdHJ1Y3QgcnRlX2V0aF9yeG1vZGUgcnhfbW9kZSA9IHsNCj4gPiAgCS5tYXhfcnhfcGt0 X2xlbiA9IEVUSEVSX01BWF9MRU4sIC8qKjwgRGVmYXVsdCBtYXhpbXVtIGZyYW1lDQo+IGxlbmd0 aC4gKi8NCj4gPiAtCS5zcGxpdF9oZHJfc2l6ZSA9IDAsDQo+ID4gLQkuaGVhZGVyX3NwbGl0ICAg PSAwLCAvKio8IEhlYWRlciBTcGxpdCBkaXNhYmxlZC4gKi8NCj4gPiAtCS5od19pcF9jaGVja3N1 bSA9IDAsIC8qKjwgSVAgY2hlY2tzdW0gb2ZmbG9hZCBkaXNhYmxlZC4gKi8NCj4gPiAtCS5od192 bGFuX2ZpbHRlciA9IDEsIC8qKjwgVkxBTiBmaWx0ZXJpbmcgZW5hYmxlZC4gKi8NCj4gPiAtCS5o d192bGFuX3N0cmlwICA9IDEsIC8qKjwgVkxBTiBzdHJpcCBlbmFibGVkLiAqLw0KPiA+IC0JLmh3 X3ZsYW5fZXh0ZW5kID0gMCwgLyoqPCBFeHRlbmRlZCBWTEFOIGRpc2FibGVkLiAqLw0KPiA+IC0J Lmp1bWJvX2ZyYW1lICAgID0gMCwgLyoqPCBKdW1ibyBGcmFtZSBTdXBwb3J0IGRpc2FibGVkLiAq Lw0KPiA+IC0JLmh3X3N0cmlwX2NyYyAgID0gMSwgLyoqPCBDUkMgc3RyaXBwaW5nIGJ5IGhhcmR3 YXJlIGVuYWJsZWQuICovDQo+ID4gLQkuaHdfdGltZXN0YW1wICAgPSAwLCAvKio8IEhXIHRpbWVz dGFtcCBlbmFibGVkLiAqLw0KPiA+ICsJLm9mZmxvYWRzID0gKERFVl9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSIHwNCj4gPiArCQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfA0KPiA+ICsJ CSAgICAgREVWX1JYX09GRkxPQURfQ1JDX1NUUklQKSwNCj4gPiArCS5pZ25vcmVfb2ZmbG9hZF9i aXRmaWVsZCA9IDEsIC8qKjwgVXNlIHJ0ZV9ldGhfcnhxX2NvbmYgb2ZmbG9hZHMgQVBJDQo+ID4g KyovDQo+IA0KPiBJcyBjb21tZW50IGNvcnJlY3Q/DQoNCk5vIEkgc2hvdWxkIHJlbW92ZSBpdC4N Cg0KPiBGbGFnIGhhcyB0d28gbWVhbmluZyBJIGd1ZXNzLA0KPiAxKSBJZ25vcmUgYml0ZmllbGQg dmFsdWVzIGZvciBwb3J0IGJhc2VkIG9mZmxvYWQgY29uZmlndXJhdGlvbi4NCg0KSXQgaXMgb25s eSB0aGlzIG1lYW5pbmcuIA0KDQo+IDIpIEZvciByeHEsIHVzZSByeF9jb25mLm9mZmxvYWRzIGZp ZWxkLg0KPiANCj4gdGVzdHBtZCBpcyBzdGlsbCB1c2luZyBwb3J0IGJhc2VkIG9mZmxvYWQgKHJ0 ZV9ldGhfcnhtb2RlKSBidXQgIm9mZmxvYWRzIg0KPiB2YXJpYWJsZSBpbnN0ZWFkIG9mIGJpdGZp ZWxkcywgcmlnaHQ/IA0KDQpSaWdodC4gDQoNCnF1ZXVlIHNwZWNpZmljIG9uZXMgYXJlIGNvcHkg b2YgcG9ydA0KPiBjb25maWdzLg0KPiANCj4gPC4uLj4NCg==