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 85288689B for ; Fri, 26 Dec 2014 09:45:14 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 26 Dec 2014 00:43:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,646,1413270000"; d="scan'208";a="660433581" Received: from pgsmsx106.gar.corp.intel.com ([10.221.44.98]) by orsmga002.jf.intel.com with ESMTP; 26 Dec 2014 00:45:11 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.110.14) by PGSMSX106.gar.corp.intel.com (10.221.44.98) with Microsoft SMTP Server (TLS) id 14.3.195.1; Fri, 26 Dec 2014 16:45:10 +0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.216]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.240]) with mapi id 14.03.0195.001; Fri, 26 Dec 2014 16:45:09 +0800 From: "Ouyang, Changchun" To: Vladislav Zolotarov Thread-Topic: [dpdk-dev] [PATCH v3 5/6] ixgbe: Config VF RSS Thread-Index: AQHQHznC9fbr7m6mLEynsGIYrmMT5JyeB1MAgAGQNdCAAC7zAIABUPNQ///ULQCAAIqBQP//gt2AgACVFYA= Date: Fri, 26 Dec 2014 08:45:08 +0000 Message-ID: References: <1419389808-9559-1-git-send-email-changchun.ouyang@intel.com> <1419398584-19520-1-git-send-email-changchun.ouyang@intel.com> <1419398584-19520-6-git-send-email-changchun.ouyang@intel.com> <549A97F6.30901@cloudius-systems.com> <549C0F10.8050402@cloudius-systems.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v3 5/6] ixgbe: Config VF RSS 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, 26 Dec 2014 08:45:15 -0000 SGkgVmxhZGlzbGF2LA0KDQpGcm9tOiBWbGFkaXNsYXYgWm9sb3Rhcm92IFttYWlsdG86dmxhZHpA Y2xvdWRpdXMtc3lzdGVtcy5jb21dIA0KU2VudDogRnJpZGF5LCBEZWNlbWJlciAyNiwgMjAxNCAz OjM3IFBNDQpUbzogT3V5YW5nLCBDaGFuZ2NodW4NCkNjOiBkZXZAZHBkay5vcmcNClN1YmplY3Q6 IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2MyA1LzZdIGl4Z2JlOiBDb25maWcgVkYgUlNTDQoNCg0K T24gRGVjIDI2LCAyMDE0IDk6MjggQU0sICJPdXlhbmcsIENoYW5nY2h1biIgPGNoYW5nY2h1bi5v dXlhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4NCj4gSGkgVmxhZGlzbGF2LA0KPg0KPiDCoA0KPg0K PiBGcm9tOiBWbGFkaXNsYXYgWm9sb3Rhcm92IFttYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVt cy5jb21dIA0KPiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDI2LCAyMDE0IDI6NDkgUE0NCj4gVG86 IE91eWFuZywgQ2hhbmdjaHVuDQo+IENjOiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUkU6IFtk cGRrLWRldl0gW1BBVENIIHYzIDUvNl0gaXhnYmU6IENvbmZpZyBWRiBSU1MNCj4NCj4gwqANCj4N Cj4NCj4gT24gRGVjIDI2LCAyMDE0IDM6NTIgQU0sICJPdXlhbmcsIENoYW5nY2h1biIgPGNoYW5n Y2h1bi5vdXlhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBWbGFkIFpvbG90YXJvdiBbbWFpbHRv OnZsYWR6QGNsb3VkaXVzLXN5c3RlbXMuY29tXQ0KPiA+ID4gU2VudDogVGh1cnNkYXksIERlY2Vt YmVyIDI1LCAyMDE0IDk6MjAgUE0NCj4gPiA+IFRvOiBPdXlhbmcsIENoYW5nY2h1bjsgZGV2QGRw ZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgNS82XSBpeGdi ZTogQ29uZmlnIFZGIFJTUw0KPiA+ID4NCj4gPiA+DQo+ID4gPiBPbiAxMi8yNS8xNCAwNDo0Mywg T3V5YW5nLCBDaGFuZ2NodW4gd3JvdGU6DQo+ID4gPiA+IEhpLA0KPiA+ID4gPiBTb3JyeSBtaXNz IHNvbWUgY29tbWVudHMsIHNvIGNvbnRpbnVlIG15IHJlc3BvbnNlIGJlbG93LA0KPiA+ID4gPg0K PiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4+IEZyb206IFZsYWQg Wm9sb3Rhcm92IFttYWlsdG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb21dDQo+ID4gPiA+PiBT ZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDI0LCAyMDE0IDY6NDAgUE0NCj4gPiA+ID4+IFRvOiBP dXlhbmcsIENoYW5nY2h1bjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+PiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUEFUQ0ggdjMgNS82XSBpeGdiZTogQ29uZmlnIFZGIFJTUw0KPiA+ID4gPj4NCj4g PiA+ID4+DQo+ID4gPiA+PiBPbiAxMi8yNC8xNCAwNzoyMywgT3V5YW5nIENoYW5nY2h1biB3cm90 ZToNCj4gPiA+ID4+PiBJdCBuZWVkcyBjb25maWcgUlNTIGFuZCBJWEdCRV9NUlFDIGFuZCBJWEdC RV9WRlBTUlRZUEUgdG8gZW5hYmxlDQo+ID4gPiBWRg0KPiA+ID4gPj4gUlNTLg0KPiA+ID4gPj4+ IFRoZSBwc3J0eXBlIHdpbGwgZGV0ZXJtaW5lIGhvdyBtYW55IHF1ZXVlcyB0aGUgcmVjZWl2ZWQg cGFja2V0cyB3aWxsDQo+ID4gPiA+Pj4gZGlzdHJpYnV0ZSB0bywgYW5kIHRoZSB2YWx1ZSBvZiBw c3J0eXBlIHNob3VsZCBkZXBlbmRzIG9uIGJvdGggZmFjZXQ6DQo+ID4gPiA+Pj4gbWF4IFZGIHJ4 cSBudW1iZXIgd2hpY2ggaGFzIGJlZW4gbmVnb3RpYXRlZCB3aXRoIFBGLCBhbmQgdGhlIG51bWJl cg0KPiA+ID4gPj4+IG9mDQo+ID4gPiA+PiByeHEgc3BlY2lmaWVkIGluIGNvbmZpZyBvbiBndWVz dC4NCj4gPiA+ID4+PiBTaWduZWQtb2ZmLWJ5OiBDaGFuZ2NodW4gT3V5YW5nIDxjaGFuZ2NodW4u b3V5YW5nQGludGVsLmNvbT4NCj4gPiA+ID4+PiAtLS0NCj4gPiA+ID4+PsKgIMKgIGxpYi9saWJy dGVfcG1kX2l4Z2JlL2l4Z2JlX3BmLmPCoCDCoHwgMTUgKysrKysrKw0KPiA+ID4gPj4+wqAgwqAg bGliL2xpYnJ0ZV9wbWRfaXhnYmUvaXhnYmVfcnh0eC5jIHwgOTINCj4gPiA+ID4+ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ID4gPj4+wqAgwqAgMiBmaWxlcyBj aGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkNCj4gPiA+ID4+Pg0KPiA+ ID4gPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3BtZF9peGdiZS9peGdiZV9wZi5jDQo+ID4g PiA+Pj4gYi9saWIvbGlicnRlX3BtZF9peGdiZS9peGdiZV9wZi5jIGluZGV4IGNiYjAxNDUuLjlj OWRhZDggMTAwNjQ0DQo+ID4gPiA+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9wbWRfaXhnYmUvaXhnYmVf cGYuYw0KPiA+ID4gPj4+ICsrKyBiL2xpYi9saWJydGVfcG1kX2l4Z2JlL2l4Z2JlX3BmLmMNCj4g PiA+ID4+PiBAQCAtMTg3LDYgKzE4NywyMSBAQCBpbnQgaXhnYmVfcGZfaG9zdF9jb25maWd1cmUo c3RydWN0IHJ0ZV9ldGhfZGV2DQo+ID4gPiA+PiAqZXRoX2RldikNCj4gPiA+ID4+PsKgIMKgIMKg IMKgIMKgIMKgSVhHQkVfV1JJVEVfUkVHKGh3LCBJWEdCRV9NUFNBUl9MTyhody0NCj4gPiA+IG1h Yy5udW1fcmFyX2VudHJpZXMpLCAwKTsNCj4gPiA+ID4+PsKgIMKgIMKgIMKgIMKgIMKgSVhHQkVf V1JJVEVfUkVHKGh3LCBJWEdCRV9NUFNBUl9ISShody0NCj4gPiA+IG1hYy5udW1fcmFyX2VudHJp ZXMpLCAwKTsNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+ICsgLyoNCj4gPiA+ID4+PiArwqAgKiBWRiBS U1MgY2FuIHN1cHBvcnQgYXQgbW9zdCA0IHF1ZXVlcyBmb3IgZWFjaCBWRiwgZXZlbiBpZg0KPiA+ ID4gPj4+ICvCoCAqIDggcXVldWVzIGFyZSBhdmFpbGFibGUgZm9yIGVhY2ggVkYsIGl0IG5lZWQg cmVmaW5lIHRvIDQNCj4gPiA+ID4+PiArwqAgKiBxdWV1ZXMgaGVyZSBkdWUgdG8gdGhpcyBsaW1p dGF0aW9uLCBvdGhlcndpc2Ugbm8gcXVldWUNCj4gPiA+ID4+PiArwqAgKiB3aWxsIHJlY2VpdmUg YW55IHBhY2tldCBldmVuIFJTUyBpcyBlbmFibGVkLg0KPiA+ID4gPj4gQWNjb3JkaW5nIHRvIFRh YmxlIDctMyBpbiB0aGUgODI1OTkgc3BlYyBSU1MgaXMgbm90IGF2YWlsYWJsZSB3aGVuDQo+ID4g PiA+PiBwb3J0IGlzIGNvbmZpZ3VyZWQgdG8gaGF2ZSA4IHF1ZXVlcyBwZXIgcG9vbC4gVGhpcyBt ZWFucyB0aGF0IGlmIHUNCj4gPiA+ID4+IHNlZSB0aGlzIGNvbmZpZ3VyYXRpb24gdSBtYXkgaW1t ZWRpYXRlbHkgZGlzYWJsZSBSU1MgZmxvdyBpbiB5b3VyIGNvZGUuDQo+ID4gPiA+Pg0KPiA+ID4g Pj4+ICvCoCAqLw0KPiA+ID4gPj4+ICsgaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9k ZS5tcV9tb2RlID09DQo+ID4gPiA+PiBFVEhfTVFfUlhfVk1EUV9SU1MpIHsNCj4gPiA+ID4+PiAr wqAgwqAgwqAgwqAgwqBpZiAoUlRFX0VUSF9ERVZfU1JJT1YoZXRoX2RldikubmJfcV9wZXJfcG9v bCA9PSA4KSB7DQo+ID4gPiA+Pj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgUlRFX0VUSF9E RVZfU1JJT1YoZXRoX2RldikuYWN0aXZlID0NCj4gPiA+ID4+IEVUSF8zMl9QT09MUzsNCj4gPiA+ ID4+PiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBSVEVfRVRIX0RFVl9TUklPVihldGhfZGV2 KS5uYl9xX3Blcl9wb29sID0gNDsNCj4gPiA+ID4+PiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBSVEVfRVRIX0RFVl9TUklPVihldGhfZGV2KS5kZWZfcG9vbF9xX2lkeCA9DQo+ID4gPiA+Pj4g K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZGV2X251bV92ZihldGhfZGV2 KSAqIDQ7DQo+ID4gPiA+PiBBY2NvcmRpbmcgdG8gODI1OTkgc3BlYyB1IGNhbid0IGRvIHRoYXQg c2luY2UgUlNTIGlzIG5vdCBhbGxvd2VkIHdoZW4NCj4gPiA+ID4+IHBvcnQgaXMgY29uZmlndXJl ZCB0byBoYXZlIDggZnVuY3Rpb24gcGVyLVZGLiBIYXZlIHUgdmVyaWZpZWQgdGhhdA0KPiA+ID4g Pj4gdGhpcyB3b3Jrcz8gSWYgeWVzLCB0aGVuIHNwZWMgc2hvdWxkIGJlIHVwZGF0ZWQuDQo+ID4g PiA+Pg0KPiA+ID4gPj4+ICvCoCDCoCDCoCDCoCDCoH0NCj4gPiA+ID4+PiArIH0NCj4gPiA+ID4+ PiArDQo+ID4gPiA+Pj7CoCDCoCDCoCDCoCDCoCDCoC8qIHNldCBWTURxIG1hcCB0byBkZWZhdWx0 IFBGIHBvb2wgKi8NCj4gPiA+ID4+PsKgIMKgIMKgIMKgIMKgIMKgaHctPm1hYy5vcHMuc2V0X3Zt ZHEoaHcsIDAsDQo+ID4gPiA+Pj4gUlRFX0VUSF9ERVZfU1JJT1YoZXRoX2RldikuZGVmX3ZtZHFf aWR4KTsNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3BtZF9p eGdiZS9peGdiZV9yeHR4LmMNCj4gPiA+ID4+PiBiL2xpYi9saWJydGVfcG1kX2l4Z2JlL2l4Z2Jl X3J4dHguYw0KPiA+ID4gPj4+IGluZGV4IGY2OWFiZGEuLmE3YzE3YTQgMTAwNjQ0DQo+ID4gPiA+ Pj4gLS0tIGEvbGliL2xpYnJ0ZV9wbWRfaXhnYmUvaXhnYmVfcnh0eC5jDQo+ID4gPiA+Pj4gKysr IGIvbGliL2xpYnJ0ZV9wbWRfaXhnYmUvaXhnYmVfcnh0eC5jDQo+ID4gPiA+Pj4gQEAgLTMzMjcs NiArMzMyNywzOSBAQCBpeGdiZV9hbGxvY19yeF9xdWV1ZV9tYnVmcyhzdHJ1Y3QNCj4gPiA+ID4+ IGlnYl9yeF9xdWV1ZSAqcnhxKQ0KPiA+ID4gPj4+wqAgwqAgfQ0KPiA+ID4gPj4+DQo+ID4gPiA+ Pj7CoCDCoCBzdGF0aWMgaW50DQo+ID4gPiA+Pj4gK2l4Z2JlX2NvbmZpZ192Zl9yc3Moc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpIHsNCj4gPiA+ID4+PiArIHN0cnVjdCBpeGdiZV9odyAqaHc7DQo+ ID4gPiA+Pj4gKyB1aW50MzJfdCBtcnFjOw0KPiA+ID4gPj4+ICsNCj4gPiA+ID4+PiArIGl4Z2Jl X3Jzc19jb25maWd1cmUoZGV2KTsNCj4gPiA+ID4+PiArDQo+ID4gPiA+Pj4gKyBodyA9IElYR0JF X0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiA+ID4gPj4+ICsN Cj4gPiA+ID4+PiArIC8qIE1SUUM6IGVuYWJsZSBWRiBSU1MgKi8NCj4gPiA+ID4+PiArIG1ycWMg PSBJWEdCRV9SRUFEX1JFRyhodywgSVhHQkVfTVJRQyk7DQo+ID4gPiA+Pj4gKyBtcnFjICY9IH5J WEdCRV9NUlFDX01SUUVfTUFTSzsNCj4gPiA+ID4+PiArIHN3aXRjaCAoUlRFX0VUSF9ERVZfU1JJ T1YoZGV2KS5hY3RpdmUpIHsNCj4gPiA+ID4+PiArIGNhc2UgRVRIXzY0X1BPT0xTOg0KPiA+ID4g Pj4+ICvCoCDCoCDCoCDCoCDCoG1ycWMgfD0gSVhHQkVfTVJRQ19WTURRUlNTNjRFTjsNCj4gPiA+ ID4+PiArwqAgwqAgwqAgwqAgwqBicmVhazsNCj4gPiA+ID4+PiArDQo+ID4gPiA+Pj4gKyBjYXNl IEVUSF8zMl9QT09MUzoNCj4gPiA+ID4+PiArIGNhc2UgRVRIXzE2X1BPT0xTOg0KPiA+ID4gPj4+ ICvCoCDCoCDCoCDCoCDCoG1ycWMgfD0gSVhHQkVfTVJRQ19WTURRUlNTMzJFTjsNCj4gPiA+ID4+ IEFnYWluLCB0aGlzIGNvbnRyYWRpY3RzIHdpdGggdGhlIHNwZWMuDQo+ID4gPiA+IFllcywgdGhl IHNwZWMgc2F5IHRoZSBodyBjYW4ndCBzdXBwb3J0IHZmIHJzcyBhdCBhbGwsIGJ1dCBleHBlcmlt ZW50IGZpbmQgdGhhdA0KPiA+ID4gY291bGQgYmUgZG9uZS4NCj4gPiA+DQo+ID4gPiBUaGUgc3Bl YyBleHBsaWNpdGx5IHNheSB0aGF0IFZGIFJTUyAqaXMqIHN1cHBvcnRlZCBpbiBwYXJ0aWN1bGFy IGluIHRoZSB0YWJsZQ0KPiA+ID4gbWVudGlvbmVkIGFib3ZlLg0KPiA+IEJ1dCB0aGUgc3BlYyhK YW51YXJ5IDIwMTQgcmV2aXNpb24gMi45KSBvbiBteSBoYW5kIHNheXM6ICJpbiBJT1YgbW9kZSwg Vk1EcStSU1MgbW9kZSBpcyBub3QgYXZhaWxhYmxlIsKgIGluIG5vdGUgb2Ygc2VjdGlvbiA0LjYu MTAuMi4xDQo+DQo+ID5BbmQgc3RpbGwgdGhlcmUgaXMgdGhlIHdob2xlIHNlY3Rpb24gYWJvdXQg Y29uZmlndXJpbmcgcGFja2V0IGZpbHRlcmluZyBpbmNsdWRpbmcgUnggaW4gdGhlIFZGIG1vZGUg KGluY2x1ZGluZyB0aGUgdGFibGUgaSd2ZSByZWZlcnJlZCkgLiBJdCdzIHF1aXRlIGNvbmZ1c2lu ZyBpIG11c3Qgc2F5Li4uDQo+DQo+IENoYW5nY2h1bjogZG8geW91IG1pbmQgdGVsbCBtZSB3aGlj aCB0YWJsZSB5b3UgYXJlIHJlZmVycmluZyB0bywgSSB3aWxsIHRyeSB0byBoYXZlIGEgbG9vayBh bmQgbWF5IHNoYXJlIG15IHRob3VnaHQgaWYgSSBjYW4uDQo+DQo+ID4gPiBXaGF0IHlvdXIgY29k ZSBpcyBkb2luZyBpcyB0aGF0IGluIGNhc2Ugb2YgMTYgVkZzIHUgc2V0dXAgYSAzMiBwb29scw0K PiA+ID4gY29uZmlndXJhdGlvbiBhbmQgdXNlIG9ubHkgMTYgb3V0IG9mIHRoZW0uDQo+ID4gQnV0 IEkgZG9uJ3Qgc2VlIGFueSBiaWcgaXNzdWUgaGVyZSwgaW4gdGhpcyBjYXNlLCBlYWNoIHZmIENP VUxEIGhhdmUgOCBxdWV1ZXMsIGxpa2UgSSBzYWlkIGJlZm9yZSwgYnV0IHRoaXMgaXMgZXN0aW1h dGlvbiB2YWx1ZSwgYWN0dWFsbHkgb25seSA0IHF1ZXVlcw0KPiA+IEFyZSByZWFsbHkgYXZhaWxh YmxlIGZvciBvbmUgdmYsIHlvdSBjYW4gcmVmZXIgdG8gc3BlYyBmb3IgdGhlIGNvcnJlY3RuZXNz IGhlcmUuDQo+DQo+ID5ObyBpc3N1ZXMsIGkganVzdCB3YW50ZWQgdG8gY2xhcmlmeSB0aGF0IGl0 IHNlZW1zIGxpa2UgeW91IGFyZSBkb2luZyBpdCBxdWl0ZSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMu DQo+DQo+ID4gPg0KPiA+ID4gPiBXZSBjYW4gZm9jdXMgb24gZGlzY3Vzc2luZyB0aGUgaW1wbGVt ZW50YXRpb24gZmlyc3RseS4NCj4NCj4gPlJpZ2h0LiBTbywgYWZ0ZXIgd2UgY2xhcmlmaWVkIHRo YXQgdGhlcmUgaXMgbm90aGluZyB1IGNhbiBkbyBhdCB0aGUgbW9tZW50IGFib3V0IHRoZSByc3Mg cXVlcnkgZmxvdywgdGhlcmUgaXPCoCBvbmUgbW9yZSBvcGVuIGlzc3VlIGhlcmUuIA0KPiA+SW4g Z2VuZXJhbCB3ZSBuZWVkIGEgd2F5IHRvIGtub3cgaG93IG1hbnnCoCBxdWV1ZXMgZnJvbSB0aG9z ZSB0aGF0IGFyZSBhdmFpbGFibGUgbWF5IGJlIGNvbmZpZ3VyZWQgYXMgUlNTLiBXaGlsZSB0aGUg c2FtZSBpc3N1ZSBpcyBwcmVzZW50IHdpdGggdGhlIFBGIGFzIHdlbGwgKGl0J3MgMTYgZm9yIDgy NTk5IGJ1dCBpdCBtYXkgYmUgYSBkaWZmZXJlbnQgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBkZXZp Y2UpIGZvciBWRiBpdCdzIG1vcmUgcHJvbm91bmNlZCBzaW5jZSBpdCBkZXBlbmRzIG9uIHRoZSBQ RiBjb25maWd1cmF0aW9uLg0KPg0KPiA+RG9uJ3QgdSB0aGluayBpdCB3b3VsZCBiZSBsb2dpY2Fs IHRvIGFkZCBhIHNwZWNpZmljIGZpbGVkIGZvciBpdCBpbiB0aGUgZGV2X2luZm8gc3RydWN0Pw0K Pg0KPiBDaGFuZ2NodW46IHlvdSBhcmUgcmlnaHQsIGFuZCB3ZSBoYXZlIGFscmVhZHkgdGhlIG1h eF9yeF9xdWV1ZXMgaW4gZGV2X2luZm8sDQo+DQo+IHdoaWxlIG5lZ290aWF0aW5nIGJldHdlZW4g cGYgYW5kIHZmLCB0aGUgbmVnb3RpYXRlZCBtYXggcnggcXVldWUgbnVtYmVyIHdpbGwgYmUgc2V0 IGludG8gaHctPm1hYy5tYXhfcnhfcXVldWVzLA0KPg0KPiBBbmQgYWZ0ZXIgdGhhdCB3aGVuIHlv dSBjYWxsIGl4Z2JlX2Rldl9pbmZvX2dldCwgdGhhdCB2YWx1ZSB3aWxsIGJlIHNldCBpbnRvIGRl dl9pbmZvLT5tYXhfcnhfcXVldWVzLg0KPg0KPiBUaGVuIHlvdSBjb3VsZCBnZXQgdGhlIG51bWJl ciBvZiBxdWV1ZSBhbGwgcGFja2V0cyB3aWxsIGRpc3RyaWJ1dGUgdG8gYnkgZ2V0dGluZyBkZXZf aW5mby0+bWF4X3J4X3F1ZXVlcy4NCj5JJ20gYWZyYWlkIHUndmUgbWlzc2VkIG15IHBvaW50IGhl cmUuIEZvciBpbnN0YW5jZSwgZm9yIGEgUEYgbWF4X3J4X3F1ZXVlcyB3aWxsIGJlIHNldCB0byAx Mjggd2hpbGUgdSBtYXkgb25seSBjb25maWd1cmUgMTYgUlNTIHF1ZXVlcy4gVGhlIHNpbWlsYXIg d2lsbCBoYXBwZW4gZm9yIGEgVkYgaW4gdGhlIDE2IFZGDQo+Y29uZmlndXJhdGlvbjogbWF4X3J4 X3F1ZXVlcyB3aWxsIGJlIHNldCB0byA4IHdoaWxlIHUgbWF5IGNvbmZpZ3VyZSBvbmx5IDQgUlNT IHF1ZXVlcy4gDQo+VGhpcyBpcyB3aHkgaSBzdWdnZXN0ZWQgdG8gYWRkIGEgc2VwYXJhdGUgaW5m byBmaWVsZC4uLiDwn5iJIA0KWWVzLCBJIGdvdCB5b3VyIHBvaW50IHRoaXMgdGltZSwgYnV0IHRo ZSBpc3N1ZSBpcyB0aGF0IHdoZW4gSSBoYXZlIDE2IHZmLCBhbmQgdHJ5IHRvIHNldCBtYXhfcnhf cXVldWVzIGFzIDgsIHRoZW4gbm8gcXVldWUgY2FuIHJ4IGFueSBwYWNrZXQgb24gdmYsDQpUaGlz IGlzIHdoeSBJIGhhdmUgdG8gYWRkIGEgbG9naWMgdG8gcmVmaW5lIHRoZSByeCBxdWV1ZSBudW1i ZXIgZnJvbSA4IHRvIDQgcXVldWVzLg0KSSBoYXZlIHRyaWVkIHRvIGRvIGl0IGluIHRoZSB3YXkg YXMgeW91IHN1Z2dlc3QsIGJ1dCB1bmZvcnR1bmF0ZWx5IHJ4IHF1ZXVlIGNhbid0IHdvcmsuICBJ ZiB5b3UgZmluZCBhbnkgb3RoZXIgZ29vZCBtZXRob2QsIHBscyBsZXQgbWUga25vdy4NClRoYW5r cyBhbmQgcmVnYXJkcywNCkNoYW5nY2h1bg0KICANCg==