From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00075.outbound.protection.outlook.com [40.107.0.75]) by dpdk.org (Postfix) with ESMTP id 9537D3257 for ; Wed, 12 Jul 2017 16:08:08 +0200 (CEST) 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=h94fxppplOEYs6MMd/6ST7QDTcDaInV2ki8hRPY6Rg0=; b=ZI4tUS8NXaY+jzVA9zA7AW2K3C8xoZlgC3SsmijhVuO0Q2YGXwZD4KtGa/bL1Eydet0DSAX7bueK6GI10JAInecdYb3Rqk/JVckwdeUcMbEZTwsn4MlbfjmsJ2hyLV1zFhARCBjpxzo3lBIWehr+/Pfg0TTKDlAv6tl97KRqGwA= Received: from DB6PR05MB3176.eurprd05.prod.outlook.com (10.170.221.26) by VI1PR0501MB2815.eurprd05.prod.outlook.com (10.172.11.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Wed, 12 Jul 2017 14:08:07 +0000 Received: from DB6PR05MB3176.eurprd05.prod.outlook.com ([fe80::106b:ce87:9806:96]) by DB6PR05MB3176.eurprd05.prod.outlook.com ([fe80::106b:ce87:9806:96%13]) with mapi id 15.01.1261.015; Wed, 12 Jul 2017 14:08:06 +0000 From: Boris Pismenny To: Declan Doherty , "dev@dpdk.org" CC: Aviad Yehezkel , "Nicolau, Radu" , Liran Liss Thread-Topic: [dpdk-dev] [RFC 0/7] ipsec inline Thread-Index: AQHS+mgBJzBywExl6EmhmfUN3OfnoqJQMezg Date: Wed, 12 Jul 2017 14:08:06 +0000 Message-ID: References: <1499672117-56728-1-git-send-email-borisp@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR0501MB2815; 7:YKrUa2WzyVe74ta/dPvVc17UM37QFgTPF4ixUHhA9jAQgJYOyU/gCKl3FkNb3beMWjhEwkopehp3RFOa7zPMo55JKJgtdPN7vIyeogvxLHhTHzP0lsL7+Rx417flL+2BFmQpUmahhO+67hXGQ1+Dwyj8amy7jV2kLQ0oyM12d2ygz+6kz9yjG8w3jQcfVvFKivBRlkn/hWJWiY/9+ZJnClEpJXW/QVaaEqsQSg1R1okFFuJmpuQ0I47TmCjV3nylgBof4KQTDqJs17lXJL5hfUQdER2x1dE4WIMelE07XGW+4WrBvwGE2P6OE1I49klviJhD0DmaPRh16yX/YVN17lRylfe8fnDvNjwztjAxDdE6Zo8Mh08eOkZdAPFbOVsLsrGDIcuwhoD8iYWGHQzdP2T2t3WTjjrrRBwFDqM8dM3/UweYJJH4anKU1XfPAeQX06VUm505qLH0DQsoTvOnWVZBq6bFUcXeme5jw0DL3cLI3mduQ/A4qLkripWcu9pRaevk92HQ3Vmahg9ocAwBTcMkrAJeqKVgN6+9hchZpr4cMPxZxbgS7Oi8OCU2u47iSdjlmRarz/BMcCgYsHttUXJBe+CxfW2pipXkq8ULra85Y2UmmZ4qFeVEks9vRclLu5AVQODCAu5kVPXWDqsLPN5G+SXWu0ECbrEZb2Fd7YEQOOhrjPROj/Z4YDNa47JxlvL7Aad+tllHs1blmMcCbeoDUSxLqDAb5J+LocQ4a00k+pKQALhtXUJ8qymMiNuSoIjmRyQFXaO5EcVPVTwGfCo5tUsqsy8nTrZ1R8KxtkM= x-ms-office365-filtering-correlation-id: b627e4d3-332c-4fb1-6e85-08d4c92f6b5c x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:VI1PR0501MB2815; x-ms-traffictypediagnostic: VI1PR0501MB2815: x-exchange-antispam-report-test: UriScan:(133145235818549)(236129657087228)(192374486261705)(131327999870524)(48057245064654)(148574349560750)(167848164394848)(247924648384137); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(2017060910075)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0501MB2815; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0501MB2815; x-forefront-prvs: 036614DD9C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39840400002)(39450400003)(39410400002)(39850400002)(39860400002)(39400400002)(2906002)(66066001)(25786009)(86362001)(3846002)(102836003)(107886003)(2950100002)(189998001)(33656002)(3280700002)(561944003)(6116002)(3660700001)(76176999)(7696004)(5660300001)(2900100001)(6436002)(478600001)(5250100002)(74316002)(50986999)(2501003)(4326008)(8676002)(38730400002)(6246003)(53936002)(54906002)(55016002)(229853002)(99286003)(6506006)(9686003)(305945005)(7736002)(81166006)(54356999)(14454004)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2815; H:DB6PR05MB3176.eurprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 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-originalarrivaltime: 12 Jul 2017 14:08:06.5916 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2815 Subject: Re: [dpdk-dev] [RFC 0/7] ipsec inline 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, 12 Jul 2017 14:08:08 -0000 SGkgRGVjbGFuLA0KDQo+IEhleSBCb3Jpcywgd2UndmUgYmVlbiB3b3JraW5nIG9uIHYyIG9mIHRo ZSBSRkMgYmFzZWQgb24gdGhlIGZlZWRiYWNrIHlvdQ0KPiBhbmQgb3RoZXJzIGdhdmUgb24gb3Vy IG9yaWdpbmFsICwgYnV0IGFzIHdoYXQgd2Ugd2VyZSBnb2luZyB0byBwcm9wb3NlDQo+IGlzIGxh cmdlbHkgaW5saW5lIHdpdGggeW91ciBwcm9wb3NhbCBoZXJlLCB3aXRoIG9uZSBvciAyIGV4Y2Vw dGlvbnMsDQo+IG1haW5seSBvbiB0aGUgSVBzZWMgU0EgbWFuYWdlbWVudCBlbGVtZW50cywgSSds bCBqdXN0IGNvbW1lbnQgaGVyZQ0KPiBpbnN0ZWFkIG9mIHNlbmRpbmcgYW5vdGhlciBSRkMuDQo+ IA0KPiBXZSBhZ3JlZSB0aGUgcnRlX2Zsb3cgYmFzZWQgYXBwcm9hY2ggYXMgcHJvcG9zZWQgaGVy ZSBpcyB0aGUgbW9yZQ0KPiBmbGV4aWJsZSBhcHByb2FjaCBhbmQgc2hvdWxkIHdvcmsgYmV0dGVy IHdpdGggZnV0dXJlcyBkZXZpY2VzIHdoaWNoDQo+IGNvdWxkIG9mZmVyIHN1cHBvcnQgZm9yIG90 aGVyIHByb3RvY29scyBhcyB3ZWxsIGFzIGZ1bGwgcHJvdG9jb2wgb2ZmbG9hZC4NCg0KVGhhdCdz IGdyZWF0Lg0KDQo+IA0KPiBUaGUgbWFpbiBkaWZmZXJlbmNlIHRvIHlvdXIgcHJvcG9zYWwgYmVs b3cgYW5kIHdoYXQgd2UgYXJlIGNvbnNpZGVyaW5nDQo+IGlzIHRoYXQgd2Ugd291bGQgbGlrZSB0 byBpbnRyb2R1Y2UgdGhlIGlkZWEgb2YgYSBwb3J0IGJhc2VkIHJ0ZV9zZWN1cml0eQ0KPiBBUEkg d2hpY2ggd291bGQgc3VwcG9ydCBhIGdlbmVyaWMgQVBJIGZvciBzZWN1cml0eSBwcm90b2NvbA0K PiBjb25maWd1cmF0aW9uLCBJIGNhbiBzZWUgTUFDc2VjLCBJUHNlYywgRFRMUyBhbGwgd29ya2lu ZyBlYXNpbHkgdW5kZXINCj4gdGhpcyBhcHByb2FjaC4NCj4gDQo+IHN0cnVjdCBydGVfc2VjdXJp dHlfc2Vzc2lvbiAqDQo+IHJ0ZV9zZWN1cml0eV9zZXNzaW9uX2NyZWF0ZSh1aW50OF90IHBvcnRf aWQsDQo+IAkJc3RydWN0IHJ0ZV9zZWN1cml0eV9zZXNzX2NvbmYgKnNlc3NfY29uZik7DQo+IA0K PiANCj4gVGhlIHNlc3Npb24gY3JlYXRlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgb3BhcXVlIHNl Y3VyaXR5IHNlc3Npb24gd2hpY2gNCj4gd291bGQgYmUgdXNlZCBpbiB0aGUgc2VjdXJpdHkgZmxv dyBhY3Rpb24gcHJvZ3JhbW1pbmcuIFRoZSBzZXNzaW9uDQo+IGNvbmZpZ3VyYXRpb24gd2lsbCBj b250YWluIHRoZSBzZWN1cml0eSBwcm90b2NvbCBzcGVjaWZpYyBpbmZvcm1hdGlvbiwNCj4gaW4g SVBzZWMgY2FzZSB0aGUgU0EgcGFyYW1ldGVyIGFzIHdlbGwgYXMgdGhlIGNyeXB0byB4Zm9ybXMu DQo+IA0KPiAvKiogSVBzZWMgU2VjdXJpdHkgU2Vzc2lvbiBDb25maWd1cmF0aW9uICovDQo+IHN0 cnVjdCBydGVfc2VjdXJpdHlfY29uZl9pcHNlY19zYSB7DQo+IAl1bnNpZ25lZCBpbnQgc3BpOw0K PiAJLyoqPCBTQSBzZWN1cml0eSBwYXJhbWV0ZXIgaW5kZXggKi8NCg0KV2hlbiBub3QgdXNpbmcg ZnVsbCBwcm90b2NvbCBvZmZsb2FkLiBXaGF0IGRvZXMgdGhpcyBmaWVsZCBtZWFuPw0KDQo+IA0K PiAJZW51bSBydGVfc2VjdXJpdHlfY29uZl9pcHNlY19zYV9kaXIgew0KPiAJCVJURV9TRUNVUklU WV9JUFNFQ19TQV9ESVJfSU5HUkVTUywNCj4gCQlSVEVfU0VDVVJJVFlfSVBTRUNfU0FfRElSX0VH UkVTUw0KPiAJfSBkaXJlY3Rpb247DQo+IAkvKio8IElQc2VjIFNBIGRpcmVjdGlvbiAtIGluZ3Jl c3MgLyBlZ3Jlc3MgKi8NCj4gDQo+IAllbnVtIHJ0ZV9zZWN1cml0eV9jb25mX2lwc2VjX3NhX21v ZGUgew0KPiAJCVJURV9TRUNVUklUWV9JUFNFQ19TQV9NT0RFX1RSQU5TUE9SVCwNCj4gCQlSVEVf U0VDVVJJVFlfSVBTRUNfU0FfTU9ERV9UVU5ORUwNCj4gCX0gbW9kZTsNCj4gCS8qKjwgSVBzZWMg U0EgTW9kZSAtIHRyYW5zcG9ydC90dW5uZWwgKi8NCj4gDQo+IAllbnVtIHJ0ZV9zZWN1cml0eV9j b25mX2lwc2VjX3NhX3Byb3RvY29sIHsNCj4gCQlSVEVfU0VDVVJJVFlfSVBTRUNfU0FfUFJPVE9f QUgsDQo+IAkJUlRFX1NFQ1VSSVRZX0lQU0VDX1NBX1BST1RPX0VTUA0KPiAJfSBwcm90bzsNCj4g CS8qKjwgSVBzZWMgU0EgUHJvdG9jb2wgLSBBSC9FU1AgKi8NCj4gDQo+IAlzdHJ1Y3QgaXBhZGRy IHNyY19pcDsJLyoqPCBTb3VyY2UgSVAgKi8NCj4gCXN0cnVjdCBpcGFkZHIgZHN0X2lwOwkvKio8 IERlc3RpbmF0aW9uIElQICovDQoNCldoZW4gbm90IHVzaW5nIGZ1bGwgcHJvdG9jb2wgb2ZmbG9h ZCwgYW5kIHdoZW4gbm90IHVzaW5nIHR1bm5lbCBtb2RlLg0KV2hhdCBkbyB0aGVzZSBmaWVsZHMg bWVhbj8NCg0KSSB0aGluayB3ZSBuZWVkIGEgc2VwYXJhdGUgcnRlX3NlY3VyaXR5X2NvbmZfaXBz ZWNfc2EgZm9yIGZ1bGwgcHJvdG8gb2ZmbG9hZA0KYW5kIG1heWJlIGEgc2VwYXJhdGUgb25lIGZv ciB0dW5uZWwvdHJhbnNwb3J0IG1vZGUgYXMgd2VsbCB0byBhdm9pZCByZWR1bmRhbnQNCmZpZWxk cy4NCk1vcmVvdmVyLCB3ZSBjb3VsZCBzcGxpdCBmdWxsIHByb3RvY29sIG9mZmxvYWQgaW50byAy IHN0ZXBzIC0gZW5jYXAvZGVjYXANCmFuZCBjcnlwdG8uIHJ0ZV9jcmVhdGVfZmxvdyBhbHJlYWR5 IHN1cHBvcnRzIHVzaW5nIG11bHRpcGxlIGFjdGlvbnMuDQoNCj4gfTsNCj4gDQo+IC8qKg0KPiAg ICogU2VjdXJpdHkgU2Vzc2lvbiBDb25maWd1cmF0aW9uDQo+ICAgKi8NCj4gc3RydWN0IHJ0ZV9z ZWN1cml0eV9zZXNzX2NvbmYgew0KPiAJZW51bSB7DQo+IAkJUlRFX1NFQ1VSSVRZX1NFU1NfSU5M SU5FX0NSWVBUTywNCj4gCQlSVEVfU0VDVVJJVFlfU0VTU19GVUxMX1BST1RPX09GRkxPQUQNCj4g CX0gYWN0aW9uX3R5cGU7DQo+IA0KPiAJZW51bSBydGVfc2VjdXJpdHlfc2Vzc19jb25mX3R5cGUg ew0KPiAJCVNFQ19DT05GX0RUTFMsDQo+IAkJU0VDX0NPTkZfSVBTRUMsDQo+IAkJU0VDX0NPTkZf TUFDU0VDDQo+IA0KPiAJfSB0eXBlOw0KPiAJLyoqPCBUeXBlIG9mIHNlY3VyaXR5IHNlc3Npb24g dG8gYmUgY29uZmlndXJlZCAqLw0KPiANCj4gCXN0cnVjdCB7DQo+IAkJc3RydWN0IHJ0ZV9zZWN1 cml0eV9jb25mX2R0bHMgZHRsczsNCj4gCQlzdHJ1Y3QgcnRlX3NlY3VyaXR5X2NvbmZfaXBzZWNf c2EgaXBzZWNfc2E7DQo+IAkJc3RydWN0IHJ0ZV9zZWN1cml0eV9jb25mX21hY3NlYyBtYWNzZWM7 DQo+IAl9Ow0KPiAJLyogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciBzZWN1cml0eSBzZXNz aW9uICovDQo+IA0KPiAJc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX3hmb3JtICp4Zm9ybTsNCj4gCS8q KjwgU3ltbWV0cmljIENyeXB0byBUcmFuc2Zvcm0gQ2hhaW4gKi8NCg0KPiB9Ow0KPiANCj4gVGhl IEFQSXMgd291bGQgYmUgaW50cm9kdWNlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlIGZsb3cg YW5kIHRyYWZmaWMNCj4gbWFuYWdlbWVudCBBUEkgYXMgYSBwbHVnLWFibGUgY29tcG9uZW50IGlu dG8gYSBldGhkZXYsIGFuZCB3b3VsZCBwcm92aWRlDQo+IHRoZSBhYnN0cmFjdGlvbiB0byBjb25m aWd1cmUgc2VjdXJpdHkgcHJvdG9jb2xzIHN0YXRlIChJUHNlYyBTQSwgRFRMUw0KPiByZWNvcmQg ZXRjLikgYW5kIHRoZW4gdGhlIGZsb3cgYWN0aW9uIHdvdWxkIGJlIGEgc2VjdXJpdHkgZmxvdyBh Y3Rpb24NCj4gaW5zdGVhZCBvZiB0aGUgY3J5cHRvIGZsb3cgYWN0aW9uIGFzIHByb3Bvc2VkIGJl bG93Lg0KPiANCj4gVGhpcyBnaXZlcyBhIGZsZXhpYmxlIGFwcHJvYWNoIHRvIGZ1dHVyZSBleHRl bnNpb24gdG8gb3RoZXIgcHJvdG9jb2xzDQo+IGFuZCBtb2RlcyAoY3J5cHRvIHZzIGZ1bGwgb2Zm bG9hZCkgYW5kIGFsc28gYWRkcmVzc2VzIGFuIGlzc3VlIHJhaXNlZCBvbg0KPiB0aGUgb3VyIHBy ZXZpb3VzIFJGQyByZWdhcmRpbmcgcG9sbHV0aW5nIHRoZSBjcnlwdG8gbmFtZXNwYWNlIHdpdGgN Cj4gc2VjdXJpdHkgcHJvdG9jb2wgc3BlY2lmaWMgaW5mb3JtYXRpb24uIE9uZSBvdGhlciBpc3N1 ZSB3aXRoIHB1dHRpbmcgdGhlDQo+IHByb3RvY29sIGluZm9ybWF0aW9uIGludG8gYSBjcnlwdG8g dHJhbnNmb3JtIGlzIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbnkNCj4gY3J5cHRvIGRldmljZXMgd2hp Y2ggc3VwcG9ydCB0aGVtLg0KPiANCj4gDQoNCldlIGFncmVlIHRoYXQgaXQgbWFrZXMgc2Vuc2Ug dG8gdXNlIG9wYXF1ZSBoYW5kbGVzIGZvciB0aGUgY3J5cHRvIHNlc3Npb24uDQoNClRoZSBtYWlu IGFkdmFudGFnZSBhcyB5b3UndmUgbWVudGlvbmVkIGJlbG93IGlzIGxlc3Mgb3ZlcmhlYWQgZHVy aW5nDQp1cGRhdGVzLiBIb3dldmVyLCB0aGUgdXBkYXRlIHByb2JsZW0gaXMgcmVsZXZhbnQgZm9y IGFsbCBydGVfZmxvd19hY3Rpb24NCmFuZCBjcnlwdG8gaXMgbm90IHNwZWNpYWwgaW4gdGhhdCBz ZW5zZS4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gZ2VuZXJhbGl6ZQ0KdGhlIHJ0ZV9zZWN1cml0 eV9zZXNzXyogYXBpIHRvIHNvbWV0aGluZyBsaWtlIHJ0ZV9mbG93X2FjdGlvbl9zZXNzXyouDQoN ClNvbWUgZXhhbXBsZXMgdGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gY3J5cHRvIHdoZXJlIGl0IHdv dWxkIGJlIHVzZWZ1bDoNCi0gZW5jYXAvZGVjYXA6IGFkZCBhIGZsb3cgdG8gYmUgZW5jYXAvZGVj YXAgdXNpbmcgc3BlY2lmaWMgcGFyYW1ldGVycw0Kb3IgdXBkYXRlIHRoZSB0dW5uZWwgcGFyYW1l dGVycy4NCi0gcnNzOiBhZGQgYSBmbG93IHRvIGdvIHRocm91Z2ggcnNzIHVzaW5nIHNwZWNpZmlj IGhhc2ggb3IgdXBkYXRlIHRoZSBoYXNoDQprZXkuDQoNCj4gDQo+ID4gMS4gSW5saW5lIGNyeXB0 byBwcm9jZXNzaW5nDQo+ID4gMS4xLiBEZXZpY2UgQ2FwYWJpbGl0aWVzOg0KPiA+ICAgICBvIERF Vl9SWF9PRkZMT0FEX0lQU0VDX0NSWVBUTyAgICAgICAgICAgIC0gZGV2aWNlIHN1cHBvcnQgaW5s aW5lIGlwc2VjDQo+ID4gICAgIGRlY3J5cHRpb24gb2ZmbG9hZC4NCj4gPiAgICAgbyBERVZfVFhf T0ZGTE9BRF9JUFNFQ19DUllQVE9fSFdfVFJBSUxFUiAtIGRldmljZSBzdXBwb3J0IGlubGluZQ0K PiBpcHNlYw0KPiA+ICAgICBlbmNyeXB0ZWQgb2ZmbG9hZCwgaXBzZWMgdHJhaWxlciBpcyBhZGRl ZCBieSBoYXJkd2FyZS4NCj4gPiAgICAgbyBERVZfVFhfT0ZGTE9BRF9JUFNFQ19DUllQVE9fVFNP ICAgICAgICAtIGRldmljZSBzdXBwb3J0IGlubGluZSBpcHNlYw0KPiA+ICAgICBlbmNyeXB0ZWQg b2ZmbG9hZCB3aXRoaW4gc2VnbWVudCBsYXJnZSBwYWNrZXRzLCBpcHNlYyB0cmFpbGVyIGlzIGFk ZGVkIGJ5DQo+ID4gICAgIGhhcmR3YXJlIHRvIGVhY2ggc2VnbWVudC4NCj4gPg0KPiA+IDEuMi4g Q29uZmlndXJhdGlvbiBBUEk6DQo+ID4gICAgIFdlIHdpbGwgbW9kaWZ5IHN0ZWVyaW5nIEFQSSBp biBvcmRlciB0byBhZGQgSVBzZWMgdHJhbnNmb3JtIGFjdGlvbnMuDQo+ID4NCj4gPiAgICAgbyBE ZWZpbml0aW9uIG9mIEVTUCBoZWFkZXI6DQo+ID4NCj4gPiAgICAgc3RydWN0IGVzcF9oZHIgew0K PiA+ICAgICAgICAgaW50MzJfdCBzcGk7ICAvKio8IFNlY3VyaXR5IFBhcmFtZXRlcnMgSW5kZXgg Ki8NCj4gPiAgICAgICAgIHVpbnQzMl90IHNlcTsgIC8qKjwgcGFja2V0IHNlcXVlbmNlIG51bWJl ciAqLw0KPiA+ICAgICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCj4gPg0KPiA+ICAg ICBvIE5ldyBmbG93IGl0ZW06DQo+ID4NCj4gPiAgICAgZW51bSBydGVfZmxvd19pdGVtX3R5cGUg ew0KPiA+ICAgICAgICAgLi4uDQo+ID4NCj4gPiAgICAgICAgIC8qKg0KPiA+ICAgICAgICAgICog TWF0Y2hlcyBhIEVTUCBoZWFkZXIuDQo+ID4gICAgICAgICAgKg0KPiA+ICAgICAgICAgICogU2Vl IHN0cnVjdCBydGVfZmxvd19pdGVtX2VzcC4NCj4gPiAgICAgICAgICAqLw0KPiA+ICAgICAgICAg UlRFX0ZMT1dfSVRFTV9UWVBFX0VTUCwNCj4gPiAgICAgfTsNCj4gPg0KPiA+ICAgICBzdHJ1Y3Qg cnRlX2Zsb3dfaXRlbV9lc3Agew0KPiA+ICAgICAgICAgc3RydWN0IGVzcF9oZHIgaGRyOyAvKio8 IEVTUCBoZWFkZXIgZGVmaW5pdGlvbi4gKi8NCj4gPiAgICAgfTsNCj4gPg0KPiA+ICAgICBzdHJ1 Y3QgcnRlX2Zsb3dfaXRlbV9lc3Agew0KPiA+ICAgICAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCBy dGVfZmxvd19pdGVtX2VzcCBydGVfZmxvd19pdGVtX2VzcF9tYXNrID0gew0KPiA+ICAgICAgICAg LmhkciA9IHsNCj4gPiAgICAgICAgICAgICAuc3BpID0gMHhmZmZmZmZmZiwNCj4gPiAgICAgICAg IH0sDQo+ID4gICAgIH07DQo+ID4NCj4gPiAgICAgbyBOZXcgaXBzZWMgdHJhbnNmb3JtOg0KPiA+ ICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19pcHNlY194Zm9ybSB7DQo+ID4gICAgICAgICBlbnVtIHJ0 ZV9jcnlwdG9fY2lwaGVyX29wZXJhdGlvbiBvcDsNCj4gPiAgICAgICAgIGVudW0gcnRlX2NyeXB0 b19jaXBoZXJfYWxnb3JpdGhtIGFsZ287DQo+ID4NCj4gPiAgICAgICAgIHN0cnVjdCB7DQo+ID4g ICAgICAgICAgICAgdWludDhfdCAqZGF0YTsgICAgLyoqPCBwb2ludGVyIHRvIGtleSBkYXRhICov DQo+ID4gICAgICAgICAgICAgc2l6ZV90IGxlbmd0aDsgICAgLyoqPCBrZXkgbGVuZ3RoIGluIGJ5 dGVzICovDQo+ID4gICAgICAgICB9IGtleTsNCj4gPg0KPiA+ICAgICAgICAgdWludDMyX3Qgc2Fs dDsgLyogc2FsdCBmb3IgdGhpcyBzZWN1cml0eSBhc3NvY2lhdGlvbiAqLw0KPiA+ICAgICB9Ow0K PiA+DQo+ID4gICAgIC8qKiBDcnlwdG8gdHJhbnNmb3JtYXRpb24gdHlwZXMgKi8NCj4gPiAgICAg ZW51bSBydGVfY3J5cHRvX3N5bV94Zm9ybV90eXBlIHsNCj4gPiAgICAgICAgIC4uLg0KPiA+ICAg ICAgICAgUlRFX0NSWVBUT19TWU1fWEZPUk1fQ0lQSEVSLCAgICAvKio8IENpcGhlciB4Zm9ybSAg Ki8NCj4gPiAgICAgICAgIFJURV9DUllQVE9fU1lNX1hGT1JNX0lQU0VDLCAgICAgICAgLyoqPCBJ UHNlYyB4Zm9ybSAgKi8NCj4gPiAgICAgfTsNCj4gPg0KPiA+ICAgICBzdHJ1Y3QgcnRlX2NyeXB0 b19zeW1feGZvcm0gew0KPiA+ICAgICAgICAgLi4uDQo+ID4gICAgICAgICBzdHJ1Y3QgcnRlX2Ny eXB0b19pcHNlY194Zm9ybSBpcHNlYzsNCj4gPiAgICAgICAgIC8qKjwgSVBzZWMgeGZvcm0gKi8N Cj4gPiAgICAgfTsNCj4gPg0KPiBBcyBtZW50aW9uZWQgYWJvdmUgSSB0aGluayBpdCB3b3VsZCBi ZSBiZXR0ZXIgdG8ga2VlcCB0aGUgc2VjdXJpdHkNCj4gcHJvdG9jb2wgc3BlY2lmaWMgaW5mb3Jt YXRpb24gc2VwYXJhdGUgdG8gdGhlIGNyeXB0byBBUElzDQo+IA0KPiA+DQo+ID4gICAgIG8gTmV3 IGZsb3cgYWN0aW9uOg0KPiA+DQo+ID4gICAgIGVudW0gcnRlX2Zsb3dfYWN0aW9uX3R5cGUgew0K PiA+ICAgICAgICAgLi4uDQo+ID4NCj4gPiAgICAgICAgIC8qKg0KPiA+ICAgICAgICAgICogRW5j cnlwdHMgb3IgZGVjcnlwdHMgcGFja2V0cyBtYXRjaGluZyB0aGlzIGZsb3cuIE11c3QgYmUgZWl0 aGVyIGVncmVzcw0KPiA+ICAgICAgICAgICogb3IgaW5ncmVzcywgYnV0IG5vdCBib3RoLg0KPiA+ ICAgICAgICAgICoNCj4gPiAgICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2Ny eXB0by4NCj4gPiAgICAgICAgICAqLw0KPiA+ICAgICAgICAgUlRFX0ZMT1dfQUNUSU9OX1RZUEVf Q1JZUFRPLA0KPiA+ICAgICB9Ow0KPiA+DQo+ID4gICAgIHN0cnVjdCBydGVfZmxvd19hY3Rpb25f Y3J5cHRvIHsNCj4gPiAgICAgICAgIHN0cnVjdCBydGVfY3J5cHRvX3N5bV94Zm9ybSB4Zm9ybTsg LyogYXBwbGllZCBjcnlwdG8gdHJhbnNmb3JtICovDQo+ID4gICAgIH07DQo+ID4NCj4gPg0KPiA+ ICBDb25maWd1cmF0aW9uIFBhdGgNCj4gPiAgICAgICAgICB8DQo+ID4gKy0tLS0tLS0tfC0tLS0t LS0tKw0KPiA+IHwgICAgQWRkL1JlbW92ZSAgIHwNCj4gPiB8ICAgICBJUHNlYyBTQSAgICB8ICAg PC0tLS0tLSBCdWlsZCBjcnlwdG8gZmxvdyBhY3Rpb24gb2YgaXBzZWMgdHJhbnNmb3JtDQo+ID4g fCAgICAgICAgfCAgICAgICAgfA0KPiA+IHwtLS0tLS0tLXwtLS0tLS0tLXwNCj4gPiAgICAgICAg ICB8DQo+ID4gKy0tLS0tLS0tVi0tLS0tLS0tKw0KPiA+IHwgICBGbG93IEFQSSAgICAgIHwNCj4g PiArLS0tLS0tLS18LS0tLS0tLS0rDQo+ID4gICAgICAgICAgfA0KPiA+ICstLS0tLS0tLVYtLS0t LS0tLSsNCj4gPiB8ICAgICAgICAgICAgICAgICB8DQo+ID4gfCAgICAgTklDIFBNRCAgICAgfCAg IDwtLS0tLS0gQWRkL1JlbW92ZSBTQSB0by9mcm9tIGh3IGNvbnRleHQNCj4gPiB8ICAgICAgICAg ICAgICAgICB8DQo+ID4gKy0tLS0tLS0tfC0tLS0tLS0tKw0KPiA+ICAgICAgICAgIHwNCj4gPiAr LS0tLS0tLS18LS0tLS0tLS0rDQo+ID4gfCAgSFcgQUNDRUxFUkFURUQgfA0KPiA+IHwgICAgICAg IE5JQyAgICAgIHwNCj4gPiB8ICAgICAgICAgICAgICAgICB8DQo+ID4gKy0tLS0tLS0tfC0tLS0t LS0tKw0KPiA+DQo+ID4gbyBBZGQvRGVsZXRlIFNBIGZsb3c6DQo+ID4gICAgIFRvIGFkZCBhIG5l dyBpbmxpbmUgU0EgY29uc3RydWN0IGEgcnRlX2Zsb3dfaXRlbSBmb3IgRXRoZXJuZXQgKyBJUCAr IEVTUA0KPiA+ICAgICB1c2luZyB0aGUgU0Egc2VsZWN0b3JzIGFuZCB0aGUgcnRlX2NyeXB0b19p cHNlY194Zm9ybSBhcyB0aGUNCj4gcnRlX2Zsb3dfYWN0aW9uLg0KPiA+ICAgICBOb3RlIHRoYXQg YW55IHJ0ZV9mbG93X2l0ZW1zIG1heSBiZSBlbXB0eSwgd2hpY2ggbWVhbnMgaXQgaXMgbm90IGNo ZWNrZWQuDQo+ID4NCj4gPiAgICAgSW4gaXRzIG1vc3QgYmFzaWMgZm9ybSwgSVBzZWMgZmxvdyBz cGVjaWZpY2F0aW9uIGlzIGFzIGZvbGxvd3M6DQo+ID4gKy0tLS0tLS0rICAgICArLS0tLS0tLS0t LSsgICAgKy0tLS0tLS0tKyAgICArLS0tLS0rDQo+ID4gfCAgRXRoICB8IC0+ICB8ICAgSVA0LzYg IHwgLT4gfCAgIEVTUCAgfCAtPiB8IEVORCB8DQo+ID4gKy0tLS0tLS0rICAgICArLS0tLS0tLS0t LSsgICAgKy0tLS0tLS0tKyAgICArLS0tLS0rDQo+ID4NCj4gPiAgICAgSG93ZXZlciwgdGhlIEFQ SSBjYW4gcmVwcmVzZW50LCBJUHNlYyBjcnlwdG8gb2ZmbG9hZCB3aXRoIGFueQ0KPiBlbmNhcHN1 bGF0aW9uOg0KPiA+DQo+ID4gKy0tLS0tLS0rICAgICAgICAgICAgKy0tLS0tLS0tKyAgICArLS0t LS0rDQo+ID4gfCAgRXRoICB8IC0+ICAuLi4gLT4gfCAgIEVTUCAgfCAtPiB8IEVORCB8DQo+ID4g Ky0tLS0tLS0rICAgICAgICAgICAgKy0tLS0tLS0tKyAgICArLS0tLS0rDQo+ID4NCj4gRm9yIGVn cmVzcyBJIHRoaW5rIHdlIG5lZWQgdG8gc3VwcG9ydCBjcmVhdGluZyBtdWx0aXBsZSBmbG93cyB1 c2luZyB0aGUNCj4gc2FtZSBjcnlwdG8gYWN0aW9uLCBpLmUuIG11bHRpcGxlIHBsYWludGV4dCBm bG93cyB0byBhIHNpbmdsZSBJUHNlYyBTQS4NCj4gSSB0aGluayBoYXZpbmcgdGhlIHNlY3VyaXR5 X3Nlc3MgYWN0aW9uIHdvdWxkIG1ha2UgdGhpcyBtdWNoIGVhc2llciB0aGFuDQo+IGhhdmluZyB0 byBtYXRjaCBjcnlwdG8gdHJhbnNmb3JtIGNoYWlucyB3aXRoaW4gdGhlIFBNRCB0byBzZWUgaWYg dGhlDQo+IGFjdGlvbiBTQSBpcyB0aGUgc2FtZSBhcyBhbiBleGlzdGluZyBvbmUuDQo+IA0KPiBB bHNvIGl0IHdpbGwgYmUgZGlmZmljdWx0IHRvIHVwZGF0ZSB0aGUgdHVubmVsIHN0YXRlIGlmIHRo ZXJlIGlzbid0IGFzDQo+IHNlcGFyYXRlIEFQSSBmb3IgY29uZmlndXJhdGlvbi4NCj4gDQoNCkkg YWdyZWUuIEFzIEkndmUgc2FpZCBhYm92ZSwgdGhpcyBpcyB0cnVlIGZvciBhbGwgcnRlX2Zsb3df YWN0aW9uLg0KDQo+ID4gMS4zLiBEYXRhIFBhdGggUHJvY2Vzc2luZzoNCj4gPg0KPiA+IDEuMy4x LiBtYnVmIENoYW5nZXMNCj4gPiAgICAgbyBOZXcgcnggbWJ1ZiBvZmZsb2FkIGZsYWdzIHRvIGlu ZGljYXRlIHRoYXQgYSBwYWNrZXQgaGFzIGdvbmUgdGhyb3VnaA0KPiA+ICAgICBpbmxpbmUgY3J5 cHRvIHByb2Nlc3Npbmcgb24gdG8gdGhlIE5JQyBQTUQgYW5kIHRoZSByZXN1bHQgb2YgdGhpcyBw cm9jZXNzaW5nLg0KPiA+ICAgICBPbiBmYWlsdXJlLCBwYWNrZXRzIHNob3VsZCBiZSBkcm9wcGVk Lg0KPiA+ICAgICAvKioNCj4gPiAgICAgICogTWFzayBvZiBiaXRzIHVzZWQgdG8gZGV0ZXJtaW5l IHRoZSBzdGF0dXMgb2YgUlggSVBzZWMgY3J5cHRvLg0KPiA+ICAgICAgKiAtIFBLVF9SWF9JUFNF Q19DUllQVE9fVU5LTk9XTiAgICAgOiBubyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgUlgNCj4gSVBz ZWMgY3J5cHRvDQo+ID4gICAgICAqIC0gUEtUX1JYX0lQU0VDX0NSWVBUTyDvv70gICAgICAgICAg IDogZGVjcnlwdGlvbiBhbmQgYXV0aGVudGljYXRpb24gd2VyZQ0KPiBwZXJmb3JtZWQNCj4gPiAg ICAgICogLSBQS1RfUlhfSVBTRUNfQ1JZUFRPX0ZBSUxFRCAgICAgIDogaXBzZWMgcHJvY2Vzc2lu ZyBmYWlsZWQNCj4gPiAgICAgICovDQo+ID4gICAgICNkZWZpbmUgUEtUX1JYX0lQU0VDX0NSWVBU T19VTktOT1dOICAgICAgICAgMA0KPiBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBtZSwgaXQn cyBpbXBsaWNpdCBpbiB0aGUgZmxhZyBiZWxvdyBub3QgYmVpbmcNCj4gc2V0Pw0KPiANCg0KVGhp cyBpcyBzaW1pbGFyIHRvIFBLVF9SWF9JUF9DS1NVTV9VTktOT1dOIGFuZCBpdCBhcHBlYXJzIGhl cmUgdG8NCm1ha2UgdGhpbmdzIG1vcmUgY2xlYXIgdG8gdGhlIHJlYWRlci4NCg0KPiA+ICAgICAj ZGVmaW5lIFBLVF9SWF9JUFNFQ19DUllQVE8gICAgICAgICAgICAgICAgICgxVUxMIDw8IDE4KQ0K PiA+ICAgICAjZGVmaW5lIFBLVF9SWF9JUFNFQ19DUllQVE9fRkFJTEVEICAgICAgICAgICgxVUxM IDw8IDE5KQ0KPiA+DQo+ID4gICAgIG8gTmV3IHR4IG1idWYgb2ZmbG9hZCBmbGFncyB0byBpbmRp Y2F0ZSB0aGF0IGEgcGFja2V0IHJlcXVpcmVzIElQc2VjIGlubGluZQ0KPiA+ICAgICBjcnlwdG8g cHJvY2Vzc2luZyBhbmQgdHJhaWxlciBjb25zdHJ1Y3Rpb24gb24gdGhlIE5JQyBQTUQuDQo+ID4N Cj4gSSBrbm93IFRob21hcyByYWlzZWQgYSBjb25jZXJuIG9mIGhhdmluZyB0byBhZGQgbXVsdGlw bGUgY3J5cHRvIGZsYWdzDQo+IGZvciBkaWZmZXJlbnQgcHJvdG9jb2wuIElmIHdlIGdvIHdpdGgg dGhlIHNlY3VyaXR5IHNlc3Npb24gbW9kZWwsIHRoZW4NCj4gUEtUX1JYX1NFQ1VSSVRZICYgUEtU X1JYX1NFQ1VSSVRZX0ZBSUxFRCBmbGFnIHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8NCj4gc3VwcG9y dCBhbGwgc2VjdXJpdHkgcHJvdG9jb2xzIEkgdGhpbmssIGVzcGVjaWFsbHkgaWYgd2UgYWRkZWQg YSBnZW5lcmljDQo+IGZpZWxkIGZvciBzZWN1cml0eV9zZXNzaW9uX2lkIGluIHRoZSBtYnVmIHdo aWNoIGNvdWxkIGJlIHBvcHVsYXRlZCBpbg0KPiB0aGUgcnhfYnVyc3QgZnVuY3Rpb24uDQo+IA0K PiA+ICAgICAvKioNCj4gPiAgICAgICogT2ZmbG9hZCB0aGUgSVBzZWMgZW5jcnlwdGlvbiB3aXRo IHNvZnR3YXJlIHByb3ZpZGVkIHRyYWlsZXIuDQo+ID4gICAgICAqIFRoaXMgZmxhZyBtdXN0IGJl IHNldCBieSB0aGUgYXBwbGljYXRpb24gdG8gZW5hYmxlIHRoaXMNCj4gPiAgICAgICogb2ZmbG9h ZCBmZWF0dXJlIGZvciBhIHBhY2tldCB0byBiZSB0cmFuc21pdHRlZC4NCj4gPiAgICAgICovDQo+ ID4gICAgICNkZWZpbmUgUEtUX1RYX0lQU0VDX0NSWVBUTyAgICAgICAgKDFVTEwgPDwgNDIpDQo+ ID4NCj4gPiAgICAgLyoqDQo+ID4gICAgICAgICogT2ZmbG9hZCB0aGUgSVBzZWMgZW5jcnlwdGlv biBhbmQgdHJhaWxlciBjb25zdHJ1Y3Rpb24uIFRoaXMgZmxhZyBtdXN0DQo+ID4gICAgICAgICog YmUgc2V0IGJ5IHRoZSBhcHBsaWNhdGlvbiB0byBlbmFibGUgdGhpcyBvZmZsb2FkIGZlYXR1cmUg Zm9yIGEgcGFja2V0DQo+ID4gICAgICAgICogdG8gYmUgdHJhbnNtaXR0ZWQuDQo+ID4gICAgICAg ICovDQo+ID4gICAgICAgI2RlZmluZSBQS1RfVFhfSVBTRUNfQ1JZUFRPX0hXX1RSQUlMRVIgICAg ICgxVUxMIDw8IDQzKQ0KPiANCj4gV291bGQgdGhlIGh3IHRyYWlsZXIgbm90IGJlIGltcGxpY2l0 IGJ5IHRoZSBkZXZpY2UgeW91IGFyZSB1c2luZywgb3IgZG8NCj4geW91IHRoaW5rIHRoYXQgdGhl cmUgbWF5IGJlIGEgY2FzZSB3aGVuIHNvbWUgZmxvd3Mgd291bGQgaGF2ZSB0aGlzIHNldA0KPiBh bmQgc29tZSB3b3VsZG4ndD8NCj4gDQoNCldoYXQgZG8geW91IG1lYW4gYnkgImltcGxpY2l0IGJ5 IHRoZSBkZXZpY2UiPw0KDQpUaGUgSVBzZWMgdHJhaWxlciB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBi eSB0aGUgZGV2aWNlIGZvciBwYWNrZXRzIHdoaWNoIHNldCB0aGlzIGZsYWcuDQpTb21lIGRldmlj ZXMgbWlnaHQgcmVxdWlyZSB0aGUgdXNlciB0byBwcm92aWRlIHRoZSB0cmFpbGVyIG9mIHRoZSBF U1AgcGFja2V0Lg0KDQpEb2Vzbid0IHlvdXIgZGV2aWNlIHJlcXVpcmUgdGhhdD8NCg0KVXNlcnMg b2YgdGhlc2UgZGV2aWNlcyBjb3VsZCB1c2UgdGhlIFBLVF9UWF9JUFNFQ19DUllQVE8gYWxvbmUg dG8gaW5kaWNhdGUNCnRoYXQgc29mdHdhcmUgcHJvdmlkZXMgdGhlIHRyYWlsZXIgYW5kIGV4cGVj dHMgaW5saW5lIGNyeXB0byBvZmZsb2FkLg0K