From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0058.outbound.protection.outlook.com [157.56.112.58]) by dpdk.org (Postfix) with ESMTP id C44D58E7B for ; Mon, 2 Nov 2015 13:31:13 +0100 (CET) Received: from AM2PR05MB0995.eurprd05.prod.outlook.com (10.161.234.145) by AM2PR05MB0995.eurprd05.prod.outlook.com (10.161.234.145) with Microsoft SMTP Server (TLS) id 15.1.312.18; Mon, 2 Nov 2015 12:31:11 +0000 Received: from AM2PR05MB0995.eurprd05.prod.outlook.com ([10.161.234.145]) by AM2PR05MB0995.eurprd05.prod.outlook.com ([10.161.234.145]) with mapi id 15.01.0312.014; Mon, 2 Nov 2015 12:31:06 +0000 From: Olga Shern To: Jesper Wramberg Thread-Topic: [dpdk-users] Low TX performance on Mellanox ConnectX-3 NIC Thread-Index: AQHRFIdG2d5EB242qk2DsKcxnHNZgJ6G62jggAGmo4CAABZn0A== Date: Mon, 2 Nov 2015 12:31:06 +0000 Message-ID: References: <36170571.QMO0L8HZgB@xps13> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=olgas@mellanox.com; x-originating-ip: [193.47.165.251] x-microsoft-exchange-diagnostics: 1; AM2PR05MB0995; 5:IHBtWMM13s5h1zv2tRpfgOBWa2Y3mTksG8ssa5gewOxeuGe0zaCzXZb/AyVOPBSNkHga5I8RIlJ5rFgsPDq9OdVoTt3LAX6IMa9Sgr8FcbVZzFDDts0Kini1X9AmPDqMmUUmR8qRXZVwDlEIEs2fZQ==; 24:WGuxdZQWlD/gCOKmqbCtVF8zOFKdUOEr/mDILKZlz0lks7p8ZiejsWRv698fNjdlt+pkt9MbD8/2Tt/LoM093NnhlRjbAxpFSgbux7ZixdE=; 20:Eg4it6NJ/R7GANIYX+De8H66/eHCSh5f7fXOSU5xrF5es/UVZvPfhpfxdE/LbRjHVqBm8mBjVQpNH7U9e8wEFA== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR05MB0995; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(34787635062028)(108003899814671); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046); SRVR:AM2PR05MB0995; BCL:0; PCL:0; RULEID:; SRVR:AM2PR05MB0995; x-forefront-prvs: 0748FF9A04 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(53754006)(377454003)(189002)(199003)(243025005)(40764003)(52314003)(377424004)(66066001)(102836002)(110136002)(189998001)(77096005)(575784001)(5001960100002)(19580395003)(97736004)(106356001)(2950100001)(86362001)(40100003)(54356999)(101416001)(76176999)(19625215002)(5003600100002)(105586002)(19580405001)(50986999)(19300405004)(122556002)(19617315012)(74316001)(106116001)(87936001)(5002640100001)(5007970100001)(15975445007)(76576001)(2900100001)(81156007)(10400500002)(5008740100001)(19609705001)(92566002)(16236675004)(33656002)(5004730100002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR05MB0995; H:AM2PR05MB0995.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2015 12:31:06.1756 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR05MB0995 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "users@dpdk.org" Subject: Re: [dpdk-users] Low TX performance on Mellanox ConnectX-3 NIC X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2015 12:31:15 -0000 SGkgSmVzcGVyLA0KDQpJIHRoaW5rIHlvdXIgY2FsY3VsYXRpb24gaXMgd3Jvbmcg4pi5DQoNCjMu MzIgTXBwcyBmb3IgMTQ4MEIgbWVzc2FnZSAgPSAzLjMyICogMTQ4MEIgPSAgfiAzOUdiaXQvcw0K U28gdGhpcyBpcyBhbG1vc3QgbGluZSByYXRlIGZvciBvbmUgNDBHIHBvcnQNCg0KTWF5YmUgSSBh bSBtaXNzaW5nIHNvbWV0aGluZywgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nDQoNCkJlc3QgUmVn YXJkcywNCk9sZ2ENCg0KDQpQLlMuIFRoZSBvdXRwdXQgb2YgcmF3X2V0aGVybmV0X2J3IGlzDQoN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICNieXRlcyAgICAgI2l0ZXJhdGlvbnMg ICAgQlcgcGVha1tNQi9zZWNdICAgIEJXIGF2ZXJhZ2VbTUIvc2VjXSAgIE1zZ1JhdGVbTXBwc10N CiAxNDgwICAgICAgIDMzMjQyNzQ4ICAgICAgICAgMC4wMCAgICAgICAgICAgICAgIDQ2OTEuNTgg TUIvcyAgICAgICAgICAgMy4zMjM5NzQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K DQoNCkZyb206IEplc3BlciBXcmFtYmVyZyBbbWFpbHRvOmplc3Blci53cmFtYmVyZ0BnbWFpbC5j b21dDQpTZW50OiBNb25kYXksIE5vdmVtYmVyIDAyLCAyMDE1IDE6MDAgUE0NClRvOiBPbGdhIFNo ZXJuIDxvbGdhc0BtZWxsYW5veC5jb20+DQpDYzogdXNlcnNAZHBkay5vcmcNClN1YmplY3Q6IFJl OiBbZHBkay11c2Vyc10gTG93IFRYIHBlcmZvcm1hbmNlIG9uIE1lbGxhbm94IENvbm5lY3RYLTMg TklDDQoNCkhpIGFnYWluLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgaW5wdXQuIEkgaGF2ZSBub3cg c3dpdGNoZWQgdG8gdXNpbmcgdGhlIHJhd19ldGhlcm5ldF9idyBzY3JpcHQgYXMgdHJhbnNtaXR0 ZXIgYW5kIHRoZSB0ZXN0LXBtZCBhcyByZWNlaXZlci4gQW4gaW1tZWRpYXRlIHJlc3VsdCBJIGRp c2NvdmVyZWQgd2FzIHRoYXQgdGhlIHJhd19ldGhlcm5ldF9idyB0b29sIGFjaGlldmVzIHZlcnkg c2ltaWxhciBUWCBwZXJmb3JtYW5jZSBhcyBteSBEUERLIHRyYW5zbWl0dGVyLg0KDQoNCihub3Rl IGJvdGggY3B1MTAgYW5kIG1seDRfMCBpcyBvbiBzYW1lIG51bWEgbm9kZSBhcyB3YW50ZWQpDQp0 YXNrc2V0IC1jIDEwIHJhd19ldGhlcm5ldF9idyAtLWNsaWVudCAtZCBtbHg0XzAgLWkgMiAtbCAz IC0tZHVyYXRpb24gMjAgLXMgMTQ4MCAtLWRlc3RfbWFjIEY0OjUyOjE0OjdBOjU5OjgwDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClBvc3QgTGlzdCByZXF1ZXN0ZWQgLSBDUSBtb2Rl cmF0aW9uIHdpbGwgYmUgdGhlIHNpemUgb2YgdGhlIHBvc3QgbGlzdA0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgICAgICAgIFNlbmQgUG9zdCBMaXN0IEJXIFRl c3QNCiBEdWFsLXBvcnQgICAgICAgOiBPRkYgICAgICAgICAgRGV2aWNlICAgICAgICAgOiBtbHg0 XzANCiBOdW1iZXIgb2YgcXBzICAgOiAxICAgICAgICAgICAgVHJhbnNwb3J0IHR5cGUgOiBJQg0K IENvbm5lY3Rpb24gdHlwZSA6IFJhd0V0aCAgICAgICAgICAgICAgIFVzaW5nIFNSUSAgICAgIDog T0ZGDQogVFggZGVwdGggICAgICAgIDogMTI4DQogUG9zdCBMaXN0ICAgICAgIDogMw0KIENRIE1v ZGVyYXRpb24gICA6IDMNCiBNdHUgICAgICAgICAgICAgOiAxNTE4W0JdDQogTGluayB0eXBlICAg ICAgIDogRXRoZXJuZXQNCiBHaWQgaW5kZXggICAgICAgOiAwDQogTWF4IGlubGluZSBkYXRhIDog MFtCXQ0KIHJkbWFfY20gUVBzICAgICA6IE9GRg0KIERhdGEgZXguIG1ldGhvZCA6IEV0aGVybmV0 DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCioqcmF3IGV0aGVybmV0IGhlYWRlcioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnwgRGVzdCBN QUMgICAgICAgICB8IFNyYyBNQUMgICAgICAgICAgfCBQYWNrZXQgVHlwZSAgICAgICAgICB8DQp8 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tfA0KfCBGNDo1MjoxNDo3QTo1OTo4MHwgRTY6MUQ6MkQ6MTE6RkY6NDF8REVGQVVMVCAgICAg ICAgICAgICAgIHwNCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS18DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICNi eXRlcyAgICAgI2l0ZXJhdGlvbnMgICAgQlcgcGVha1tNQi9zZWNdICAgIEJXIGF2ZXJhZ2VbTUIv c2VjXSAgIE1zZ1JhdGVbTXBwc10NCiAxNDgwICAgICAgIDMzMjQyNzQ4ICAgICAgICAgMC4wMCAg ICAgICAgICAgICAgIDQ2OTEuNTggICAgICAgICAgICAzLjMyMzk3NA0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQoNCg0KUnVubmluZyBpdCB3aXRoIHRoZSA2NCBieXRlIHBhY2tldHMg T2xnYSBzcGVjaWZpZWQgZ2l2ZXMgbWUgdGhlIGZvbGxvd2luZyByZXN1bHQ6DQoNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICNieXRlcyAgICAgI2l0ZXJhdGlvbnMgICAgQlcgcGVh a1tNQi9zZWNdICAgIEJXIGF2ZXJhZ2VbTUIvc2VjXSAgIE1zZ1JhdGVbTXBwc10NCiA2NCAgICAg ICAgIDE2NjU4NTY1MCAgICAgICAgMC4wMCAgICAgICAgICAgICAgIDEwMTYuNjcgICAgICAgICAg ICAxNi42NTcxNjMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNClRoZSByZXN1 bHRzIGFyZSB0aGUgc2FtZSB3aXRoIGFuZCB3aXRob3V0IGZsb3cgY29udHJvbC4gSSBoYXZlIGZv bGxvd2VkIHRoZSBNZWxsYW5veCBEUERLIFFTRyBhbmQgZG9uZSBldmVyeXRoaW5nIGluIHRoZSBw ZXJmb3JtYW5jZSBzZWN0aW9uIChleGNlcHQgdGhlIHRoaW5ncyByZWdhcmRpbmcgaW50ZXJydXB0 cykuDQoNClNvIHRvIGFuc3dlciBPbGdhJ3MgcXVlc3Rpb25zIDotKQ0KDQoxOiBVbmZvcnR1bmF0 ZWx5IEkgY2FuJ3QuIElmIEkgdHJ5IHRoZSBGVyB1cGRhdGUgY29tcGxhaW5zIHNpbmNlIHRoZSBj YXJkcyBjYW1lIHdpdGggRGVsbCBjb25maWd1cmF0aW9uIChQU0lEOiBERUwwQTcwMDAwMDIzKS4N Cg0KMjogSW4gbXkgZmluYWwgc2V0dXAgSSBuZWVkIGp1bWJvZnJhbWVzIGJ1dCBqdXN0IGZvciB0 aGUgc2FrZSBvZiB0ZXN0aW5nIEkgdHJpZWQgY2hhbmdpbmcgQ09ORklHX1JURV9MSUJSVEVfTUxY NF9TR0VfV1JfTiB0byAxIGluIHRoZSBEUERLIGNvbmZpZy4gVGhpcyBkaWQgbm90IHJlYWxseSBj aGFuZ2UgYW55dGhpbmcsIG5laXRoZXIgaW4gbXkgaW5pdGlhbCBzZXR1cCBub3IgdGhlIG9uZSBk ZXNjcmliZWQgYWJvdmUuDQoNCjM6IEluIHRoZSBmaW5hbCBzZXR1cCwgSSBwbGFuIHRvIHNoYXJl IHRoZSBOSUNzIGJldHdlZW4gbXVsdGlwbGUgaW5kZXBlbmRlbnQgcHJvY2Vzc2VzLiBGb3IgdGhp cyByZWFzb24sIEkgd2FudGVkIHRvIHVzZSBTUi1JT1YgYW5kIHdoaXRlbGlzdCBhIHNpbmdsZSBW RiB0byBlYWNoIHByb2Nlc3MuIEFueXdheSwgZm9yIHRoZSB0ZXN0cyBhYm92ZSBJIGhhdmUgdXNl ZCB0aGUgUEZzIGZvciBzaW1wbGljaXR5Lg0KKFNpZGUgbm90ZTogSSBkaXNjb3ZlcmVkIHRoYXQg bXVsdGlwbGUgRFBESyBpbnN0YW5jZXMgY2FuIHVzZSB0aGUgc2FtZSBQQ0kgYWRkcmVzcyB3aGlj aCBtaWdodCBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIFNSLUlPVi4gSSB3b25kZXIgaG93IHRoYXQg d29ya3MgOi0pKQ0KDQpTbyBjb25jbHVzaXZlbHksIGlzbid0IHRoZSByYXdfZXRoZXJuZXRfYncg dG9vbCBzdXBwb3NlZCB0byBoYXZlIGxhcmdlciBvdXRwdXQgQlcgd2l0aCAxNDgwIGJ5dGUgcGFj a2V0cyA/DQoNCkkgaGF2ZSBhIHN5c2luZm8gZHVtcCB1c2luZyB0aGUgTWVsbGFub3ggc3lzaW5m by1zbmFwc2hvdC5weSBzY3JpcHQuIEkgY2FuIG1haWwgdGhpcyB0byBhbnlvbmUgd2hvIGhhdmUg dGhlIHRpbWUgdG8gbG9vayBmdXJ0aGVyIGludG8gaXQuDQoNClRoYW5rIHlvdSBmb3IgeW91ciBo ZWxwLCBiZXN0IHJlZ2FyZHMNCkplc3Blcg0KDQoyMDE1LTExLTAxIDExOjA1IEdNVCswMTowMCBP bGdhIFNoZXJuIDxvbGdhc0BtZWxsYW5veC5jb208bWFpbHRvOm9sZ2FzQG1lbGxhbm94LmNvbT4+ Og0KSGkgSmVzcGVyLA0KDQpTZXZlcmFsIHN1Z2dlc3Rpb25zLA0KMS4gICAgICBBbnkgY2hhbmNl IHlvdSBjYW4gaW5zdGFsbCBsYXRlc3QgRlcgZnJvbSBNZWxsYW5veCB3ZWIgc2l0ZSBvciB0aGUg b25lIHRoYXQgaXMgaW5jbHVkZWQgaW4gT0ZFRCAzLjEgdmVyc2lvbiB0aGF0IHlvdSBoYXZlIGRv d25sb2FkZWQ/ICBUaGUgbGF0ZXN0IHZlcnNpb24gaXMgIDIuMzUuNTEwMC4NCjIuICAgICAgUGxl YXNlIGNvbmZpZ3VyZSBTR0VfTlVNPTEgaW4gRFBESyBjb25maWcgZmlsZSAgaW4gY2FzZSB5b3Ug ZG9uJ3QgbmVlZCBqdW1ibyBmcmFtZXMuIFRoaXMgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNlLg0K My4gICAgICBOb3QgY2xlYXIgZnJvbSB5b3VyIGRlc2NyaXB0aW9uLCBpZiB5b3UgYXJlIHJ1bm5p bmcgRFBESyBvbiBWTSA/IEFyZSB5b3Ugc3VpbmcgU1JJT1YgPw0KNC4gICAgICBJIHN1Z2dlc3Qg eW91ICB0byBydW4gIGZpcnN0LCAgdGVzdHBtZCBhcHBsaWNhdGlvbi4gVGhlIHRyYWZmaWMgZ2Vu ZXJhdG9yIGNhbiBiZSByYXdfZXRoZXJuZXRfYncgYXBwbGljYXRpb24gdGhhdCBjb21pbmcgd2l0 aCBNTE5YX09GRUQsIGl0IGNhbiBnZW5lcmF0ZSBMMiwgSVBWNCBhbmQgVENQL1VEUCBwYWNrZXRz DQogICAgICAgIEZvciBleGFtcGxlOiAgdGFza3NldCAtYyAxMCByYXdfZXRoZXJuZXRfYncgLS1j bGllbnQgLWQgbWx4NF8wIC1pIDEgLWwgMyAtLWR1cmF0aW9uIDEwIC1zIDY0IC0tZGVzdF9tYWMg RjQ6NTI6MTQ6N0E6NTk6ODAgJg0KICAgICAgICBUaGlzIHdpbGwgc2VuZCBMMiBwYWNrZXRzIHZp YSBtbHg0XzAgTklDIHBvcnQgMSAsIHBhY2tldCBzaXplID0gNjQsIGZvciAxMCBzZWMsIGJhdGNo ID0gMyAoLWwpDQogICAgICAgIFlvdSBjYW4gc2VlIGFjY29yZGluZyB0byB0ZXN0cG1kIGNvdW50 ZXJzIHRoZSBwZXJmb3JtYW5jZS4NCg0KUGxlYXNlIGNoZWNrIE1lbGxhbm94IGNvbW11bml0eSAg cG9zdHMsIEkgdGhpbmsgdGhleSBjYW4gaGVscCB5b3UuDQpodHRwczovL2NvbW11bml0eS5tZWxs YW5veC5jb20vZG9jcy9ET0MtMTUwMg0KDQpXZSBhbHNvIGhhdmUgcGVyZm9ybWFuY2Ugc3VnZ2Vz dGlvbnMgaW4gb3VyIFFTRzoNCmh0dHA6Ly93d3cubWVsbGFub3guY29tL3JlbGF0ZWQtZG9jcy9w cm9kX3NvZnR3YXJlL01MTlhfRFBES19RdWlja19TdGFydF9HdWlkZV92MiUyMDFfMSUyMDEucGRm DQoNCkJlc3QgUmVnYXJkcywNCk9sZ2ENCg0KDQpPYmpldCA6IFtkcGRrLXVzZXJzXSBMb3cgVFgg cGVyZm9ybWFuY2Ugb24gTWVsbGFub3ggQ29ubmVjdFgtMyBOSUMgRGF0ZSA6IHNhbWVkaSAzMSBv Y3RvYnJlIDIwMTUsIDA5OjU0OjA0IERlIDogSmVzcGVyIFdyYW1iZXJnIDxqZXNwZXIud3JhbWJl cmdAZ21haWwuY29tPG1haWx0bzpqZXNwZXIud3JhbWJlcmdAZ21haWwuY29tPj4gIMOAIDogdXNl cnNAZHBkay5vcmc8bWFpbHRvOnVzZXJzQGRwZGsub3JnPg0KDQpIaSBhbGwsDQoNCg0KDQpJIGFt IGV4cGVyaWVuY2luZyBzb21lIHBlcmZvcm1hbmNlIGlzc3VlcyBpbiBhIHNvbWV3aGF0IGN1c3Rv bSBzZXR1cCB3aXRoIHR3byBNZWxsYW5veCBDb25uZWN0WC0zIE5JQ3MuIEkgcmVhbGl6ZSB0aGVz ZSBpc3N1ZXMgbWlnaHQgYmUgZHVlIHRvIHRoZSBzZXR1cCwgYnV0IEkgd2FzIGhvcGluZyBzb21l b25lIG1pZ2h0IGJlIGFibGUgdG8gcGlucG9pbnQgc29tZSBwb3NzaWJsZSBwcm9ibGVtcy9ib3R0 bGVuZWNrcy4NCg0KDQoNCg0KVGhlIHNlcnZlcjoNCg0KSSBoYXZlIGEgRGVsbCBQb3dlckVkZ2Ug UjYzMCB3aXRoIHR3byBNZWxsYW5veCBDb25uZWN0WC0zIE5JQ3MgKG9uZSBvbiBlYWNoIHNvY2tl dCkuIEkgaGF2ZSBhIG1pbmltYWwgQ2VudG9zIDcuMS4xNTAzIGluc3RhbGxlZCB3aXRoIGtlcm5l bC0zLjEwLjAtMjI5PHRlbDozLjEwLjAtMjI5Pi4NCk5vdGUgdGhhdCB0aGlzIGtlcm5lbCBpcyBy ZS1idWlsZCB3aXRoIG1vc3QgdGhpbmdzIGRpc2FibGVkIHRvIG1pbmltaXplIHNpemUsIGV0Yy4g SXQgaGFzIGluZmluaWJhbmQgZW5hYmxlZCwgaG93ZXZlciwgYW5kIG1seDRfY29yZSBhcyBhIG1v ZHVsZSAoc2luY2Ugbm90aGluZyB3b3JrcyBvdGhlcndpc2UpLiBGaW5hbGx5LCBJIGhhdmUgY29u bmVjdGVkIHRoZSB0d28gTklDcyBmcm9tIHBvcnQgMiB0byBwb3J0IDIuDQoNCg0KDQpUaGUgZmly bXdhcmU6DQoNCkkgaGF2ZSBpbnN0YWxsZWQgdGhlIGxhdGVzdCBmaXJtd2FyZSBmb3IgdGhlIE5J Q3MgZnJvbSBkZWxsIHdoaWNoIGlzIDIuMzQuNTA2MC4NCg0KDQoNClRoZSBkcml2ZXJzLCBtb2R1 bGVzLCBldGMuOg0KDQpJIGhhdmUgZG93bmxvYWRlZCB0aGUgTWVsbGFub3ggT0ZFRCBwYWNrYWdl IDMuMSBmb3IgQ2VudG9zIDcuMSBhbmQgdXNlZCBpdHMgcmVidWlsZCBmZWF0dXJlIHRvIGJ1aWxk IGl0IGFnYWluc3QgdGhlIGN1c3RvbSBrZXJuZWwuIEkgaGF2ZSBpbnN0YWxsZWQgaXQgdXNpbmcg dGhlIC0tYmFzaWMgb3B0aW9uIHNpbmNlIEkganVzdCB3YW50IGxpYmlidmVyYnMsIGxpYm1seDQs IGtlcm5lbCBtb2R1bGVzIGFuZCBvcGVuaWJkIHNlcnZpY2Ugc3R1ZmYuIFRoZSBtbHg0X2NvcmUu Y29uZiBpcyBzZXQgZm9yIGV0aGVybmV0IG9uIGFsbCBwb3J0cy4gTW9yZW92ZXIsIGl0IGlzIGNv bmZpZ3VyZWQgZm9yIGZsb3cgc3RlZXJpbmcgbW9kZSAtNyBhbmQgYSBmZXcgVkZzLiBJIGNhbiBy ZXN0YXJ0IHRoZSBvcGVuaWJkIHNlcnZpY2Ugc3VjY2Vzc2Z1bGx5IGFuZCBldmVyeXRoaW5nIHNl ZW1zIHRvIGJlIHdvcmtpbmcuIGliZGV2Mm5ldGRldiByZXBvcnRzIHRoZSBOSUNzIGFuZCBpdHMg VkZzLCBldGMuIFRoZSBvbmx5IHByb2JsZW1zIEkgaGF2ZSBlbmNvdW50ZXJlZCBhdCB0aGlzIHN0 YWdlIGlzIHRoYXQgdGhlIGxpbmtzIGRvZXNuJ3QgYWx3YXlzIHNlZW0gdG8gY29tZSB1cCB1bmxl c3MgSSB1bnBsdWcgYW5kIHJlLXBsdWcgdGhlIGNhYmxlcy4NCg0KDQoNCkRQREsgc2V0dXA6DQoN CkkgaGF2ZSBidWlsdCBEUERLIHdpdGggdGhlIG1seDQgcG1kIHVzaW5nIHRoZSAuaC8uYSBmaWxl cyBmcm9tIHRoZSBPRkVEIHBhY2thZ2UuIEkgYnVpbGQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgdmFs dWVzIGZvciBldmVyeXRoaW5nLiBSdW5uaW5nIHRoZSBzaW1wbGUgaGVsbG8gd29ybGQgZXhhbXBs ZSBJIGNhbiBzZWUgdGhhdCBldmVyeXRoaW5nIGlzIGluaXRpYWxpemVkIGNvcnJlY3RseSwgZXRj Lg0KDQoNCg0KVGVzdCBzZXR1cDoNCg0KVG8gdGVzdCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIE5J Q3MgSSBoYXZlIHRoZSBmb2xsb3dpbmcgc2V0dXAuIFR3byBwcm9jZXNzZXMsIFAxIGFuZCBQMiwg cnVubmluZyBvbiBOSUMgQS4gVHdvIG90aGVyIHByb2Nlc3NlcywgUDMgYW5kIFA0LCBydW5uaW5n IG9uIE5JQyBCLiBBbGwgcHJvY2Vzc2VzIHVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBvbiB0aGVpciBy ZXNwZWN0aXZlIE5JQ3MuIERlcGVuZGluZyBvbiB0aGUgdGVzdCwgdGhlIHByb2Nlc3NlcyBjYW4g ZWl0aGVyIHRyYW5zbWl0IG9yIHJlY2VpdmUgZGF0YS4gVG8gdHJhbnNtaXQsIEkgdXNlIGEgc2lt cGxlIERQREsgcHJvZ3JhbSB3aGljaCBnZW5lcmF0ZXMgMzIwMDAgcGFja2V0cyBhbmQgdHJhbnNt aXRzIHRoZW0gb3ZlciBhbmQgb3ZlciB1bnRpbCBpdCBoYXMgc2VudCA2NDAgbWlsbGlvbiBwYWNr ZXRzLiBTaW1pbGFybHksIEkgdXNlIGEgc2ltcGxlIERQREsgcHJvZ3JhbSB0byByZWNlaXZlIHdo aWNoIGlzIGJhc2ljYWxseSB0aGUgbGF5ZXIgMiBmb3J3YXJkaW5nIGV4YW1wbGUgd2l0aG91dCBy ZS10cmFuc21pc3Npb24uDQoNCg0KDQpGaXJzdCB0ZXN0Og0KDQpJbiBteSBmaXJzdCB0ZXN0LCBQ MSB0cmFuc21pdHMgZGF0YSB0byBQMyB3aGlsZSB0aGUgb3RoZXIgcHJvY2Vzc2VzIGFyZSBpZGxl Lg0KDQpQYWNrZXQgc2l6ZTogMTQ4MCBieXRlIHBhY2tldHMNCg0KRmxvdyBjb250cm9sOiBPbi9P ZmYsIGRvZXNu4oCZdCBtYXR0ZXIgSSBnZXQgc2FtZSByZXN1bHQuDQoNClJlc3VsdDogUDMgcmVj ZWl2ZSBhbGwgcGFja2V0cyBidXQgaXQgdGFrZXMgMTkyLjUyIHNlY29uZHMgfiAzLjMyIE1wcHMg fiA0LjlHYml0L3MNCg0KDQoNClNlY29uZCB0ZXN0Og0KDQpJIG15IHNlY29uZCB0ZXN0LCBJIGF0 dGVtcHQgdG8gaW5jcmVhc2UgdGhlIGFtb3VudCBvZiBkYXRhIHRyYW5zbWl0dGVkIG92ZXIgTklD IEEuIEFzIHN1Y2gsIFAxIHRyYW5zbWl0cyBkYXRhIHRvIFAzIHdoaWxlIFAyIHRyYW5zbWl0cyBk YXRhIHRvIFA0Lg0KDQpQYWNrZXQgc2l6ZTogMTQ4MCBieXRlIHBhY2tldHMNCg0KRmxvdyBjb250 cm9sOiBPbi9PZmYsIGRvZXNu4oCZdCBtYXR0ZXIgSSBnZXQgc2FtZSByZXN1bHQuDQoNClJlc3Vs dHM6IFAzIGFuZCBQNCByZWNlaXZlIGFsbCBwYWNrZXRzIGJ1dCBpdCB0YWtlcyAzNjQuNDAgc2Vj b25kcyB+IDEuNzUgTXBwcyB+IDIuNkdiaXQvcyBmb3IgYSBzaW5nbGUgcHJvY2VzcyB0byBnZXQg aXRzIGRhdGEgdHJhbnNtaXR0ZWQuDQoNCg0KDQoNCkRvZXMgYW55b25lIGhhcyBhbnkgaWRlYSB3 aGF0IEkgYW0gZG9pbmcgd3JvbmcgaGVyZSA/IEluIHRoZSBzZWNvbmQgdGVzdCBJIHdvdWxkIGV4 cGVjdCBQMSB0byB0cmFuc21pdCB3aXRoIHRoZSBzYW1lIHNwZWVkIGFzIGluIHRoZSBmaXJzdCB0 ZXN0LiBJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGEgYm90dGxlbmVjayBzb21ld2hlcmUsIGhvd2V2 ZXIuIEkgaGF2ZSBsZWZ0IG1vc3QgdGhpbmdzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzIGJ1dCBo YXZlIGFsc28gdHJpZWQgdHdlYWtpbmcgcXVldWUgc2l6ZXMsIG51bWJlciBvZiBxdWV1ZXMsIGlu dGVycnVwdHMsIGV0Yy4gd2l0aCBubyBsdWNrDQoNCg0KDQoNCg0KQmVzdCBSZWdhcmRzLA0KDQpK ZXNwZXINCg0K