From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 376C55A45 for ; Fri, 23 Oct 2015 16:27:45 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 23 Oct 2015 07:27:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,186,1444719600"; d="scan'208";a="801169543" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 23 Oct 2015 07:27:45 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 23 Oct 2015 07:27:44 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.155]) by fmsmsx121.amr.corp.intel.com ([169.254.5.204]) with mapi id 14.03.0248.002; Fri, 23 Oct 2015 07:27:43 -0700 From: "Wiles, Keith" To: "Horton, Remy" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 1/3] rte: add keep alive functionality Thread-Index: AQHQ+181ZEOEatkPREm2xopKwCYPu555aL2A Date: Fri, 23 Oct 2015 14:27:43 +0000 Message-ID: References: <1443603881-4700-1-git-send-email-remy.horton@intel.com> <1443603881-4700-2-git-send-email-remy.horton@intel.com> In-Reply-To: <1443603881-4700-2-git-send-email-remy.horton@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.9.76] Content-Type: text/plain; charset="utf-8" Content-ID: <08A02D5CAB819B419DEF640C3160B66E@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 1/3] rte: add keep alive functionality X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2015 14:27:46 -0000 SGkgUmVteSwgSSBoYXZlIGZldyBxdWVzdGlvbnMgaW5saW5lLg0K4oCUIA0KUmVnYXJkcywNCisr S2VpdGggV2lsZXMNCg0KSW50ZWwgQ29ycG9yYXRpb24NCg0KDQoNCg0KDQoNCg0KT24gOS8zMC8x NSwgNjowNCBBTSwgImRldiBvbiBiZWhhbGYgb2YgUmVteSBIb3J0b24iIDxkZXYtYm91bmNlc0Bk cGRrLm9yZyBvbiBiZWhhbGYgb2YgcmVteS5ob3J0b25AaW50ZWwuY29tPiB3cm90ZToNCg0KPkFk ZHMgZnVuY3Rpb25zIGZvciBkZXRlY3RpbmcgYW5kIHJlcG9ydGluZyB0aGUgbGl2ZS1uZXNzIG9m IExDb3JlcywNCj50aGUgcHJpbWFyeSByZXF1aXJlbWVudCBvZiB3aGljaCBpcyBtaW5pbWFsIG92 ZXJoZWFkcyBmb3IgdGhlDQo+Y29yZShzKSBiZWluZyBjaGVja2VkLiBDb3JlIGZhaWx1cmVzIGFy ZSBub3RpZmllZCB2aWEgYW4gYXBwbGljYXRpb24NCj5kZWZpbmVkIGNhbGxiYWNrLg0KPg0KPlNp Z25lZC1vZmYtYnk6IFJlbXkgSG9ydG9uIDxyZW15LmhvcnRvbkBpbnRlbC5jb20+DQo+LS0tDQo+ IGxpYi9saWJydGVfZWFsL2JzZGFwcC9lYWwvTWFrZWZpbGUgICAgICAgICAgICB8ICAgMSArDQo+ IGxpYi9saWJydGVfZWFsL2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgMiArLQ0K PiBsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9ydGVfa2VlcGFsaXZlLmggfCAxNDAgKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gbGliL2xpYnJ0ZV9lYWwvY29tbW9uL3J0ZV9rZWVw YWxpdmUuYyAgICAgICAgIHwgMTIyICsrKysrKysrKysrKysrKysrKysrKysNCj4gbGliL2xpYnJ0 ZV9lYWwvbGludXhhcHAvZWFsL01ha2VmaWxlICAgICAgICAgIHwgICAxICsNCj4gNSBmaWxlcyBj aGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX2tlZXBhbGl2ZS5oDQo+IGNy ZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2VhbC9jb21tb24vcnRlX2tlZXBhbGl2ZS5jDQo+ DQo+ZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2JzZGFwcC9lYWwvTWFrZWZpbGUgYi9saWIv bGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxlDQo+aW5kZXggYTQ5ZGNlYy4uNjViMjkzZiAx MDA2NDQNCj4tLS0gYS9saWIvbGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxlDQo+KysrIGIv bGliL2xpYnJ0ZV9lYWwvYnNkYXBwL2VhbC9NYWtlZmlsZQ0KPkBAIC04MCw2ICs4MCw3IEBAIFNS Q1MtJChDT05GSUdfUlRFX0xJQlJURV9FQUxfQlNEQVBQKSArPSBlYWxfY29tbW9uX3RocmVhZC5j DQo+IFNSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9FQUxfQlNEQVBQKSArPSBydGVfbWFsbG9jLmMN Cj4gU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX0VBTF9CU0RBUFApICs9IG1hbGxvY19lbGVtLmMN Cj4gU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX0VBTF9CU0RBUFApICs9IG1hbGxvY19oZWFwLmMN Cj4rU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX0VBTF9CU0RBUFApICs9IHJ0ZV9rZWVwYWxpdmUu Yw0KPiANCj4gQ0ZMQUdTX2VhbC5vIDo9IC1EX0dOVV9TT1VSQ0UNCj4gI0NGTEFHU19lYWxfdGhy ZWFkLm8gOj0gLURfR05VX1NPVVJDRQ0KPmRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21t b24vTWFrZWZpbGUgYi9saWIvbGlicnRlX2VhbC9jb21tb24vTWFrZWZpbGUNCj5pbmRleCAwYzQz ZDZhLi43ZjE3NTdhIDEwMDY0NA0KPi0tLSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9NYWtlZmls ZQ0KPisrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9NYWtlZmlsZQ0KPkBAIC00MCw3ICs0MCw3 IEBAIElOQyArPSBydGVfc3RyaW5nX2Zucy5oIHJ0ZV92ZXJzaW9uLmgNCj4gSU5DICs9IHJ0ZV9l YWxfbWVtY29uZmlnLmggcnRlX21hbGxvY19oZWFwLmgNCj4gSU5DICs9IHJ0ZV9oZXhkdW1wLmgg cnRlX2RldmFyZ3MuaCBydGVfZGV2LmgNCj4gSU5DICs9IHJ0ZV9wY2lfZGV2X2ZlYXR1cmVfZGVm cy5oIHJ0ZV9wY2lfZGV2X2ZlYXR1cmVzLmgNCj4tSU5DICs9IHJ0ZV9tYWxsb2MuaA0KPitJTkMg Kz0gcnRlX21hbGxvYy5oIHJ0ZV9rZWVwYWxpdmUuaA0KPiANCj4gaWZlcSAoJChDT05GSUdfUlRF X0lOU0VDVVJFX0ZVTkNUSU9OX1dBUk5JTkcpLHkpDQo+IElOQyArPSBydGVfd2FybmluZ3MuaA0K PmRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9ydGVfa2VlcGFsaXZl LmggYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9ydGVfa2VlcGFsaXZlLmgNCj5uZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPmluZGV4IDAwMDAwMDAuLmQ2N2JmNGINCj4tLS0gL2Rldi9udWxs DQo+KysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX2tlZXBhbGl2ZS5oDQo+ QEAgLTAsMCArMSwxNDAgQEANCj4rLyotDQo+KyAqICAgQlNEIExJQ0VOU0UNCj4rICoNCj4rICog ICBDb3B5cmlnaHQgMjAxNSBJbnRlbCBTaGFubm9uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4N Cj4rICoNCj4rICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCj4rICogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0 ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCj4rICogICBhcmUgbWV0 Og0KPisgKg0KPisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KPisgKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+KyAqICAgICAqIFJl ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w eXJpZ2h0DQo+KyAqICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KPisgKiAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBh bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQo+KyAqICAgICAgIGRpc3Ry aWJ1dGlvbi4NCj4rICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlv biBub3IgdGhlIG5hbWVzIG9mIGl0cw0KPisgKiAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVz ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCj4rICogICAgICAgZnJv bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u Lg0KPisgKg0KPisgKiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCj4rICogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVT UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KPisgKiAgIExJTUlU RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTIEZPUg0KPisgKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQo+KyAqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JT IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQo+KyAqICAg U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg QlVUIE5PVA0KPisgKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KPisgKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KPisgKiAg IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ VFksIE9SIFRPUlQNCj4rICogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4rICogICBPRiBUSElTIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KPisg Ki8NCj4rDQo+Ky8qKg0KPisgKiBAZmlsZSBrZWVwYWxpdmUuaA0KPisgKiBEUERLIFJURSBMQ29y ZSBLZWVwYWxpdmUgTW9uaXRvci4NCj4rICoNCj4rICoqLw0KPisNCj4rI2lmbmRlZiBfS0VFUEFM SVZFX0hfDQo+KyNkZWZpbmUgX0tFRVBBTElWRV9IXw0KPisNCj4rI2luY2x1ZGUgPHJ0ZV9tZW1v cnkuaD4NCj4rDQo+KyNpZm5kZWYgUlRFX0tFRVBBTElWRV9NQVhDT1JFUw0KPisvKioNCj4rICog TnVtYmVyIG9mIGNvcmVzIHRvIHRyYWNrLg0KPisgKiBAbm90ZSBNdXN0IGJlIGxhcmdlciB0aGFu IHRoZSBoaWdoZXN0IGNvcmUgaWQuICovDQo+KyNkZWZpbmUgUlRFX0tFRVBBTElWRV9NQVhDT1JF UyBSVEVfTUFYX0xDT1JFDQo+KyNlbmRpZg0KPisNCj4rDQo+Ky8qKg0KPisgKiBLZWVwYWxpdmUg ZmFpbHVyZSBjYWxsYmFjay4NCj4rICoNCj4rICogIFJlY2VpdmVzIGEgZGF0YSBwb2ludGVyIHBh c3NlZCB0byBydGVfa2VlcGFsaXZlX2NyZWF0ZSgpIGFuZCB0aGUgaWQgb2YgdGhlDQo+KyAqICBm YWlsZWQgY29yZS4NCj4rICovDQo+K3R5cGVkZWYgdm9pZCAoKnJ0ZV9rZWVwYWxpdmVfZmFpbHVy ZV9jYWxsYmFja190KSgNCj4rCXZvaWQgKmRhdGEsDQo+Kwljb25zdCBpbnQgaWRfY29yZSk7DQo+ Kw0KPisNCj4rLyoqDQo+KyAqIEtlZXBhbGl2ZSBzdGF0ZSBzdHJ1Y3R1cmUuDQo+KyAqIEBpbnRl cm5hbA0KPisgKi8NCj4rc3RydWN0IHJ0ZV9rZWVwYWxpdmUgew0KPisJLyoqIENvcmUgTGl2ZW5l c3MuICovDQo+Kwl1aW50MzJfdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHN0YXRlX2ZsYWdzW1JURV9L RUVQQUxJVkVfTUFYQ09SRVNdOw0KDQpOb3JtYWxseSBJIHNlZSB0aGUgX19ydGVfY2FjaGVfYWxp Z25lZCBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGJlZm9yZSB0aGUg4oCYO+KAmSBkaWQgeW91IGhh dmUgYSByZWFzb24gdG8gaGF2ZSBpdCBoZXJlPyBJZiBub3QgdGhlbiBJIHdvdWxkIG1vdmUgaXQg dG8gdGhlIGVuZCB0byBsb29rIHRoZSBzYW1lIGFzIHRoZSBvdGhlcnMuIEkgZGlkIGEgcXVpY2sg Z3JvcCBpbiB0aGUgY29kZSBhbmQgdGhhdCBpcyB0aGUgbm9ybWFsIGxvY2F0aW9uLg0KDQpNeSBu ZXh0IHF1ZXN0aW9uIGlzIHdoeSBub3QgYWxpZ24gdGhlIHdob2xlLCB3aGljaCB3b3VsZCBkbyB0 aGUgc2FtZSB0aGluZy4gSSBkaWQgbm90IGNoZWNrIHRoZSBjb21waWxlciBvdXRwdXQsIGJ1dCBJ IHdhcyB0aGlua2luZyBpdCB3b3VsZCBwb3NzaWJsZSBsZWF2ZSBnYXBzIGluIHRoZSBzdHJ1Y3R1 cmUgZm9yIGJ5dGVzIHdlIGNhbiBub3QgdXNlIG5vcm1hbGx5LCBidXQgbWF5YmUgdGhhdCBpcyBu b3QgYSBwcm9ibGVtLg0KDQpOZXh0IGl0IGFwcGVhcnMgdGhlIHN0YXRlX2ZsYWdzIGlzIG9ubHkg YmVpbmcgc2V0IHRvIDAtMywgd2hpY2ggbWVhbnMgaXQgZG9lcyBub3QgbmVlZCB0byBiZSBhIHVp bnQ0M190LCBidXQgY291bGQgYmUgYSB1aW50OF90LCBjb3JyZWN0Pw0KDQpBbHNvIHNldHRpbmcg dGhlIHZhbHVlIDAtMyBjb3VsZCBiZSB0dXJuZWQgaW50byBhIGVudW0gd2l0aCByZWFsIG5hbWVz IHNvIHRoZSBkZWJ1Z2dlcnMgY291bGQgcHJpbnQgdGhlbSBvdXQgaW5zdGVhZCBvZiB0aGVzZSBu dW1iZXJzLg0KDQo+Kw0KPisJLyoqIExhc3Qtc2Vlbi1hbGl2ZSB0aW1lc3RhbXBzICovDQo+Kwl1 aW50NjRfdCBsYXN0X2FsaXZlW1JURV9LRUVQQUxJVkVfTUFYQ09SRVNdOw0KPisNCj4rCS8qKg0K PisJICogQ29yZXMgdG8gY2hlY2suDQo+KwkgKiBJbmRleGVkIGJ5IGNvcmUgaWQsIG5vbi16ZXJv IGlmIHRoZSBjb3JlIHNob3VsZCBiZSBjaGVja2VkLg0KPisJICovDQo+Kwl1aW50OF90IGFjdGl2 ZV9jb3Jlc1tSVEVfS0VFUEFMSVZFX01BWENPUkVTXTsNCj4rDQo+KwkvKiogRGVhZCBjb3JlIGhh bmRsZXIuICovDQo+KwlydGVfa2VlcGFsaXZlX2ZhaWx1cmVfY2FsbGJhY2tfdCBjYWxsYmFjazsN Cj4rDQo+KwkvKioNCj4rCSAqIERlYWQgY29yZSBoYW5kbGVyIGFwcCBkYXRhLg0KPisJICogUG9p bnRlciBpcyBwYXNzZWQgdG8gZGVhZCBjb3JlIGhhbmRsZXIuDQo+KwkgKi8NCj4rCXZvaWQgKmNh bGxiYWNrX2RhdGE7DQo+Kwl1aW50NjRfdCB0c2NfaW5pdGlhbDsNCj4rCXVpbnQ2NF90IHRzY19t aHo7DQo+K307DQo+Kw0KPisNCj4rLyoqDQo+KyAqIEluaXRpYWxpc2Uga2VlcGFsaXZlIHN1Yi1z eXN0ZW0uDQo+KyAqIEBwYXJhbSBjYWxsYmFjaw0KPisgKiAgIEZ1bmN0aW9uIGNhbGxlZCB1cG9u IGRldGVjdGlvbiBvZiBhIGRlYWQgY29yZS4NCj4rICogQHBhcmFtIGRhdGENCj4rICogICBEYXRh IHBvaW50ZXIgdG8gYmUgcGFzc2VkIHRvIGZ1bmN0aW9uIGNhbGxiYWNrLg0KPisgKiBAcmV0dXJu DQo+KyAqICAgS2VlcGFsaXZlIHN0cnVjdHVyZSBzdWNjZXNzLCBOVUxMIG9uIGZhaWx1cmUuDQo+ KyAqLw0KPitzdHJ1Y3QgcnRlX2tlZXBhbGl2ZSAqcnRlX2tlZXBhbGl2ZV9jcmVhdGUoDQo+Kwly dGVfa2VlcGFsaXZlX2ZhaWx1cmVfY2FsbGJhY2tfdCBjYWxsYmFjaywNCj4rCXZvaWQgKmRhdGEp Ow0KPisNCj4rDQo+Ky8qKg0KPisgKiBAcGFyYW0gKnB0cl90aW1lciBUcmlnZ2VyaW5nIHRpbWVy ICh1bnVzZWQpDQo+KyAqIEBwYXJhbSAqcHRyX2RhdGEgIERhdGEgcG9pbnRlciAoa2VlcGFsaXZl IHN0cnVjdHVyZSkNCj4rICovDQo+K3ZvaWQgcnRlX2tlZXBhbGl2ZV9kaXNwYXRjaF9waW5ncyhf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSB2b2lkICpwdHJfdGltZXIsDQo+Kwl2b2lkICpwdHJfZGF0 YSk7DQoNCk5vcm1hbGx5IEkgZG8gbm90IHNlZSB0aGUgdW51c2VkIGF0dHJpYnV0ZSBvbiB0aGUg ZGVjbGFyZSBvZiBhIGZ1bmN0aW9uLCBkb2VzIHRoaXMgaGVscCB0aGUgY29tcGlsZXIgYXQgYWxs PyBJIGRvIG5vdCBiZWxpZXZlIGl0IGRvZXMsIHNvIEkgd291bGQgcmVtb3ZlIGl0IGZyb20gaGVy ZSBhcyB5b3UgYWxyZWFkeSBoYXZlIGl0IGluIHRoZSBmdW5jdGlvbi4NCj4rDQo+Kw0KPisvKioN Cj4rICogUmVnaXN0ZXJzIGEgY29yZSBmb3Iga2VlcGFsaXZlIGNoZWNrcy4NCj4rICogQHBhcmFt ICprZWVwY2ZnDQo+KyAqICAgS2VlcGFsaXZlIHN0cnVjdHVyZSBwb2ludGVyDQo+KyAqIEBwYXJh bSBpZF9jb3JlDQo+KyAqICAgSUQgbnVtYmVyIG9mIGNvcmUgdG8gcmVnaXN0ZXIuDQo+KyAqLw0K Pit2b2lkIHJ0ZV9rZWVwYWxpdmVfcmVnaXN0ZXJfY29yZShzdHJ1Y3QgcnRlX2tlZXBhbGl2ZSAq a2VlcGNmZywgY29uc3QgaW50IGlkX2NvcmUpOw0KPisNCj4rDQo+Ky8qKg0KPisgKiBQZXItY29y ZSBrZWVwYWxpdmUgY2hlY2suDQo+KyAqIEBwYXJhbSAqa2VlcGNmZw0KPisgKiAgIEtlZXBhbGl2 ZSBzdHJ1Y3R1cmUgcG9pbnRlcg0KPisgKg0KPisgKiBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJl IGNhbGxlZCBmcm9tIHdpdGhpbiB0aGUgbWFpbiBwcm9jZXNzIGxvb3Agb2YNCj4rICogdGhlIExD b3JlIHRvIGJlIGNoZWNrZWQuDQo+KyAqLw0KPitzdGF0aWMgaW5saW5lIHZvaWQNCj4rcnRlX2tl ZXBhbGl2ZV9tYXJrX2FsaXZlKHN0cnVjdCBydGVfa2VlcGFsaXZlICprZWVwY2ZnKQ0KPit7DQo+ KwlrZWVwY2ZnLT5zdGF0ZV9mbGFnc1tydGVfbGNvcmVfaWQoKV0gPSAxOw0KPit9DQo+Kw0KPisN Cj4rI2VuZGlmIC8qIF9LRUVQQUxJVkVfSF8gKi8NCj5kaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9l YWwvY29tbW9uL3J0ZV9rZWVwYWxpdmUuYyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9ydGVfa2Vl cGFsaXZlLmMNCj5uZXcgZmlsZSBtb2RlIDEwMDY0NA0KPmluZGV4IDAwMDAwMDAuLmNiZGQ4MDEN Cj4tLS0gL2Rldi9udWxsDQo+KysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL3J0ZV9rZWVwYWxp dmUuYw0KPkBAIC0wLDAgKzEsMTIyIEBADQo+Ky8qLQ0KPisgKiAgIEJTRCBMSUNFTlNFDQo+KyAq DQo+KyAqICAgQ29weXJpZ2h0IDIwMTUgSW50ZWwgU2hhbm5vbiBMdGQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQo+KyAqDQo+KyAqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQo+KyAqICAgbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQo+KyAqICAg YXJlIG1ldDoNCj4rICoNCj4rICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4rICogICAgICAgbm90aWNlLCB0aGlz IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPisgKiAg ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodA0KPisgKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCj4rICogICAgICAgdGhlIGRvY3VtZW50 YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KPisgKiAgICAg ICBkaXN0cmlidXRpb24uDQo+KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwgQ29y cG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4rICogICAgICAgY29udHJpYnV0b3JzIG1h eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQo+KyAqICAg ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy bWlzc2lvbi4NCj4rICoNCj4rICogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQo+KyAqICAgIkFTIElTIiBBTkQgQU5Z IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCj4rICog ICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB TkQgRklUTkVTUyBGT1INCj4rICogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KPisgKiAgIE9XTkVSIE9SIENPTlRS SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0K PisgKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM VURJTkcsIEJVVCBOT1QNCj4rICogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCj4rICogICBEQVRBLCBPUiBQUk9G SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkN Cj4rICogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg TElBQklMSVRZLCBPUiBUT1JUDQo+KyAqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+KyAqICAgT0YgVEhJUyBT T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH RS4NCj4rICovDQo+Kw0KPisjaW5jbHVkZSA8aW50dHlwZXMuaD4NCj4rDQo+KyNpbmNsdWRlIDxy dGVfY3ljbGVzLmg+DQo+KyNpbmNsdWRlIDxydGVfbGNvcmUuaD4NCj4rI2luY2x1ZGUgPHJ0ZV9r ZWVwYWxpdmUuaD4NCj4rDQo+KyNpZmRlZiBLRUVQQUxJVkVfREVCVUdfTVNHUw0KPitzdGF0aWMg dm9pZA0KPitwcmludF90cmFjZShjb25zdCBjaGFyICptc2csIHN0cnVjdCBydGVfa2VlcGFsaXZl ICprZWVwY2ZnLCBpbnQgaWR4X2NvcmUpDQo+K3sNCj4rCXByaW50ZigiJXNMYXN0IHNlZW4gJSIg UFJJZDY0ICAibXMgYWdvLlxuIiwNCj4rCQltc2csDQo+KwkJKChydGVfcmR0c2MoKSAtIGtlZXBj ZmctPmxhc3RfYWxpdmVbaWR4X2NvcmVdKSoxMDAwKQ0KPisJCS8gcnRlX2dldF90c2NfaHooKQ0K PisJICAgICAgKTsNCj4rfQ0KPisjZWxzZQ0KPitzdGF0aWMgdm9pZA0KPitwcmludF90cmFjZShf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSBjb25zdCBjaGFyICptc2csDQo+KwlfX2F0dHJpYnV0ZV9f KCh1bnVzZWQpKSBzdHJ1Y3QgcnRlX2tlZXBhbGl2ZSAqa2VlcGNmZywNCj4rCV9fYXR0cmlidXRl X18oKHVudXNlZCkpIGludCBpZHhfY29yZSkNCj4rew0KPit9DQo+KyNlbmRpZg0KPisNCj4rDQo+ Kw0KPit2b2lkDQo+K3J0ZV9rZWVwYWxpdmVfZGlzcGF0Y2hfcGluZ3MoX19hdHRyaWJ1dGVfXygo dW51c2VkKSkgdm9pZCAqcHRyX3RpbWVyLA0KPisJdm9pZCAqcHRyX2RhdGEpDQo+K3sNCj4rCXN0 cnVjdCBydGVfa2VlcGFsaXZlICprZWVwY2ZnID0gKHN0cnVjdCBydGVfa2VlcGFsaXZlICopcHRy X2RhdGE7DQo+KwlpbnQgaWR4X2NvcmU7DQo+Kw0KPisJZm9yIChpZHhfY29yZSA9IDA7IGlkeF9j b3JlIDwgUlRFX0tFRVBBTElWRV9NQVhDT1JFUzsgaWR4X2NvcmUrKykgew0KPisJCWlmIChrZWVw Y2ZnLT5hY3RpdmVfY29yZXNbaWR4X2NvcmVdID09IDApDQo+KwkJCWNvbnRpbnVlOw0KPisJCXN3 aXRjaCAoa2VlcGNmZy0+c3RhdGVfZmxhZ3NbaWR4X2NvcmVdKSB7DQo+KwkJY2FzZSAxOiAvKiBB bGl2ZSAqLw0KPisJCQlrZWVwY2ZnLT5zdGF0ZV9mbGFnc1tpZHhfY29yZV0gPSAwOw0KPisJCQlr ZWVwY2ZnLT5sYXN0X2FsaXZlW2lkeF9jb3JlXSA9IHJ0ZV9yZHRzYygpOw0KPisJCQlicmVhazsN Cj4rCQljYXNlIDA6IC8qIE1JQSAqLw0KPisJCQlwcmludF90cmFjZSgiQ29yZSBNSUEuICIsIGtl ZXBjZmcsIGlkeF9jb3JlKTsNCj4rCQkJa2VlcGNmZy0+c3RhdGVfZmxhZ3NbaWR4X2NvcmVdID0g MjsNCj4rCQkJYnJlYWs7DQo+KwkJY2FzZSAyOiAvKiBEZWFkICovDQo+KwkJCWtlZXBjZmctPnN0 YXRlX2ZsYWdzW2lkeF9jb3JlXSA9IDM7DQo+KwkJCXByaW50X3RyYWNlKCJDb3JlIGRpZWQuICIs IGtlZXBjZmcsIGlkeF9jb3JlKTsNCj4rCQkJaWYgKGtlZXBjZmctPmNhbGxiYWNrKQ0KPisJCQkJ a2VlcGNmZy0+Y2FsbGJhY2soDQo+KwkJCQkJa2VlcGNmZy0+Y2FsbGJhY2tfZGF0YSwNCj4rCQkJ CQlpZHhfY29yZQ0KPisJCQkJCSk7DQo+KwkJCWJyZWFrOw0KPisJCWNhc2UgMzogLyogQnVyaWVk ICovDQo+KwkJCWJyZWFrOw0KPisJCX0NCj4rCX0NCj4rfQ0KPisNCj4rDQo+K3N0cnVjdCBydGVf a2VlcGFsaXZlICoNCj4rcnRlX2tlZXBhbGl2ZV9jcmVhdGUocnRlX2tlZXBhbGl2ZV9mYWlsdXJl X2NhbGxiYWNrX3QgY2FsbGJhY2ssDQo+Kwl2b2lkICpkYXRhKQ0KPit7DQo+KwlpbnQgaWR4X2Nv cmU7DQo+KwlzdHJ1Y3QgcnRlX2tlZXBhbGl2ZSAqa2VlcGNmZzsNCj4rDQo+KwlrZWVwY2ZnID0g bWFsbG9jKHNpemVvZihzdHJ1Y3QgcnRlX2tlZXBhbGl2ZSkpOw0KPisJaWYgKGtlZXBjZmcgIT0g TlVMTCkgew0KPisJCWZvciAoaWR4X2NvcmUgPSAwOyBpZHhfY29yZSA8IFJURV9LRUVQQUxJVkVf TUFYQ09SRVM7IGlkeF9jb3JlKyspIHsNCj4rCQkJa2VlcGNmZy0+c3RhdGVfZmxhZ3NbaWR4X2Nv cmVdID0gMDsNCj4rCQkJa2VlcGNmZy0+YWN0aXZlX2NvcmVzW2lkeF9jb3JlXSA9IDA7DQo+KwkJ fQ0KDQpDb3VsZCB5b3UgaGF2ZSBkb25lIGEgY2FsbG9jIHRoZW4geW91IGRvIG5vdCBuZWVkIHRo ZSBmb3IgbG9vcCB0byB6ZXJvIHN0dWZmPw0KPisJCWtlZXBjZmctPmNhbGxiYWNrID0gY2FsbGJh Y2s7DQo+KwkJa2VlcGNmZy0+Y2FsbGJhY2tfZGF0YSA9IGRhdGE7DQo+KwkJa2VlcGNmZy0+dHNj X2luaXRpYWwgPSBydGVfcmR0c2MoKTsNCj4rCQlrZWVwY2ZnLT50c2NfbWh6ID0gcnRlX2dldF90 c2NfaHooKSAvIDEwMDA7DQo+Kwl9DQo+KwlyZXR1cm4ga2VlcGNmZzsNCj4rfQ0KPisNCj4rDQo+ K3ZvaWQNCj4rcnRlX2tlZXBhbGl2ZV9yZWdpc3Rlcl9jb3JlKHN0cnVjdCBydGVfa2VlcGFsaXZl ICprZWVwY2ZnLCBjb25zdCBpbnQgaWRfY29yZSkNCj4rew0KPisJaWYgKGlkX2NvcmUgPCBSVEVf S0VFUEFMSVZFX01BWENPUkVTKQ0KPisJCWtlZXBjZmctPmFjdGl2ZV9jb3Jlc1tpZF9jb3JlXSA9 IDE7DQo+K30NCj5kaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL01ha2Vm aWxlIGIvbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL01ha2VmaWxlDQo+aW5kZXggZDYyMTk2 ZS4uMDVhNDRkNyAxMDA2NDQNCj4tLS0gYS9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvTWFr ZWZpbGUNCj4rKysgYi9saWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvTWFrZWZpbGUNCj5AQCAt OTAsNiArOTAsNyBAQCBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfRUFMX0xJTlVYQVBQKSArPSBl YWxfY29tbW9uX3RocmVhZC5jDQo+IFNSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9FQUxfTElOVVhB UFApICs9IHJ0ZV9tYWxsb2MuYw0KPiBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfRUFMX0xJTlVY QVBQKSArPSBtYWxsb2NfZWxlbS5jDQo+IFNSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9FQUxfTElO VVhBUFApICs9IG1hbGxvY19oZWFwLmMNCj4rU1JDUy0kKENPTkZJR19SVEVfTElCUlRFX0VBTF9M SU5VWEFQUCkgKz0gcnRlX2tlZXBhbGl2ZS5jDQo+IA0KPiBDRkxBR1NfZWFsLm8gOj0gLURfR05V X1NPVVJDRQ0KPiBDRkxBR1NfZWFsX2ludGVycnVwdHMubyA6PSAtRF9HTlVfU09VUkNFDQo+LS0g DQo+MS45LjMNCj4NCg==