From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0056.outbound.protection.outlook.com [104.47.1.56]) by dpdk.org (Postfix) with ESMTP id DEA521C0BA for ; Fri, 13 Apr 2018 14:09:40 +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=M+KtK2u7ILvyERTPi5sKNCSv6aWusk39q3kbtx0SOM0=; b=uoYCRwUcbFL06NuNSW3wqo/rGuKSssApvIqTrK15m7x0vzB51e+imT7fxaDY3DZ6FJ2397+H8p0L2KiTyeYLGjMYzxghSehD85YzjGEb//c5PICDsSfkdXOIkPaK+mVzjtTAiJ0G9JetoAdjjKMFM3if4nMho+ezJXIk2l9+mis= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB1758.eurprd05.prod.outlook.com (10.165.236.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.10; Fri, 13 Apr 2018 12:09:36 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::6da4:14c3:f5d8:3f4a%14]) with mapi id 15.20.0675.014; Fri, 13 Apr 2018 12:09:30 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH v2 04/15] net/mlx5: support Rx tunnel type identification Thread-Index: AQHT0NCyvMpimHYno0ayzuHHFIBwyaP6HF2AgAEWWqCAAbMrAIAAQwxAgAE61wCAADissA== Date: Fri, 13 Apr 2018 12:09:30 +0000 Message-ID: References: <20180410133415.189905-1-xuemingl@mellanox.com> <20180410133415.189905-5-xuemingl@mellanox.com> <20180410151711.zlxxkzycknrtlwhr@laranjeiro-vm.dev.6wind.com> <20180412095058.3vcynmscyvc6wl7e@laranjeiro-vm.dev.6wind.com> <20180413083748.nshoium4m5dpysvb@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180413083748.nshoium4m5dpysvb@laranjeiro-vm.dev.6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; x-originating-ip: [114.83.166.179] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB1758; 7:qFIsYn735M9wHCf2c4HfjDSuETkleHaT780A4QmUt+S4S1R7qDjp9B6Y7y6WLgFAKxfteHRDsEIcMFm9GsPJUasm304lPjov91qhweD11tNqbLK0GNugASEqGpD9VNvIr5xewgZoFxwidsVvT3o1uZiRGdLTxZ5dYfpyHGrmE+krWwzNP2wLF0Vqg5iEKPqiI+E9t6qut3Pl6o8kvi9xedzZSoNbQ0DeOhP5ilAZxrUoPyQAxJOWiGQLGGkVtudq x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB1758; x-ms-traffictypediagnostic: VI1PR05MB1758: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(45079756050767); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231232)(944501327)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR05MB1758; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB1758; x-forefront-prvs: 0641678E68 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(346002)(39380400002)(39860400002)(396003)(199004)(13464003)(189003)(3660700001)(7696005)(53936002)(476003)(45080400002)(76176011)(7736002)(9686003)(6306002)(305945005)(55016002)(74316002)(3280700002)(446003)(93886005)(478600001)(4326008)(14454004)(2906002)(25786009)(486006)(97736004)(2900100001)(6246003)(8936002)(8676002)(966005)(81156014)(81166006)(186003)(26005)(106356001)(3846002)(6116002)(6436002)(33656002)(5250100002)(105586002)(5660300001)(11346002)(86362001)(99286004)(316002)(66066001)(102836004)(59450400001)(229853002)(53546011)(6506007)(68736007)(6916009)(54906003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1758; H:VI1PR05MB1678.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: IIkBtl2qZNmliHhKpEFS3qHuzvoy709X5xbuAAMQnjwHJtmzh0dvI/J3PyKNJHDWKPWYbMlLiHh4C97+lvPKpcQW9jgXNhAWl68xyZqDqS0xppRC4HmHlS5L3GrIq5HImBsV+ggEAMr4CttnguJocQAn+J1pIqWY74NhGJ2kvhn7ySRHaXFFpBK6XNDkiKf1 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: a417d6d2-bbf8-4363-06e2-08d5a137695c X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: a417d6d2-bbf8-4363-06e2-08d5a137695c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2018 12:09:30.4767 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1758 Subject: Re: [dpdk-dev] [PATCH v2 04/15] net/mlx5: support Rx tunnel type identification 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: Fri, 13 Apr 2018 12:09:41 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlvIExhcmFuamVp cm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBGcmlkYXksIEFwcmlsIDEz LCAyMDE4IDQ6MzggUE0NCj4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFu b3guY29tPg0KPiBDYzogU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBkZXZA ZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAwNC8xNV0gbmV0L21seDU6IHN1cHBv cnQgUnggdHVubmVsIHR5cGUNCj4gaWRlbnRpZmljYXRpb24NCj4gDQo+IE9uIFRodSwgQXByIDEy LCAyMDE4IGF0IDAyOjI3OjQ1UE0gKzAwMDAsIFh1ZW1pbmcoU3RldmVuKSBMaSB3cm90ZToNCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBOw6lsaW8gTGFyYW5q ZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+DQo+ID4gPiBTZW50OiBUaHVyc2RheSwg QXByaWwgMTIsIDIwMTggNTo1MSBQTQ0KPiA+ID4gVG86IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVl bWluZ2xAbWVsbGFub3guY29tPg0KPiA+ID4gQ2M6IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVs bGFub3guY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDA0 LzE1XSBuZXQvbWx4NTogc3VwcG9ydCBSeCB0dW5uZWwgdHlwZQ0KPiA+ID4gaWRlbnRpZmljYXRp b24NCj4gPiA+DQo+ID4gPiBPbiBXZWQsIEFwciAxMSwgMjAxOCBhdCAwODoxMTo1MEFNICswMDAw LCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4gPiA+IEhpIE5lbGlvLA0KPiA+ID4gPg0K PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogTsOp bGlvIExhcmFuamVpcm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiA+ID4gPiA+IFNl bnQ6IFR1ZXNkYXksIEFwcmlsIDEwLCAyMDE4IDExOjE3IFBNDQo+ID4gPiA+ID4gVG86IFh1ZW1p bmcoU3RldmVuKSBMaSA8eHVlbWluZ2xAbWVsbGFub3guY29tPg0KPiA+ID4gPiA+IENjOiBTaGFo YWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gPiA+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMDQvMTVdIG5ldC9tbHg1OiBzdXBwb3J0IFJ4IHR1bm5l bCB0eXBlDQo+ID4gPiA+ID4gaWRlbnRpZmljYXRpb24NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9u IFR1ZSwgQXByIDEwLCAyMDE4IGF0IDA5OjM0OjA0UE0gKzA4MDAsIFh1ZW1pbmcgTGkgd3JvdGU6 DQo+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGludHJvZHVjZWQgdHVubmVsIHR5cGUgaWRlbnRpZmlj YXRpb24gYmFzZWQgb24gZmxvdw0KPiBydWxlcy4NCj4gPiA+ID4gPiA+IElmIGZsb3dzIG9mIG11 bHRpcGxlIHR1bm5lbCB0eXBlcyBidWlsdCBvbiBzYW1lIHF1ZXVlLA0KPiA+ID4gPiA+ID4gUlRF X1BUWVBFX1RVTk5FTF9NQVNLIHdpbGwgYmUgcmV0dXJuZWQsIGJpdHMgaW4gZmxvdyBtYXJrDQo+ ID4gPiA+ID4gPiBjb3VsZCBiZSB1c2VkIGFzIHR1bm5lbCB0eXBlIGlkZW50aWZpZXIuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBJIGRvbid0IHNlZSBhbnl3aGVyZSBpbiB0aGlzIHBhdGNoIHdoZXJl IHRoZSBiaXRzIGFyZSByZXNlcnZlZA0KPiA+ID4gPiA+IHRvIGlkZW50aWZ5IGEgZmxvdywgbm9y IHZhbHVlcyB3aGljaCBjYW4gaGVscCB0byBpZGVudGlmeSBpdC4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IElzIHRoaXMgbWlzc2luZz8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFueXdheSB3ZSBoYXZl IGFscmVhZHkgdmVyeSBmZXcgYml0cyBpbiB0aGUgbWFyayBtYWtpbmcgaXQNCj4gPiA+ID4gPiBk aWZmaWN1bHQgdG8gYmUgdXNlZCBieSB0aGUgdXNlciwgcmVzZXJ2aW5nIGFnYWluIHNvbWUgdG8g bWF5DQo+ID4gPiA+ID4gbGVhZCB0byByZW1vdmUgdGhlIG1hcmsgc3VwcG9ydCBmcm9tIHRoZSBm bG93cy4NCj4gPiA+ID4NCj4gPiA+ID4gTm90IGFsbCB1c2VycyB3aWxsIHVzZSBtdWx0aXBsZSB0 dW5uZWwgdHlwZXMsIHRoaXMgaXMgbm90IGluY2x1ZGVkDQo+ID4gPiA+IGluIHRoaXMgcGF0Y2gg c2V0IGFuZCBsZWZ0IHRvIHVzZXIgZGVjaXNpb24uIEknbGwgdXBkYXRlIGNvbW1lbnRzDQo+ID4g PiA+IHRvIG1ha2UNCj4gPiA+IHRoaXMgY2xlYXIuDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ ID4NCj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG1lbGxh bm94LmNvbT4NCj4gPiA+IDxzbmlwLz4NCj4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ICsg KiBSWFEgdXBkYXRlIGFmdGVyIGZsb3cgcnVsZSBjcmVhdGlvbi4NCj4gPiA+ID4gPiA+ICsgKg0K PiA+ID4gPiA+ID4gKyAqIEBwYXJhbSBkZXYNCj4gPiA+ID4gPiA+ICsgKiAgIFBvaW50ZXIgdG8g RXRoZXJuZXQgZGV2aWNlLg0KPiA+ID4gPiA+ID4gKyAqIEBwYXJhbSBmbG93DQo+ID4gPiA+ID4g PiArICogICBQb2ludGVyIHRvIHRoZSBmbG93IHJ1bGUuDQo+ID4gPiA+ID4gPiArICovDQo+ID4g PiA+ID4gPiArc3RhdGljIHZvaWQNCj4gPiA+ID4gPiA+ICttbHg1X2Zsb3dfY3JlYXRlX3VwZGF0 ZV9yeHFzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QNCj4gPiA+ID4gPiA+ICtydGVf Zmxvdw0KPiA+ID4gPiA+ID4gKypmbG93KSB7DQo+ID4gPiA+ID4gPiArCXN0cnVjdCBwcml2ICpw cml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiA+ID4gPiA+ICsJdW5zaWduZWQgaW50 IGk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArCWlmICghZGV2LT5kYXRhLT5kZXZfc3Rh cnRlZCkNCj4gPiA+ID4gPiA+ICsJCXJldHVybjsNCj4gPiA+ID4gPiA+ICsJZm9yIChpID0gMDsg aSAhPSBmbG93LT5yc3NfY29uZi5xdWV1ZV9udW07ICsraSkgew0KPiA+ID4gPiA+ID4gKwkJc3Ry dWN0IG1seDVfcnhxX2RhdGEgKnJ4cV9kYXRhID0gKCpwcml2LT5yeHFzKQ0KPiA+ID4gPiA+ID4g KwkJCQkJCSBbKCpmbG93LT5xdWV1ZXMpW2ldXTsNCj4gPiA+ID4gPiA+ICsJCXN0cnVjdCBtbHg1 X3J4cV9jdHJsICpyeHFfY3RybCA9DQo+ID4gPiA+ID4gPiArCQkJY29udGFpbmVyX29mKHJ4cV9k YXRhLCBzdHJ1Y3QgbWx4NV9yeHFfY3RybCwgcnhxKTsNCj4gPiA+ID4gPiA+ICsJCXVpbnQ4X3Qg dHVubmVsID0gUFRZUEVfSURYKGZsb3ctPnR1bm5lbCk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiArCQlyeHFfZGF0YS0+bWFyayB8PSBmbG93LT5tYXJrOw0KPiA+ID4gPiA+ID4gKwkJaWYg KCF0dW5uZWwpDQo+ID4gPiA+ID4gPiArCQkJY29udGludWU7DQo+ID4gPiA+ID4gPiArCQlyeHFf Y3RybC0+dHVubmVsX3R5cGVzW3R1bm5lbF0gKz0gMTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkg ZG9uJ3QgdW5kZXJzdGFuZCB3aHkgeW91IG5lZWQgc3VjaCBhcnJheSwgdGhlIE5JQyBpcyB1bmFi bGUgdG8NCj4gPiA+ID4gPiByZXR1cm4gdGhlIHR1bm5lbCB0eXBlIGhhcyBpdCByZXR1cm5zIG9u bHkgb25lIGJpdCBzYXlpbmcgdHVubmVsLg0KPiA+ID4gPiA+IFdoeSBkb24ndCBpdCBzdG9yZSBp biB0aGUgcHJpdiBzdHJ1Y3R1cmUgdGhlIGN1cnJlbnQgY29uZmlndXJlZA0KPiB0dW5uZWw/DQo+ ID4gPiA+DQo+ID4gPiA+IFRoaXMgYXJyYXkgaXMgdXNlZCB0byBjb3VudCB0dW5uZWwgdHlwZXMg Ym91bmQgdG8gcXVldWUsIGlmIG9ubHkNCj4gPiA+ID4gb25lIHR1bm5lbCB0eXBlLCBwdHlwZSB3 aWxsIHJlcG9ydCB0aGF0IHR1bm5lbCB0eXBlLCBUVU5ORUwNCj4gPiA+ID4gTUFTSyhtYXgNCj4g PiA+ID4gdmFsdWUpIHdpbGwgYmUgcmV0dXJuZWQgaWYgbXVsdGlwbGUgdHlwZXMgYm91bmQgdG8g YSBxdWV1ZS4NCj4gPiA+ID4NCj4gPiA+ID4gRmxvdyByc3MgYWN0aW9uIHNwZWNpZmllcyBxdWV1 ZXMgdGhhdCBiaW5kaW5nIHRvIHR1bm5lbCwgdGh1cyB3ZQ0KPiA+ID4gPiBjYW4ndCBhc3N1bWUg YWxsIHF1ZXVlcyBoYXZlIHNhbWUgdHVubmVsIHR5cGVzLCBzbyB0aGlzIGlzIGEgcGVyDQo+ID4g PiA+IHF1ZXVlDQo+ID4gPiBzdHJ1Y3R1cmUuDQo+ID4gPg0KPiA+ID4gVGhlcmUgaXMgc29tZXRo aW5nIEkgYW0gbWlzc2luZyBoZXJlLCBob3cgaW4gdGhlIGRhdGFwbGFuZSB0aGUgUE1EDQo+ID4g PiBjYW4gdW5kZXJzdGFuZCBmcm9tIDEgYml0IHdoaWNoIGtpbmQgb2YgdHVubmVsIHRoZSBwYWNr ZXQgaXMgbWF0Y2hpbmc/DQo+ID4NCj4gPiBUaGUgY29kZSB1bmRlciB0aGlzIGxpbmUgaXMgYW5z d2VyLCBsZXQgbWUgcG9zdCBoZXJlOg0KPiA+IAkJaWYgKHJ4cV9kYXRhLT50dW5uZWwgIT0gZmxv dy0+dHVubmVsKQ0KPiA+IAkJCXJ4cV9kYXRhLT50dW5uZWwgPSByeHFfZGF0YS0+dHVubmVsID8N Cj4gPiAJCQkJCSAgIFJURV9QVFlQRV9UVU5ORUxfTUFTSyA6DQo+ID4gCQkJCQkgICBmbG93LT50 dW5uZWw7DQo+ID4gSWYgbm8gdHVubmVsIHR5cGUgYXNzb2NpYXRlZCB0byByeHEsIHVzZSB0dW5u ZWwgdHlwZSBmcm9tIGZsb3cuDQo+ID4gSWYgYSBuZXcgdHVubmVsIHR5cGUgZnJvbSBmbG93LCB1 c2UgUlRFX1BUWVBFX1RVTk5FTF9NQVNLLg0KPiANCj4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCB3 aGVuIGluIHRoZSBzYW1lIHF1ZXVlIHRoZXJlIGFyZSBzZXZlcmFsIHR1bm5lbA0KPiBvZmZsb2Fk cywgdGhlIG1idWYgcHR5cGUgd2lsbCBjb250YWlucyBSVEVfUFRZUEVfVFVOTkVMX01BU0s6DQo+ IA0KPiAgICBAQCAtMTYwMSw3ICsxNjA1LDcgQEAgcnhxX2NxX3RvX3BrdF90eXBlKHZvbGF0aWxl IHN0cnVjdCBtbHg1X2NxZSAqY3FlKQ0KPiAgICAgICAgICAgICogYml0WzddID0gb3V0ZXJfbDNf dHlwZQ0KPiAgICAgICAgICAgICovDQo+ICAgICAgICAgICBpZHggPSAoKHBpbmZvICYgMHgzKSA8 PCA2KSB8ICgocHR5cGUgJiAweGZjMDApID4+IDEwKTsNCj4gICAtICAgICAgIHJldHVybiBtbHg1 X3B0eXBlX3RhYmxlW2lkeF07DQo+ICAgKyAgICAgICByZXR1cm4gbWx4NV9wdHlwZV90YWJsZVtp ZHhdIHwgcnhxLT50dW5uZWwgKiAhIShpZHggJiAoMSA8PCA2KSk7DQo+ICAgIH0NCj4gDQo+IA0K PiBVc2VkIGJ5IFJ4IGJ1cnN0IGZ1bmN0aW9ucywNCj4gDQo+IC8qIFVwZGF0ZSBwYWNrZXQgaW5m b3JtYXRpb24uICovDQo+ICBwa3QtPnBhY2tldF90eXBlID0gcnhxX2NxX3RvX3BrdF90eXBlKGNx ZSk7DQo+IA0KPiBJcyB0aGlzIGNvcnJlY3Q/DQoNCllvdSBnb3QgdGhlIHBvaW50Lg0KDQo+IA0K PiBUaGVyZSBpcyBhbm90aGVyIHN0cmFuZ2UgcG9pbnQgaGVyZSwNCj4gDQo+ICArICAgICAgIFtQ VFlQRV9JRFgoUlRFX1BUWVBFX1RVTk5FTF9WWExBTildID0gUlRFX1BUWVBFX1RVTk5FTF9WWExB TiB8DQo+ICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRF X1BUWVBFX0w0X1VEUCwNCj4gDQo+IEFjY29yZGluZyB0byB0aGUgUkZDIDczNDggWzFdIGhhdmlu ZyBhIFZYTEFOIHdpdGggYW4gb3V0ZXIgSVB2NiBpcw0KPiBwb3NzaWJsZS4gIEhvdyBkbyB5b3Ug aGFuZGxlIGl0Pw0KDQpUaGUgYW5zd2VyIHdhcyBoaWRlIGluIHRoZSBjb2RlIHlvdSBwYXN0ZWQ6 DQoNCiAgICBAQCAtMTYwMSw3ICsxNjA1LDcgQEAgcnhxX2NxX3RvX3BrdF90eXBlKHZvbGF0aWxl IHN0cnVjdCBtbHg1X2NxZSAqY3FlKQ0KICAgICAgICAgICAgKiBiaXRbN10gPSBvdXRlcl9sM190 eXBlDQogICAgICAgICAgICAqLw0KICAgICAgICAgICBpZHggPSAoKHBpbmZvICYgMHgzKSA8PCA2 KSB8ICgocHR5cGUgJiAweGZjMDApID4+IDEwKTsNCiAgIC0gICAgICAgcmV0dXJuIG1seDVfcHR5 cGVfdGFibGVbaWR4XTsNCiAgICsgICAgICAgcmV0dXJuIG1seDVfcHR5cGVfdGFibGVbaWR4XSB8 IHJ4cS0+dHVubmVsICogISEoaWR4ICYgKDEgPDwgNikpOw0KDQpJbiBjb21tZW50LCBCaXQgNyBp cyBvdXRlciBMMyB0eXBlIGZyb20gQ1FFLCBQVFlQRSB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIA0K bWx4NV9wdHlwZV90YWJsZSBsb29rdXAuDQoNCj4gDQo+ID4gPiA8c25pcC8+DQo+ID4gPiA+ID4g PiBAQCAtMjMzNCw5ICsyNDE0LDkgQEAgbWx4NV9mbG93X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsDQo+ID4gPiA+ID4gPiBzdHJ1Y3QgbWx4NV9mbG93cyAqbGlzdCkgIHsNCj4gPiA+ID4g PiA+ICAJc3RydWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ID4g PiA+ID4gIAlzdHJ1Y3QgcnRlX2Zsb3cgKmZsb3c7DQo+ID4gPiA+ID4gPiArCXVuc2lnbmVkIGlu dCBpOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAJVEFJTFFfRk9SRUFDSF9SRVZFUlNFKGZs b3csIGxpc3QsIG1seDVfZmxvd3MsIG5leHQpIHsNCj4gPiA+ID4gPiA+IC0JCXVuc2lnbmVkIGlu dCBpOw0KPiA+ID4gPiA+ID4gIAkJc3RydWN0IG1seDVfaW5kX3RhYmxlX2lidiAqaW5kX3RibCA9 IE5VTEw7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIAkJaWYgKGZsb3ctPmRyb3ApIHsNCj4g PiA+ID4gPiA+IEBAIC0yMzgyLDYgKzI0NjIsMTYgQEAgbWx4NV9mbG93X3N0b3Aoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gPiBtbHg1X2Zsb3dz ICpsaXN0KQ0KPiA+ID4gPiA+ID4gIAkJRFJWX0xPRyhERUJVRywgInBvcnQgJXUgZmxvdyAlcCBy ZW1vdmVkIiwgZGV2LT5kYXRhLQ0KPiA+ID4gPnBvcnRfaWQsDQo+ID4gPiA+ID4gPiAgCQkJKHZv aWQgKilmbG93KTsNCj4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gKwkvKiBDbGVhbnVwIFJ4 IHF1ZXVlIHR1bm5lbCBpbmZvLiAqLw0KPiA+ID4gPiA+ID4gKwlmb3IgKGkgPSAwOyBpICE9IHBy aXYtPnJ4cXNfbjsgKytpKSB7DQo+ID4gPiA+ID4gPiArCQlzdHJ1Y3QgbWx4NV9yeHFfZGF0YSAq cSA9ICgqcHJpdi0+cnhxcylbaV07DQo+ID4gPiA+ID4gPiArCQlzdHJ1Y3QgbWx4NV9yeHFfY3Ry bCAqcnhxX2N0cmwgPQ0KPiA+ID4gPiA+ID4gKwkJCWNvbnRhaW5lcl9vZihxLCBzdHJ1Y3QgbWx4 NV9yeHFfY3RybCwgcnhxKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJCW1lbXNldCgo dm9pZCAqKXJ4cV9jdHJsLT50dW5uZWxfdHlwZXMsIDAsDQo+ID4gPiA+ID4gPiArCQkgICAgICAg c2l6ZW9mKHJ4cV9jdHJsLT50dW5uZWxfdHlwZXMpKTsNCj4gPiA+ID4gPiA+ICsJCXEtPnR1bm5l bCA9IDA7DQo+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBUaGlzIGh1bmsgZG9lcyBub3QgaGFuZGxlIHRoZSBmYWN0IHRoZSBSeCBxdWV1ZSBhcnJh eSBtYXkgaGF2ZQ0KPiA+ID4gPiA+IHNvbWUgaG9sZXMgaS5lLiB0aGUgYXBwbGljYXRpb24gaXMg YWxsb3dlZCB0byBhc2sgZm9yIDEwIHF1ZXVlcw0KPiA+ID4gPiA+IGFuZCBvbmx5IGluaXRpYWxp c2Ugc29tZS4gIEluIHN1Y2ggc2l0dWF0aW9uIHRoaXMgY29kZSB3aWxsDQo+IHNlZ2ZhdWx0Lg0K PiA+ID4gPg0KPiA+ID4gPiBJbiBvdGhlciB3b3JkcywgInEiIGNvdWxkIGJlIE5VTEwsIGNvcnJl Y3Q/IEknbGwgYWRkIGNoZWNrIGZvciB0aGlzLg0KPiA+ID4NCj4gPiA+IENvcnJlY3QuDQo+ID4g Pg0KPiA+ID4gPiBCVFcsIHRoZXJlIHNob3VsZCBiZSBhbiBhY3Rpb24gaXRlbSB0byBhZGQgc3Vj aCBjaGVjayBpbiByc3MvcXVldWUNCj4gPiA+ID4gZmxvdw0KPiA+ID4gY3JlYXRpb24uDQo+ID4g Pg0KPiA+ID4gQXMgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBhcHBsaWNhdGlvbi91 c2VyIHRvIG1ha2UgcnVsZQ0KPiA+ID4gYWNjb3JkaW5nIHRvIHdoYXQgaXQgaGFzIGNvbmZpZ3Vy ZWQsIGl0IGhhcyBub3QgYmVlbiBhZGRlZC4gIEl0IGNhbg0KPiA+ID4gc3RpbGwgYmUgYWRkZWQs IGJ1dCBpdCBjYW5ub3QgYmUgY29uc2lkZXJlZCBhcyBhIGZpeC4NCj4gPiA+DQo+ID4gPiA+ID4g SXQgc2hvdWxkIG9ubHkgbWVtc2V0IHRoZSBSeCBxdWV1ZXMgbWFraW5nIHBhcnQgb2YgdGhlIGZs b3cgbm90DQo+ID4gPiA+ID4gdGhlDQo+ID4gPiBvdGhlcnMuDQo+ID4gPiA+DQo+ID4gPiA+IENs ZWFuIHRoaXMoZGVjcmVhc2UgdHVubmVsX3R5cGVzIGNvdW50ZXIgb2YgZWFjaCBxdWV1ZSkgZnJv bSBlYWNoDQo+ID4gPiA+IGZsb3cgd291bGQgYmUgdGltZSBjb25zdW1pbmcuDQo+ID4gPg0KPiA+ ID4gQ29uc2lkZXJpbmcgZmxvd3MgYXJlIGFscmVhZHkgcmVseWluZyBvbiBzeXNjYWxsIHRvIGNv bW11bmljYXRlIHdpdGgNCj4gPiA+IHRoZSBrZXJuZWwsIHRoZSBleHRyYSBjeWNsZXMgY29uc3Vt cHRpb24gdG8gb25seSBjbGVhciB0aGUgcXVldWVzDQo+ID4gPiBtYWtpbmcgcGFydCBvZiB0aGlz IGZsb3cgaXMgbmVnbGVjdGFibGUuDQo+ID4gPg0KPiA+ID4gQnkgdGhlIHdheSBpbiB0aGUgc2Ft ZSBmdW5jdGlvbiB0aGUgbWFyayBpcyBjbGVhcmVkIG9ubHkgZm9yIHRoZQ0KPiA+ID4gcXVldWVz IG1ha2luZyBwYXJ0IG9mIHRoZSBmbG93LCB0aGUgc2FtZSBsb29wIGNhbiBiZSB1c2VkIHRvIGNs ZWFyDQo+ID4gPiB0aG9zZSB0dW5uZWwgaW5mb3JtYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUuDQo+ ID4gPg0KPiA+ID4gPiBJZiBhbiBlcnJvciBoYXBwZW5lZCwgY291bnRlciB3aWxsIG5vdCBiZSBj bGVhcmVkIGFuZCBzdWNoIHN0YXRlDQo+ID4gPiA+IHdpbGwgaW1wYWN0IHR1bm5lbCB0eXBlIGFm dGVyIHBvcnQgc3RhcnQgYWdhaW4uDQo+ID4gPg0KPiA+ID4gVW5sZXNzIGFuIGltcGxlbWVudGF0 aW9uIGVycm9yIHdoaWNoIG90aGVyIGtpbmQgb2YgdGhlbSBkbyB5b3UgZmVhcg0KPiA+ID4gdG8g aGFwcGVuPw0KPiA+DQo+ID4gTWFyayBvZiByeHEgc2ltcGx5IHJlc2V0IHRvIDAsIHRoaXMgZmll bGQgaXMgY291bnRlciwgdGhlIGZpbmFsIHRhcmdldA0KPiA+IGlzIHRvIGNsZWFyIGZpZWxkIHZh bHVlLCBzbyBteSBjb2RlIHNob3VsZCBiZSBzdHJhaWdodCBmb3J3YXJkIGFuZA0KPiA+IGVycm9y IGZyZWUg8J+Yig0KPiA+DQo+ID4gRnJvbSBhIHF1aWNrIGxvb2ssIHRoaXMgZnVuY3Rpb24gY291 bGQgYmUgbXVjaCBzaW1wbGUgdGhhdCB3aGF0IGl0IGlzDQo+IHRvZGF5Og0KPiA+IDEuIGNsZWFu IHZlcmIgZmxvdyBhbmQgaHJleCB3aGVyZSBwb3NzaWJsZSwgZGVzcGl0ZSBvZiBmbG93IHR5cGUu DQo+ID4gMi4gY2xlYW4gcnhxIHN0YXRlOiBtYXJrIGFuZCB0dW5uZWxfdHlwZXMuDQo+IA0KPiBP ay4NCj4gDQo+IFRoYW5rcywNCj4gDQo+IFsxXQ0KPiBodHRwczovL2VtZWEwMS5zYWZlbGlua3Mu cHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZHBkay5vcg0KPiBnJTJG cGF0Y2glMkYzNzk2NSZkYXRhPTAyJTdDMDElN0N4dWVtaW5nbCU0MG1lbGxhbm94LmNvbSU3Q2Mz ZGU1ZDdjZmM4NTQ2Mw0KPiA0MWE2ODA4ZDVhMTE5YzkxNiU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0 ZDE0OTI1NmY0NjFiJTdDMCU3QzAlN0M2MzY1OTIwNTQ0OQ0KPiAxOTYzNTY4JnNkYXRhPUVvcTMw eVNaOGdSaGVtREc2QkRhd1ZxRnZXQjFnSTg1R3BjWUlNd2wzMlElM0QmcmVzZXJ2ZWQ9MA0KPiAN Cj4gLS0NCj4gTsOpbGlvIExhcmFuamVpcm8NCj4gNldJTkQNCg==