From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 324ED1B13C for ; Tue, 5 Feb 2019 15:27:32 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2019 06:27:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,564,1539673200"; d="scan'208";a="113859779" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga006.jf.intel.com with ESMTP; 05 Feb 2019 06:27:28 -0800 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.160]) by FMSMSX108.amr.corp.intel.com ([169.254.9.99]) with mapi id 14.03.0415.000; Tue, 5 Feb 2019 06:27:30 -0800 From: "Wiles, Keith" To: Harsh Patel CC: Stephen Hemminger , Kyle Larose , "users@dpdk.org" Thread-Topic: [dpdk-users] Query on handling packets Thread-Index: AQHUdzydRRkBFdv4fkKjO7j2RJcyb6VGGaEAgACGp4CAAAyagIABE0+AgAFRlQCAAnP3gIACAjmAgAC+mQCAAZQ9gIAAFqaAgARlHYCAAMRLgIACmg8AgATaFACAAyZygIAA0tiAgAgmHoCAAHMbAIAETeGAgBHQrwCAAAcRAIAX1QuAgAApEICAB3IeAIAAS86AgAB5ToCAE2FWAIAWow+AgACdCIaAB7QrgIAAa/WAgAAP94CAAANgAIAAAsyAgAABVYA= Date: Tue, 5 Feb 2019 14:27:30 +0000 Message-ID: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.54.76] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-users] Query on handling packets X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Feb 2019 14:27:32 -0000 DQoNCj4gT24gRmViIDUsIDIwMTksIGF0IDg6MjIgQU0sIEhhcnNoIFBhdGVsIDx0aGFkb2RhaGFy c2gxMEBnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gQ2FuIHlvdSBoZWxwIHVzIHdpdGggdGhvc2Ug cXVlc3Rpb25zIHdlIGFza2VkIHlvdT8gV2UgbmVlZCB0aGVtIGFzIHBhcmFtZXRlcnMgZm9yIG91 ciB0ZXN0aW5nLg0KDQppIHdvdWxkIGxvdmUgdG8gYnV0IGkgZG8gbm90IGtub3cgbXVjaCBhYm91 dCB3aGF0IHlvdSBhcmUgYXNraW5nLCBzb3JyeS4NCg0KaSBob3BlIHNvbWVvbmUgZWxzZSBzdGVw cyBpbiwgbWF5YmUgdGhlIHBtZCBtYWludGFpbmVyIGNvdWxkIGhlbHAuIGxvb2sgaW4gdGhlIG1h aW50YWluZXJzIGZpbGUgYW5kIG1lc3NhZ2UgaGltIGRpcmVjdGx5Lg0KPiANCj4gVGhhbmtzLCAN Cj4gSGFyc2ggJiBIcmlzaGlrZXNoIA0KPiANCj4gT24gVHVlLCBGZWIgNSwgMjAxOSwgMTk6NDIg V2lsZXMsIEtlaXRoIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+IHdyb3RlOg0KPiANCj4gDQo+ID4g T24gRmViIDUsIDIwMTksIGF0IDg6MDAgQU0sIEhhcnNoIFBhdGVsIDx0aGFkb2RhaGFyc2gxMEBn bWFpbC5jb20+IHdyb3RlOg0KPiA+IA0KPiA+IEhpLCANCj4gPiBPbmUgb2YgdGhlIG1pc3Rha2Ug d2FzIGFzIGZvbGxvd2luZy4gbnMtMyBmcmVlcyB0aGUgcGFja2V0IGJ1ZmZlciBqdXN0IGFzIGl0 IHdyaXRlcyB0byB0aGUgc29ja2V0IGFuZCB0aHVzIHdlIHRob3VnaHQgdGhhdCB3ZSBzaG91bGQg YWxzbyBkbyB0aGUgc2FtZS4gQnV0IGRwZGsgd2hpbGUgd3JpdGluZyBwbGFjZXMgdGhlIHBhY2tl dCBidWZmZXIgdG8gdGhlIHR4IGRlc2NyaXB0b3IgcmluZyBhbmQgcGVyZm9ybSB0aGUgdHJhbnNt aXNzaW9uIGFmdGVyIHRoYXQgb24gaXRzIG93bi4gQW5kIHdlIHdlcmUgZnJlZWluZyBlYXJseSBz byBzb21ldGltZXMgdGhlIHBhY2tldHMgd2VyZSBsb3N0IGkuZS4gZnJlZWQgYmVmb3JlIHRyYW5z bWlzc2lvbi4gDQo+ID4gDQo+ID4gQW5vdGhlciB0aGluZyB3YXMgdGhhdCBhcyB5b3Ugc3VnZ2Vz dGVkIGVhcmxpZXIgd2UgY29tcGlsZWQgdGhlIHdob2xlIG5zLTMgaW4gb3B0aW1pemVkIG1vZGUu IFRoYXQgaW1wcm92ZWQgdGhlIHBlcmZvcm1hbmNlLiANCj4gPiANCj4gPiBUaGVzZSAyIHRoaW5n cyBjb21iaW5lZCBnb3QgdXMgdGhlIGRlc2lyZWQgcmVzdWx0cy4gDQo+IA0KPiBFeGNlbGxlbnQg dGhhbmtzDQo+ID4gDQo+ID4gUmVnYXJkcywgDQo+ID4gSGFyc2ggJiBIcmlzaGlrZXNoIA0KPiA+ IA0KPiA+IE9uIFR1ZSwgRmViIDUsIDIwMTksIDE4OjMzIFdpbGVzLCBLZWl0aCA8a2VpdGgud2ls ZXNAaW50ZWwuY29tPiB3cm90ZToNCj4gPiANCj4gPiANCj4gPiA+IE9uIEZlYiA1LCAyMDE5LCBh dCAxMjozNyBBTSwgSGFyc2ggUGF0ZWwgPHRoYWRvZGFoYXJzaDEwQGdtYWlsLmNvbT4gd3JvdGU6 DQo+ID4gPiANCj4gPiA+IEhpLCANCj4gPiA+IA0KPiA+ID4gV2Ugd291bGQgbGlrZSB0byBpbmZv cm0geW91IHRoYXQgb3VyIGNvZGUgaXMgd29ya2luZyBhcyBleHBlY3RlZCBhbmQgd2UgYXJlIGFi bGUgdG8gb2J0YWluIDk1LTk4IE1icHMgZGF0YSByYXRlIGZvciBhIDEwME1icHMgYXBwbGljYXRp b24gcmF0ZS4gV2UgYXJlIG5vdyB3b3JraW5nIG9uIHRoZSB0ZXN0aW5nIG9mIHRoZSBjb2RlLiBU aGFua3MgYSBsb3QsIGVzcGVjaWFsbHkgdG8gS2VpdGggZm9yIGFsbCB0aGUgaGVscCB5b3UgcHJv dmlkZWQuDQo+ID4gPiANCj4gPiA+IFdlIGhhdmUgMiBtYWluIHF1ZXJpZXMgOi0NCj4gPiA+IDEp IFdlIHdhbnRlZCB0byBjYWxjdWxhdGUgQmFja2xvZyBhdCB0aGUgTklDIFR4IERlc2NyaXB0b3Jz IGJ1dCB3ZXJlIG5vdCBhYmxlIHRvIGZpbmQgYW55dGhpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24u IENhbiB5b3UgaGVscCB1cyBpbiBob3cgdG8gY2FsY3VsYXRlIHRoZSBiYWNrbG9nPw0KPiA+ID4g MikgV2Ugc2VhcmNoZWQgb24gaG93IHRvIHVzZSBCeXRlIFF1ZXVlIExpbWl0IChCUUwpIG9uIHRo ZSBOSUMgcXVldWUgYnV0IGNvdWxkbid0IGZpbmQgYW55dGhpbmcgbGlrZSB0aGF0IGluIERQREsu IERvZXMgRFBESyBzdXBwb3J0IEJRTD8gSWYgc28sIGNhbiB5b3UgaGVscCB1cyBvbiBob3cgdG8g dXNlIGl0IGZvciBvdXIgcHJvamVjdD8NCj4gPiANCj4gPiB3aGF0IHdhcyB0aGUgbGFzdCBzZXQg b2YgcHJvYmxlbXMgaWYgSSBtYXkgYXNrPw0KPiA+ID4gDQo+ID4gPiBUaGFua3MgJiBSZWdhcmRz DQo+ID4gPiBIYXJzaCAmIEhyaXNoaWtlc2gNCj4gPiA+IA0KPiA+ID4gT24gVGh1LCAzMSBKYW4g MjAxOSBhdCAyMjoyOCwgV2lsZXMsIEtlaXRoIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+IHdyb3Rl Og0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IFNlbnQgZnJvbSBteSBpUGhvbmUNCj4gPiA+IA0KPiA+ ID4gT24gSmFuIDMwLCAyMDE5LCBhdCA1OjM2IFBNLCBIYXJzaCBQYXRlbCA8dGhhZG9kYWhhcnNo MTBAZ21haWwuY29tPiB3cm90ZToNCj4gPiA+IA0KPiA+ID4+IEhlbGxvLCANCj4gPiA+PiANCj4g PiA+PiBUaGlzIG1haWwgaXMgdG8gaW5mb3JtIHlvdSB0aGF0IHRoZSBpbnRlZ3JhdGlvbiBvZiBE UERLIGlzIHdvcmtpbmcgd2l0aCBucy0zIG9uIGEgYmFzaWMgbGV2ZWwuIFRoZSBtb2RlbCBpcyBy dW5uaW5nLiANCj4gPiA+PiBGb3IgVURQIHRyYWZmaWMgd2UgYXJlIGdldHRpbmcgdGhyb3VnaHB1 dCBzYW1lIG9yIGJldHRlciB0aGFuIHJhdyBzb2NrZXQuIChBcm91bmQgMTAwTWJwcykNCj4gPiA+ PiBCdXQgdW5mb3J0dW5hdGVseSBmb3IgVENQLCB0aGVyZSBhcmUgYnVyc3QgcGFja2V0IGxvc3Nl cyBkdWUgdG8gd2hpY2ggdGhlIHRocm91Z2hwdXQgaXMgZHJhc3RpY2FsbHkgYWZmZWN0ZWQgYWZ0 ZXIgc29tZSBwb2ludCBvZiB0aW1lLiBUaGUgYmFuZHdpZHRoIG9mIHRoZSBsaW5rIHVzZWQgd2Fz IDEwME1icHMuIA0KPiA+ID4+IFdlIGhhdmUgb2J0YWluZWQgY3duZCBhbmQgc3N0aHJlc2ggZ3Jh cGhzIHdoaWNoIHNob3cgdGhhdCBvbmNlIHRoZSBmbG93IGdldHMgb3V0IGZyb20gU2xvdyBTdGFy dCBtb2RlLCB0aGVyZSBhcmUgc28gbWFueSBwYWNrZXQgbG9zc2VzIHRoYXQgdGhlIGNvbmdlc3Rp b24gd2luZG93ICYgdGhlIHNsb3cgc3RhcnQgdGhyZXNob2xkIGlzIG5vdCBhYmxlIHRvIGdvIGFi b3ZlIDQtNSBwYWNrZXRzLiANCj4gPiA+IA0KPiA+ID4gQ2FuIHlvdSBkZXRlcm1pbmUgd2hlcmUg dGhlIHBhY2tldHMgYXJlIGJlaW5nIGRyb3BwZWQ/DQo+ID4gPj4gV2UgaGF2ZSBhdHRhY2hlZCB0 aGUgZ3JhcGhzIHdpdGggdGhpcyBtYWlsLg0KPiA+ID4+IA0KPiA+ID4gDQo+ID4gPiBJIGRvIG5v dCBzZWUgdGhlIGdyYXBocyBhdHRhY2hlZCBidXQgdGhhdOKAmXMgT0suIA0KPiA+ID4+IFdlIHdv dWxkIGxpa2UgdG8ga25vdyBpZiB0aGVyZSBpcyBhbnkgcmVhc29uIHRvIHRoaXMgb3IgaG93IGNh biB3ZSBmaXggdGhpcy4gDQo+ID4gPiANCj4gPiA+IEkgdGhpbmsgd2UgaGF2ZSB0byBmaW5kIG91 dCB3aGVyZSB0aGUgcGFja2V0cyBhcmUgYmVpbmcgZHJvcHBlZCB0aGlzIGlzIHRoZSBvbmx5IHJl YXNvbiBmb3IgdGhlIGNhc2UgdG8geW91ciByZWZlcnJpbmcgdG8uIA0KPiA+ID4+IA0KPiA+ID4+ IFRoYW5rcyAmIFJlZ2FyZHMNCj4gPiA+PiBIYXJzaCAmIEhyaXNoaWtlc2gNCj4gPiA+PiANCj4g PiA+PiBPbiBXZWQsIDE2IEphbiAyMDE5IGF0IDE5OjI1LCBIYXJzaCBQYXRlbCA8dGhhZG9kYWhh cnNoMTBAZ21haWwuY29tPiB3cm90ZToNCj4gPiA+PiBIaQ0KPiA+ID4+IA0KPiA+ID4+IFdlIHdl cmUgYWJsZSB0byBvcHRpbWlzZSB0aGUgRFBESyB2ZXJzaW9uLiBUaGVyZSB3ZXJlIGNvdXBsZSBv ZiB0aGluZ3Mgd2UgbmVlZGVkIHRvIGRvLg0KPiA+ID4+IA0KPiA+ID4+IFdlIHdlcmUgdXNpbmcg dHggdGltZW91dCBhcyAxcy8yMDQ4LCB3aGljaCB3ZSBmb3VuZCBvdXQgdG8gYmUgdmVyeSBsZXNz LiBUaGVuIHdlIGluY3JlYXNlZCB0aGUgdGltZW91dCwgYnV0IHdlIHdlcmUgZ2V0dGluZyBsb3Qg b2YgcmV0cmFuc21pc3Npb25zLg0KPiA+ID4+IA0KPiA+ID4+IFNvIHdlIHJlbW92ZWQgdGhlIHRp bWVvdXQgYW5kIHNlbnQgc2luZ2xlIHBhY2tldCBhcyBzb29uIGFzIHdlIGdldCBpdC4gVGhpcyBp bmNyZWFzZWQgdGhlIHRocm91Z2hwdXQuDQo+ID4gPj4gDQo+ID4gPj4gVGhlbiB3ZSB1c2VkIERQ REsgZmVhdHVyZSB0byBsYXVuY2ggZnVuY3Rpb24gb24gY29yZSwgYW5kIGdhdmUgYSBkZWRpY2F0 ZWQgY29yZSBmb3IgUnguIFRoaXMgaW5jcmVhc2VkIHRoZSB0aHJvdWdocHV0IGZ1cnRoZXIuDQo+ ID4gPj4gDQo+ID4gPj4gVGhlIGNvZGUgaXMgd29ya2luZyByZWFsbHkgd2VsbCBmb3IgbG93IGJh bmR3aWR0aCAoPH41ME1icHMpIGFuZCBpcyBvdXRwZXJmb3JtaW5nIHJhdyBzb2NrZXQgdmVyc2lv bi4NCj4gPiA+PiBCdXQgZm9yIGhpZ2ggYmFuZHdpZHRoLCB3ZSBhcmUgZ2V0dGluZyBwYWNrZXQg bGVuZ3RoIG1pc21hdGNoZXMgZm9yIHNvbWUgcmVhc29uLiBXZSBhcmUgaW52ZXN0aWdhdGluZyBp dC4NCj4gPiA+PiANCj4gPiA+PiBXZSByZWFsbHkgdGhhbmsgeW91IGZvciB0aGUgc3VnZ2VzdGlv bnMgZ2l2ZW4gYnkgeW91IGFuZCBhbHNvIGZvciBrZWVwaW5nIHRoZSBwYXRpZW5jZSBmb3IgbGFz dCBjb3VwbGUgb2YgbW9udGhzLiANCj4gPiA+PiANCj4gPiA+PiBUaGFuayB5b3UNCj4gPiA+PiAN Cj4gPiA+PiBSZWdhcmRzLCANCj4gPiA+PiBIYXJzaCAmIEhyaXNoaWtlc2ggDQo+ID4gPj4gDQo+ ID4gPj4gT24gRnJpLCBKYW4gNCwgMjAxOSwgMTE6MjcgSGFyc2ggUGF0ZWwgPHRoYWRvZGFoYXJz aDEwQGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4gPj4gWWVzIHRoYXQgd291bGQgYmUgaGVscGZ1bC4g DQo+ID4gPj4gSXQnZCBiZSBvayBmb3Igbm93IHRvIHVzZSB0aGUgc2FtZSBkcGRrIHZlcnNpb24g dG8gb3ZlcmNvbWUgdGhlIGJ1aWxkIGlzc3Vlcy4gDQo+ID4gPj4gV2Ugd2lsbCBsb29rIGludG8g dXBkYXRpbmcgdGhlIGNvZGUgZm9yIGxhdGVzdCB2ZXJzaW9ucyBvbmNlIHdlIGdldCBwYXN0IHRo aXMgcHJvYmxlbS4gDQo+ID4gPj4gDQo+ID4gPj4gVGhhbmsgeW91IHZlcnkgbXVjaC4gDQo+ID4g Pj4gDQo+ID4gPj4gUmVnYXJkcywgDQo+ID4gPj4gSGFyc2ggJiBIcmlzaGlrZXNoDQo+ID4gPj4g DQo+ID4gPj4gT24gRnJpLCBKYW4gNCwgMjAxOSwgMDQ6MTMgV2lsZXMsIEtlaXRoIDxrZWl0aC53 aWxlc0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+ID4gT24gSmFu IDMsIDIwMTksIGF0IDEyOjEyIFBNLCBIYXJzaCBQYXRlbCA8dGhhZG9kYWhhcnNoMTBAZ21haWwu Y29tPiB3cm90ZToNCj4gPiA+PiA+IA0KPiA+ID4+ID4gSGkNCj4gPiA+PiA+IA0KPiA+ID4+ID4g V2UgYXBwbGllZCB5b3VyIHN1Z2dlc3Rpb24gb2YgcmVtb3ZpbmcgdGhlIGBJc0xpbmtVcCgpYCBj YWxsLiBCdXQgdGhlIHBlcmZvcm1hY2UgaXMgZXZlbiB3b3JzZS4gV2UgY291bGQgb25seSBnZXQg YXJvdW5kIDM0MGtiaXRzL3MuDQo+ID4gPj4gPiANCj4gPiA+PiA+IFRoZSBUb3AgSG90c3BvdHMg YXJlOg0KPiA+ID4+ID4gDQo+ID4gPj4gPiBGdW5jdGlvbiAgICBNb2R1bGUgICAgQ1BVIFRpbWUN Cj4gPiA+PiA+IGV0aF9lbV9yZWN2X3BrdHMgICAgbGlicnRlX3BtZF9lMTAwMC5zbyAgICAxNS4x MDZzDQo+ID4gPj4gPiBydGVfZGVsYXlfdXNfYmxvY2sgICAgbGlicnRlX2VhbC5zby42LjEgICAg Ny4zNzJzDQo+ID4gPj4gPiBuczM6OkRwZGtOZXREZXZpY2U6OlJlYWQgICAgbGlibnMzLjI4LjEt ZmQtbmV0LWRldmljZS1kZWJ1Zy5zbyAgICA1LjA4MHMNCj4gPiA+PiA+IHJ0ZV9ldGhfcnhfYnVy c3QgICAgbGlibnMzLjI4LjEtZmQtbmV0LWRldmljZS1kZWJ1Zy5zbyAgICAzLjU1OHMNCj4gPiA+ PiA+IG5zMzo6RHBka05ldERldmljZVJlYWRlcjo6RG9SZWFkICAgIGxpYm5zMy4yOC4xLWZkLW5l dC1kZXZpY2UtZGVidWcuc28gICAgMy4zNjRzDQo+ID4gPj4gPiBbT3RoZXJzXSAgICAgICAgNC43 NjBzDQo+ID4gPj4gDQo+ID4gPj4gUGVyZm9ybWFuY2UgcmVkdWNlZCBieSByZW1vdmluZyB0aGF0 IGxpbmsgc3RhdHVzIGNoZWNrLCB0aGF0IGlzIHdlaXJkLg0KPiA+ID4+ID4gDQo+ID4gPj4gPiBV cG9uIGNoZWNraW5nIHRoZSBjYWxsZXJzIG9mIGBydGVfZGVsYXlfdXNfYmxvY2tgLCB3ZSBnb3Qg dG8ga25vdyB0aGF0IG1vc3Qgb2YgdGhlIHRpbWUgKDkyJSkgc3BlbnQgaW4gdGhpcyBmdW5jdGlv biBpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uDQo+ID4gPj4gPiBUaGlzIGRvZXMgbm90IHdhc3Rl IG91ciBwcm9jZXNzaW5nIHRpbWUgZHVyaW5nIGNvbW11bmljYXRpb24uIFNvLCBpdCdzIGEgZ29v ZCBzdGFydCB0byBvdXIgb3B0aW1pemF0aW9uLg0KPiA+ID4+ID4gDQo+ID4gPj4gPiBDYWxsZXJz ICAgIENQVSBUaW1lOiBUb3RhbCAgICBDUFUgVGltZTogU2VsZg0KPiA+ID4+ID4gcnRlX2RlbGF5 X3VzX2Jsb2NrICAgIDEwMC4wJSAgICA3LjM3MnMNCj4gPiA+PiA+ICAgZTEwMDBfZW5hYmxlX3Vs cF9scHRfbHAgICAgOTIuMyUgICAgNi44MDRzDQo+ID4gPj4gPiAgIGUxMDAwX3dyaXRlX3BoeV9y ZWdfbWRpYyAgICAxLjglICAgIDAuMTM2cw0KPiA+ID4+ID4gICBlMTAwMF9yZXNldF9od19pY2g4 bGFuICAgIDEuNyUgICAgMC4xMjhzDQo+ID4gPj4gPiAgIGUxMDAwX3JlYWRfcGh5X3JlZ19tZGlj ICAgIDEuNCUgICAgMC4xMDRzDQo+ID4gPj4gPiAgIGV0aF9lbV9saW5rX3VwZGF0ZSAgICAxLjQl ICAgIDAuMTAwcw0KPiA+ID4+ID4gICBlMTAwMF9nZXRfY2ZnX2RvbmVfZ2VuZXJpYyAgICAwLjcl ICAgIDAuMDUycw0KPiA+ID4+ID4gICBlMTAwMF9wb3N0X3BoeV9yZXNldF9pY2g4bGFuLnBhcnQu MTggICAgMC43JSAgICAwLjA0OHMNCj4gPiA+PiANCj4gPiA+PiBJIGd1ZXNzIHlvdSBhcmUgaGF2 aW5nIHZUdW5lIHN0YXJ0IHlvdXIgYXBwbGljYXRpb24gYW5kIHRoYXQgaXMgd2h5IHlvdSBoYXZl IGluaXQgdGltZSBpdGVtcyBpbiB5b3VyIGxvZy4gSSBub3JtYWxseSBzdGFydCBteSBhcHBsaWNh dGlvbiBhbmQgdGhlbiBhdHRhY2ggdnR1bmUgdG8gdGhlIGFwcGxpY2F0aW9uLiBPbmUgb2YgdGhl IG9wdGlvbnMgaW4gY29uZmlndXJhdGlvbiBvZiB2dHVuZSBmb3IgdGhhdCBwcm9qZWN0IGlzIHRv IGF0dGFjaCB0byB0aGUgYXBwbGljYXRpb24uIE1heWJlIGl0IHdvdWxkIGhlbHAgaGVhci4NCj4g PiA+PiANCj4gPiA+PiBMb29raW5nIGF0IHRoZSBkYXRhIHlvdSBwcm92aWRlZCBpdCB3YXMgb2su IFRoZSBwcm9ibGVtIGlzIGl0IHdvdWxkIG5vdCBsb2FkIHRoZSBzb3VyY2UgZmlsZXMgYXMgSSBk aWQgbm90IGhhdmUgdGhlIHNhbWUgYnVpbGQgb3IgZXhlY3V0YWJsZS4gSSB0cmllZCB0byBidWls ZCB0aGUgY29kZSwgYnV0IGl0IGZhaWxlZCB0byBidWlsZCBhbmQgSSBkaWQgbm90IGdvIGZ1cnRo ZXIuIEkgZ3Vlc3MgSSB3b3VsZCBuZWVkIHRvIHNlZSB0aGUgZnVsbCBzb3VyY2UgdHJlZSBhbmQg dGhlIGV4ZWN1dGFibGUgeW91IHVzZWQgdG8gcmVhbGx5IGxvb2sgYXQgdGhlIHByb2JsZW0uIEkg aGF2ZSBsaW1pdGVkIHRpbWUsIGJ1dCBJIGNhbiB0cnkgaWYgeW91IGxpa2UuIA0KPiA+ID4+ID4g DQo+ID4gPj4gPiANCj4gPiA+PiA+IEVmZmVjdGl2ZSBDUFUgVXRpbGl6YXRpb246ICAgIDIxLjQl ICgwLjg1NiBvdXQgb2YgNCkNCj4gPiA+PiA+IA0KPiA+ID4+ID4gSGVyZSBpcyB0aGUgbGluayB0 byB2dHVuZSBwcm9maWxpbmcgcmVzdWx0cy4gaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/ aWQ9MU02ZzJpUlpxMkpHUG9EVlB3WkN4V0JvN3F6VWh2V2k1DQo+ID4gPj4gPiANCj4gPiA+PiA+ IFRoYW5rIHlvdQ0KPiA+ID4+ID4gDQo+ID4gPj4gPiBSZWdhcmRzDQo+ID4gPj4gPiANCj4gPiA+ PiA+IE9uIFN1biwgRGVjIDMwLCAyMDE4LCAwNjowMCBXaWxlcywgS2VpdGggPGtlaXRoLndpbGVz QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPj4gPiANCj4gPiA+PiA+IA0KPiA+ID4+ID4gPiBPbiBE ZWMgMjksIDIwMTgsIGF0IDQ6MDMgUE0sIEhhcnNoIFBhdGVsIDx0aGFkb2RhaGFyc2gxMEBnbWFp bC5jb20+IHdyb3RlOg0KPiA+ID4+ID4gPiANCj4gPiA+PiA+ID4gSGVsbG8sDQo+ID4gPj4gPiA+ IEFzIHN1Z2dlc3RlZCwgd2UgdHJpZWQgcHJvZmlsaW5nIHRoZSBhcHBsaWNhdGlvbiB1c2luZyBJ bnRlbCBWVHVuZSBBbXBsaWZpZXIuIFdlIGFyZW4ndCBzdXJlIGhvdyB0byB1c2UgdGhlc2UgcmVz dWx0cywgc28gd2UgYXJlIGF0dGFjaGluZyB0aGVtIHRvIHRoaXMgZW1haWwuDQo+ID4gPj4gPiA+ IA0KPiA+ID4+ID4gPiBUaGUgdGhpbmdzIHdlIHVuZGVyc3Rvb2Qgd2VyZSAnVG9wIEhvdHNwb3Rz JyBhbmQgJ0VmZmVjdGl2ZSBDUFUgdXRpbGl6YXRpb24nLiBGb2xsb3dpbmcgYXJlIHNvbWUgb2Yg b3VyIHVuZGVyc3RhbmRpbmdzOg0KPiA+ID4+ID4gPiANCj4gPiA+PiA+ID4gVG9wIEhvdHNwb3Rz DQo+ID4gPj4gPiA+IA0KPiA+ID4+ID4gPiBGdW5jdGlvbiAgICAgICAgTW9kdWxlICBDUFUgVGlt ZQ0KPiA+ID4+ID4gPiBydGVfZGVsYXlfdXNfYmxvY2sgICAgICBsaWJydGVfZWFsLnNvLjYuMSAg ICAgICAxNS4wNDJzDQo+ID4gPj4gPiA+IGV0aF9lbV9yZWN2X3BrdHMgICAgICAgIGxpYnJ0ZV9w bWRfZTEwMDAuc28gICAgIDkuNTQ0cw0KPiA+ID4+ID4gPiBuczM6OkRwZGtOZXREZXZpY2U6OlJl YWQgICAgICAgIGxpYm5zMy4yOC4xLWZkLW5ldC1kZXZpY2UtZGVidWcuc28gICAgICAzLjUyMnMN Cj4gPiA+PiA+ID4gbnMzOjpEcGRrTmV0RGV2aWNlUmVhZGVyOjpEb1JlYWQgICAgICAgIGxpYm5z My4yOC4xLWZkLW5ldC1kZXZpY2UtZGVidWcuc28gICAgICAyLjQ3MHMNCj4gPiA+PiA+ID4gcnRl X2V0aF9yeF9idXJzdCAgICAgICAgbGlibnMzLjI4LjEtZmQtbmV0LWRldmljZS1kZWJ1Zy5zbyAg ICAgIDIuNDU2cw0KPiA+ID4+ID4gPiBbT3RoZXJzXSAgICAgICAgICAgICAgICA2LjY1NnMNCj4g PiA+PiA+ID4gDQo+ID4gPj4gPiA+IFdlIGtuZXcgYWJvdXQgb3RoZXIgbWV0aG9kcyBleGNlcHQg YHJ0ZV9kZWxheV91c19ibG9ja2AuIFNvIHdlIGludmVzdGlnYXRlZCB0aGUgY2FsbGVycyBvZiB0 aGlzIG1ldGhvZDoNCj4gPiA+PiA+ID4gDQo+ID4gPj4gPiA+IENhbGxlcnMgRWZmZWN0aXZlIFRp bWUgIFNwaW4gVGltZSAgICAgICBPdmVyaGVhZCBUaW1lICAgRWZmZWN0aXZlIFRpbWUgIFNwaW4g VGltZSAgICAgICBPdmVyaGVhZCBUaW1lICAgV2FpdCBUaW1lOiBUb3RhbCAgICAgICAgV2FpdCBU aW1lOiBTZWxmDQo+ID4gPj4gPiA+IGUxMDAwX2VuYWJsZV91bHBfbHB0X2xwIDQ1LjYlICAgMC4w JSAgICAwLjAlICAgIDYuODYwcyAgMHVzZWMgICAwdXNlYw0KPiA+ID4+ID4gPiBlMTAwMF93cml0 ZV9waHlfcmVnX21kaWMgICAgICAgIDMyLjclICAgMC4wJSAgICAwLjAlICAgIDQuOTE2cyAgMHVz ZWMgICAwdXNlYw0KPiA+ID4+ID4gPiBlMTAwMF9yZWFkX3BoeV9yZWdfbWRpYyAxOS40JSAgIDAu MCUgICAgMC4wJSAgICAyLjkyMnMgIDB1c2VjICAgMHVzZWMNCj4gPiA+PiA+ID4gZTEwMDBfcmVz ZXRfaHdfaWNoOGxhbiAgMS4wJSAgICAwLjAlICAgIDAuMCUgICAgMC4xNDNzICAwdXNlYyAgIDB1 c2VjDQo+ID4gPj4gPiA+IGV0aF9lbV9saW5rX3VwZGF0ZSAgICAgIDAuNyUgICAgMC4wJSAgICAw LjAlICAgIDAuMTAwcyAgMHVzZWMgICAwdXNlYw0KPiA+ID4+ID4gPiBlMTAwMF9wb3N0X3BoeV9y ZXNldF9pY2g4bGFuLnBhcnQuMTggICAgMC40JSAgICAwLjAlICAgIDAuMCUgICAgMC4wNjRzICAw dXNlYyAgIDB1c2VjDQo+ID4gPj4gPiA+IGUxMDAwX2dldF9jZmdfZG9uZV9nZW5lcmljICAgICAg MC4yJSAgICAwLjAlICAgIDAuMCUgICAgMC4wMzdzICAwdXNlYyAgIDB1c2VjDQo+ID4gPj4gPiA+ IA0KPiA+ID4+ID4gPiBXZSBsYWNrIHN1ZmZpY2llbnQga25vd2xlZGdlIHRvIGludmVzdGlnYXRl IG1vcmUgdGhhbiB0aGlzLg0KPiA+ID4+ID4gPiANCj4gPiA+PiA+ID4gRWZmZWN0aXZlIENQVSB1 dGlsaXphdGlvbg0KPiA+ID4+ID4gPiANCj4gPiA+PiA+ID4gSW50ZXJlc3RpbmdseSwgdGhlIGVm ZmVjdGl2ZSBDUFUgdXRpbGl6YXRpb24gd2FzIDIwLjglICgwLjgzMiBvdXQgb2YgNCBsb2dpY2Fs IENQVXMpLiBXZSB0aG91Z2h0IHRoaXMgaXMgbGVzcy4gU28gd2UgY29tcGFyZWQgdGhpcyB3aXRo IHRoZSByYXctc29ja2V0IHZlcnNpb24gb2YgdGhlIGNvZGUsIHdoaWNoIHdhcyBldmVuIGxlc3Ms IDguMCUgKDAuMzE4IG91dCBvZiA0IGxvZ2ljYWwgQ1BVcyksIGFuZCBldmVuIHRoZW4gaXQgaXMg cGVyZm9ybWluZyB3YXkgYmV0dGVyLg0KPiA+ID4+ID4gPiANCj4gPiA+PiA+ID4gSXQgd291bGQg YmUgaGVscGZ1bCBpZiB5b3UgZ2l2ZSB1cyBpbnNpZ2h0cyBvbiBob3cgdG8gdXNlIHRoZXNlIHJl c3VsdHMgb3IgcG9pbnQgdXMgdG8gc29tZSByZXNvdXJjZXMgdG8gZG8gc28uIA0KPiA+ID4+ID4g PiANCj4gPiA+PiA+ID4gVGhhbmsgeW91IA0KPiA+ID4+ID4gPiANCj4gPiA+PiA+IA0KPiA+ID4+ ID4gQlRXLCBJIHdhcyBhYmxlIHRvIGJ1aWxkIG5zMyB3aXRoIERQREsgMTguMTEgaXQgcmVxdWly ZWQgYSBjb3VwbGUgY2hhbmdlcyBpbiB0aGUgRFBESyBpbml0IGNvZGUgaW4gbnMzIHBsdXMgb25l IGhhY2sgaW4gcnRlX21idWYuaCBmaWxlLg0KPiA+ID4+ID4gDQo+ID4gPj4gPiBJIGRpZCBoYXZl IGEgcHJvYmxlbSBpbmNsdWRpbmcgcnRlX21idWYuaCBmaWxlIGludG8geW91ciBjb2RlLiBJdCBh cHBlYXJzIHRoZSBnKysgY29tcGlsZXIgZGlkIG5vdCBsaWtlIHJlZmVyZW5jaW5nIHRoZSBzdHJ1 Y3QgcnRlX21idWZfc2NoZWQgaW5zaWRlIHRoZSBydGVfbWJ1ZiBzdHJ1Y3R1cmUuIFRoZSBydGVf bWJ1Zl9zY2hlZCB3YXMgaW5zaWRlIHRoZSBiaWcgdW5pb24gYXMgYSBoYWNrIEkgbW92ZWQgdGhl IHN0cnVjdCBvdXRzaWRlIG9mIHRoZSBydGVfbWJ1ZiBzdHJ1Y3R1cmUgYW5kIHJlcGxhY2VkIHRo ZSBzdHJ1Y3QgaW4gdGhlIHVuaW9uIHdpdGgg4oCZc3RydWN0IHJ0ZV9tYnVmX3NjaGVkIHNjaGVk OycsIGJ1dCBJIGFtIGd1ZXNzaW5nIHlvdSBhcmUgbWlzc2luZyBzb21lIGNvbXBpbGVyIG9wdGlv bnMgaW4geW91ciBidWlsZCBzeXN0ZW0gYXMgRFBESyBidWlsZHMganVzdCBmaW5lIHdpdGhvdXQg dGhhdCBoYWNrLg0KPiA+ID4+ID4gDQo+ID4gPj4gPiBUaGUgbmV4dCBwbGFjZSB3YXMgdGhlIHJ4 bW9kZSBhbmQgdGhlIHR4cV9mbGFncy4gVGhlIHJ4bW9kZSBzdHJ1Y3R1cmUgaGFzIGNoYW5nZWQg YW5kIEkgY29tbWVudGVkIG91dCB0aGUgaW5pdHMgaW4gbnMzIGFuZCB0aGVuIGNvbW1lbnRlZCBv dXQgdGhlIHR4cV9mbGFncyBpbml0IGNvZGUgYXMgdGhlc2UgYXJlIG5vdyB0aGUgZGVmYXVsdHMu DQo+ID4gPj4gPiANCj4gPiA+PiA+IFJlZ2FyZHMsDQo+ID4gPj4gPiBLZWl0aA0KPiA+ID4+ID4g DQo+ID4gPj4gDQo+ID4gPj4gUmVnYXJkcywNCj4gPiA+PiBLZWl0aA0KPiA+ID4+IA0KPiA+ID4+ IDxTc3RocmVzaC5wbmc+DQo+ID4gPj4gPEN3bmQucG5nPg0KPiA+IA0KPiA+IFJlZ2FyZHMsDQo+ ID4gS2VpdGgNCj4gPiANCj4gDQo+IFJlZ2FyZHMsDQo+IEtlaXRoDQo+IA0KDQpSZWdhcmRzLA0K S2VpdGgNCg0K