From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 96BD9E98E0A for ; Mon, 23 Feb 2026 08:43:03 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 634BF4025E; Mon, 23 Feb 2026 09:43:02 +0100 (CET) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 5B6CE400EF for ; Mon, 23 Feb 2026 09:42:59 +0100 (CET) Received: from mail.maildlp.com (unknown [172.18.224.83]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4fKDqw5s4WzHnGdq for ; Mon, 23 Feb 2026 16:42:20 +0800 (CST) Received: from dubpeml100002.china.huawei.com (unknown [7.214.144.156]) by mail.maildlp.com (Postfix) with ESMTPS id 6A11840572 for ; Mon, 23 Feb 2026 16:42:58 +0800 (CST) Received: from dubpeml500001.china.huawei.com (7.214.147.241) by dubpeml100002.china.huawei.com (7.214.144.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.36; Mon, 23 Feb 2026 08:42:58 +0000 Received: from dubpeml500001.china.huawei.com ([7.214.147.241]) by dubpeml500001.china.huawei.com ([7.214.147.241]) with mapi id 15.02.1544.011; Mon, 23 Feb 2026 08:42:58 +0000 From: Konstantin Ananyev To: Harsh raj Singh , "dev@dpdk.org" Subject: RE: [PATCH v2] examples/l2fwd_acl: add ACL-based L2 forwarding example Thread-Topic: [PATCH v2] examples/l2fwd_acl: add ACL-based L2 forwarding example Thread-Index: AQHcpJoy6v8gNuKQHku1Udn2C3f3frWP9o0g Date: Mon, 23 Feb 2026 08:42:57 +0000 Message-ID: <8dd2059525774ff0b4af2258caa64891@huawei.com> References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.45.150.25] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQo+IFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgdXNhZ2Ugb2YgdGhlIERQREsgQUNMIGxpYnJh cnkNCj4gdG8gY2xhc3NpZnkgcGFja2V0cyBiYXNlZCBvbjoNCj4gDQo+ICAgLSBwcm90b2NvbA0K PiAgIC0gc291cmNlIElQdjQNCj4gICAtIGRlc3RpbmF0aW9uIElQdjQNCj4gICAtIHNvdXJjZSBw b3J0DQo+ICAgLSBkZXN0aW5hdGlvbiBwb3J0DQo+IA0KPiBQYWNrZXRzIG1hdGNoaW5nIEFDTCBy dWxlcyBhcmUgZm9yd2FyZGVkLA0KPiBvdGhlcnMgYXJlIGRyb3BwZWQuDQo+IA0KPiBUaGUgZXhh bXBsZSBwcm92aWRlcyBhIG1pbmltYWwgcmVmZXJlbmNlDQo+IGZvciBkZXZlbG9wZXJzIHdhbnRp bmcgdG8gaW50ZWdyYXRlIEFDTA0KPiBjbGFzc2lmaWNhdGlvbiBpbnRvIHBhY2tldCBmb3J3YXJk aW5nIHBhdGhzLg0KDQpDYW4geW91IHByb2JhYmx5IGV4cGxhaW4gd2h5IHlvdSB0aGluayB0aGF0 DQpsM2Z3ZCBpbiBhY2wgbW9kZSBpcyBub3QgZW5vdWdoIGFuZCBleHRyYSBvbmUgaXMgbmVlZGVk Pw0KDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBIYXJzaCBSYWogU2luZ2ggPGhhcnNocmFqMjE1QGdt YWlsLmNvbT4NCj4gDQo+IEZyb20gMjc0MjMyMTNjZGUwNTk0MjQzYjk2MTE0ZDY3YWRlNmY1MWNk Zjc2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogSGFyc2ggUmFqIFNpbmdoIDxo YXJzaHJhajIxNUBnbWFpbC5jb20+DQo+IERhdGU6IFRodSwgMTkgRmViIDIwMjYgMTQ6MTY6MTYg KzA1MzANCj4gU3ViamVjdDogW1BBVENIXSBleGFtcGxlcy9sMmZ3ZF9hY2w6IGFkZCBBQ0wtYmFz ZWQgTDIgZm9yd2FyZGluZyBleGFtcGxlDQo+IA0KPiBUaGlzIGV4YW1wbGUgZGVtb25zdHJhdGVz IHVzYWdlIG9mIHRoZSBEUERLIEFDTCBsaWJyYXJ5DQo+IHRvIGNsYXNzaWZ5IHBhY2tldHMgYmFz ZWQgb246DQo+IA0KPiAgIC0gcHJvdG9jb2wNCj4gICAtIHNvdXJjZSBJUHY0DQo+ICAgLSBkZXN0 aW5hdGlvbiBJUHY0DQo+ICAgLSBzb3VyY2UgcG9ydA0KPiAgIC0gZGVzdGluYXRpb24gcG9ydA0K PiANCj4gUGFja2V0cyBtYXRjaGluZyBBQ0wgcnVsZXMgYXJlIGZvcndhcmRlZCwNCj4gb3RoZXJz IGFyZSBkcm9wcGVkLg0KPiANCj4gVGhlIGV4YW1wbGUgcHJvdmlkZXMgYSBtaW5pbWFsIHJlZmVy ZW5jZQ0KPiBmb3IgZGV2ZWxvcGVycyB3YW50aW5nIHRvIGludGVncmF0ZSBBQ0wNCj4gY2xhc3Np ZmljYXRpb24gaW50byBwYWNrZXQgZm9yd2FyZGluZyBwYXRocy4NCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IEhhcnNoIFJhaiBTaW5naCA8aGFyc2hyYWoyMTVAZ21haWwuY29tPg0KPiAtLS0NCj4gIGV4 YW1wbGVzL2wyZndkX2FjbC9SRUFETUUubWQgICB8ICAxOCArKysNCj4gIGV4YW1wbGVzL2wyZndk X2FjbC9tYWluLmMgICAgICB8IDI0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN Cj4gIGV4YW1wbGVzL2wyZndkX2FjbC9tZXNvbi5idWlsZCB8ICAgMyArDQo+ICBleGFtcGxlcy9t ZXNvbi5idWlsZCAgICAgICAgICAgfCAgIDEgKw0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNjkgaW5z ZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4YW1wbGVzL2wyZndkX2FjbC9SRUFE TUUubWQNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBleGFtcGxlcy9sMmZ3ZF9hY2wvbWFpbi5jDQo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZXhhbXBsZXMvbDJmd2RfYWNsL21lc29uLmJ1aWxkDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbDJmd2RfYWNsL1JFQURNRS5tZCBiL2V4YW1wbGVzL2wy ZndkX2FjbC9SRUFETUUubWQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAw MDAwMC4uNWI1NDk0ZTI5Nw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2V4YW1wbGVzL2wyZndk X2FjbC9SRUFETUUubWQNCj4gQEAgLTAsMCArMSwxOCBAQA0KPiArTDIgRm9yd2FyZGluZyB3aXRo IEFDTCBFeGFtcGxlDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gKw0KPiAr VGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyB1c2Ugb2YgdGhlIERQREsgQUNMIGxpYnJhcnkNCj4g K3RvIGNsYXNzaWZ5IHBhY2tldHMgYmFzZWQgb246DQo+ICsNCj4gKy0gcHJvdG9jb2wNCj4gKy0g c291cmNlIElQdjQNCj4gKy0gZGVzdGluYXRpb24gSVB2NA0KPiArLSBzb3VyY2UgcG9ydA0KPiAr LSBkZXN0aW5hdGlvbiBwb3J0DQo+ICsNCj4gK1BhY2tldHMgbWF0Y2hpbmcgQUNMIHJ1bGVzIGFy ZSBmb3J3YXJkZWQsDQo+ICtvdGhlcnMgYXJlIGRyb3BwZWQuDQo+ICsNCj4gK1J1bjoNCj4gKw0K PiArLi9kcGRrLWwyZndkLWFjbCAtbCAwLTIgLW4gNCAtLSAtcCAweDENCj4gZGlmZiAtLWdpdCBh L2V4YW1wbGVzL2wyZndkX2FjbC9tYWluLmMgYi9leGFtcGxlcy9sMmZ3ZF9hY2wvbWFpbi5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjZlMDUxNDViMzMNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9leGFtcGxlcy9sMmZ3ZF9hY2wvbWFpbi5jDQo+IEBAIC0w LDAgKzEsMjQ3IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl DQo+ICsgKiBsMmZ3ZF9hY2wgZXhhbXBsZTogZGVtb25zdHJhdGVzIHVzZSBvZiBEUERLIEFDTCBs aWJyYXJ5DQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4NCj4gKyNpbmNsdWRl IDxzaWduYWwuaD4NCj4gKyNpbmNsdWRlIDxnZXRvcHQuaD4NCj4gKyNpbmNsdWRlIDxzdGRsaWIu aD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9hY2wuaD4NCj4gKyNpbmNsdWRlIDxydGVfZWFsLmg+ DQo+ICsjaW5jbHVkZSA8cnRlX2V0aGRldi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9ldGhlci5oPg0K PiArI2luY2x1ZGUgPHJ0ZV9pcC5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ICsjaW5j bHVkZSA8cnRlX3RjcC5oPg0KPiArI2luY2x1ZGUgPHJ0ZV91ZHAuaD4NCj4gKyNpbmNsdWRlIDxy dGVfbG9nLmg+DQo+ICsNCj4gKyNkZWZpbmUgTlVNX0ZJRUxEUyA1DQo+ICsjZGVmaW5lIE1BWF9S VUxFUyAgMzINCj4gKyNkZWZpbmUgTkJfTUJVRiAgICA4MTkyDQo+ICsjZGVmaW5lIEJVUlNUICAg ICAgMzINCj4gKw0KPiArLyogLS0tLSBDb3JyZWN0IERQREsgbG9nZ2luZyBzdHlsZSAtLS0tICov DQo+ICsjZGVmaW5lIFJURV9MT0dUWVBFX0wyRldEX0FDTCBSVEVfTE9HVFlQRV9VU0VSMQ0KPiAr I2RlZmluZSBMT0dUWVBFX0wyRldEX0FDTCBSVEVfTE9HVFlQRV9MMkZXRF9BQ0wNCj4gKw0KPiAr UlRFX0FDTF9SVUxFX0RFRihhY2xfcnVsZSwgTlVNX0ZJRUxEUyk7DQo+ICsNCj4gK3N0cnVjdCBw a3Rfa2V5IHsNCj4gKyAgICB1aW50OF90ICBwcm90bzsNCj4gKyAgICB1aW50MzJfdCBzcmNfaXA7 DQo+ICsgICAgdWludDMyX3QgZHN0X2lwOw0KPiArICAgIHVpbnQxNl90IHNyY19wb3J0Ow0KPiAr ICAgIHVpbnQxNl90IGRzdF9wb3J0Ow0KPiArfTsNCj4gKw0KPiArZW51bSB7DQo+ICsgICAgUFJP VE9fRklFTEQsDQo+ICsgICAgU1JDX0ZJRUxELA0KPiArICAgIERTVF9GSUVMRCwNCj4gKyAgICBT UE9SVF9GSUVMRCwNCj4gKyAgICBEUE9SVF9GSUVMRA0KPiArfTsNCj4gKw0KPiArc3RhdGljIHZv bGF0aWxlIGJvb2wgZm9yY2VfcXVpdDsNCj4gK3N0YXRpYyB1aW50MzJfdCBwb3J0bWFzayA9IDB4 MTsNCj4gKw0KPiArc3RhdGljIHN0cnVjdCBydGVfYWNsX2ZpZWxkX2RlZiBmaWVsZF9kZWZzW05V TV9GSUVMRFNdID0gew0KPiArICAgIHsgUlRFX0FDTF9GSUVMRF9UWVBFX0JJVE1BU0ssIHNpemVv Zih1aW50OF90KSwgIFBST1RPX0ZJRUxELCAwLA0KPiBvZmZzZXRvZihzdHJ1Y3QgcGt0X2tleSwg cHJvdG8pIH0sDQo+ICsgICAgeyBSVEVfQUNMX0ZJRUxEX1RZUEVfTUFTSywgICAgc2l6ZW9mKHVp bnQzMl90KSwgU1JDX0ZJRUxELCAgIDEsDQo+IG9mZnNldG9mKHN0cnVjdCBwa3Rfa2V5LCBzcmNf aXApIH0sDQo+ICsgICAgeyBSVEVfQUNMX0ZJRUxEX1RZUEVfTUFTSywgICAgc2l6ZW9mKHVpbnQz Ml90KSwgRFNUX0ZJRUxELCAgIDIsDQo+IG9mZnNldG9mKHN0cnVjdCBwa3Rfa2V5LCBkc3RfaXAp IH0sDQo+ICsgICAgeyBSVEVfQUNMX0ZJRUxEX1RZUEVfUkFOR0UsICAgc2l6ZW9mKHVpbnQxNl90 KSwgU1BPUlRfRklFTEQsIDMsDQo+IG9mZnNldG9mKHN0cnVjdCBwa3Rfa2V5LCBzcmNfcG9ydCkg fSwNCj4gKyAgICB7IFJURV9BQ0xfRklFTERfVFlQRV9SQU5HRSwgICBzaXplb2YodWludDE2X3Qp LCBEUE9SVF9GSUVMRCwgMywNCj4gb2Zmc2V0b2Yoc3RydWN0IHBrdF9rZXksIGRzdF9wb3J0KSB9 LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3NpZ25hbF9oYW5kbGVyKGludCBzaWcp DQo+ICt7DQo+ICsgICAgaWYgKHNpZyA9PSBTSUdJTlQgfHwgc2lnID09IFNJR1RFUk0pDQo+ICsg ICAgICAgIGZvcmNlX3F1aXQgPSB0cnVlOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtw YXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gK3sNCj4gKyAgICBpbnQgb3B0Ow0K PiArICAgIHdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJwOiIpKSAhPSAtMSkgew0K PiArICAgICAgICBzd2l0Y2ggKG9wdCkgew0KPiArICAgICAgICBjYXNlICdwJzoNCj4gKyAgICAg ICAgICAgIHBvcnRtYXNrID0gc3RydG91bChvcHRhcmcsIE5VTEwsIDE2KTsNCj4gKyAgICAgICAg ICAgIGJyZWFrOw0KPiArICAgICAgICBkZWZhdWx0Og0KPiArICAgICAgICAgICAgcmV0dXJuIC0x Ow0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ ICsvKiAtLS0tLS0tLS0tLS0tLS0tIEFDTCBJTklUSUFMSVpBVElPTiAtLS0tLS0tLS0tLS0tLS0t ICovDQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2FjbF9jdHggKg0KPiAraW5pdF9hY2wodm9p ZCkNCj4gK3sNCj4gKyAgICBzdHJ1Y3QgcnRlX2FjbF9wYXJhbSBwcm0gPSB7DQo+ICsgICAgICAg IC5uYW1lID0gImFjbF9jdHgiLA0KPiArICAgICAgICAuc29ja2V0X2lkID0gcnRlX3NvY2tldF9p ZCgpLA0KPiArICAgICAgICAucnVsZV9zaXplID0gUlRFX0FDTF9SVUxFX1NaKE5VTV9GSUVMRFMp LA0KPiArICAgICAgICAubWF4X3J1bGVfbnVtID0gTUFYX1JVTEVTDQo+ICsgICAgfTsNCj4gKw0K PiArICAgIHN0cnVjdCBydGVfYWNsX2N0eCAqY3R4ID0gcnRlX2FjbF9jcmVhdGUoJnBybSk7DQo+ ICsgICAgaWYgKCFjdHgpDQo+ICsgICAgICAgIHJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwgIkFDTCBj cmVhdGUgZmFpbGVkXG4iKTsNCj4gKw0KPiArICAgIHN0cnVjdCBhY2xfcnVsZSBydWxlOw0KPiAr ICAgIG1lbXNldCgmcnVsZSwgMCwgc2l6ZW9mKHJ1bGUpKTsNCj4gKw0KPiArICAgIHJ1bGUuZGF0 YS5wcmlvcml0eSA9IDEwOw0KPiArICAgIHJ1bGUuZGF0YS5jYXRlZ29yeV9tYXNrID0gMTsNCj4g KyAgICBydWxlLmRhdGEudXNlcmRhdGEgPSAxOw0KPiArDQo+ICsgICAgcnVsZS5maWVsZFtQUk9U T19GSUVMRF0udmFsdWUudTggPSBJUFBST1RPX1RDUDsNCj4gKyAgICBydWxlLmZpZWxkW1BST1RP X0ZJRUxEXS5tYXNrX3JhbmdlLnU4ID0gMHhGRjsNCj4gKw0KPiArICAgIHJ1bGUuZmllbGRbU1JD X0ZJRUxEXS52YWx1ZS51MzIgPQ0KPiArICAgICAgICBydGVfYmVfdG9fY3B1XzMyKFJURV9JUFY0 KDE3MiwxNywxNjYsMjAwKSk7DQo+ICsgICAgcnVsZS5maWVsZFtTUkNfRklFTERdLm1hc2tfcmFu Z2UudTMyID0gMzI7DQo+ICsNCj4gKyAgICBydWxlLmZpZWxkW0RTVF9GSUVMRF0udmFsdWUudTMy ID0gMDsNCj4gKyAgICBydWxlLmZpZWxkW0RTVF9GSUVMRF0ubWFza19yYW5nZS51MzIgPSAwOw0K PiArDQo+ICsgICAgcnVsZS5maWVsZFtTUE9SVF9GSUVMRF0udmFsdWUudTE2ID0gMDsNCj4gKyAg ICBydWxlLmZpZWxkW1NQT1JUX0ZJRUxEXS5tYXNrX3JhbmdlLnUxNiA9IDY1NTM1Ow0KPiArDQo+ ICsgICAgcnVsZS5maWVsZFtEUE9SVF9GSUVMRF0udmFsdWUudTE2ID0gMDsNCj4gKyAgICBydWxl LmZpZWxkW0RQT1JUX0ZJRUxEXS5tYXNrX3JhbmdlLnUxNiA9IDY1NTM1Ow0KPiArDQo+ICsgICAg aWYgKHJ0ZV9hY2xfYWRkX3J1bGVzKGN0eCwgKHN0cnVjdCBydGVfYWNsX3J1bGUgKikmcnVsZSwg MSkgPCAwKQ0KPiArICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJBQ0wgcnVsZSBhZGQg ZmFpbGVkXG4iKTsNCj4gKw0KPiArICAgIHN0cnVjdCBydGVfYWNsX2NvbmZpZyBjZmc7DQo+ICsg ICAgbWVtc2V0KCZjZmcsIDAsIHNpemVvZihjZmcpKTsNCj4gKyAgICBjZmcubnVtX2NhdGVnb3Jp ZXMgPSAxOw0KPiArICAgIGNmZy5udW1fZmllbGRzID0gTlVNX0ZJRUxEUzsNCj4gKyAgICBtZW1j cHkoY2ZnLmRlZnMsIGZpZWxkX2RlZnMsIHNpemVvZihmaWVsZF9kZWZzKSk7DQo+ICsNCj4gKyAg ICBpZiAocnRlX2FjbF9idWlsZChjdHgsICZjZmcpICE9IDApDQo+ICsgICAgICAgIHJ0ZV9leGl0 KEVYSVRfRkFJTFVSRSwgIkFDTCBidWlsZCBmYWlsZWRcbiIpOw0KPiArDQo+ICsgICAgUlRFX0xP RyhJTkZPLCBMMkZXRF9BQ0wsICJBQ0wgcmVhZHlcbiIpOw0KPiArICAgIHJldHVybiBjdHg7DQo+ ICt9DQo+ICsNCj4gKy8qIC0tLS0tLS0tLS0tLS0tLS0gTUFJTiAtLS0tLS0tLS0tLS0tLS0tICov DQo+ICsNCj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gK3sNCj4gKyAgICBm b3JjZV9xdWl0ID0gZmFsc2U7DQo+ICsgICAgc2lnbmFsKFNJR0lOVCwgc2lnbmFsX2hhbmRsZXIp Ow0KPiArICAgIHNpZ25hbChTSUdURVJNLCBzaWduYWxfaGFuZGxlcik7DQo+ICsNCj4gKyAgICBp bnQgcmV0ID0gcnRlX2VhbF9pbml0KGFyZ2MsIGFyZ3YpOw0KPiArICAgIGlmIChyZXQgPCAwKQ0K PiArICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJFQUwgaW5pdCBmYWlsZWRcbiIpOw0K PiArDQo+ICsgICAgYXJnYyAtPSByZXQ7DQo+ICsgICAgYXJndiArPSByZXQ7DQo+ICsNCj4gKyAg ICBpZiAocGFyc2VfYXJncyhhcmdjLCBhcmd2KSA8IDApDQo+ICsgICAgICAgIHJ0ZV9leGl0KEVY SVRfRkFJTFVSRSwgIkludmFsaWQgYXJndW1lbnRzXG4iKTsNCj4gKw0KPiArICAgIHN0cnVjdCBy dGVfYWNsX2N0eCAqYWNsX2N0eCA9IGluaXRfYWNsKCk7DQo+ICsNCj4gKyAgICBzdHJ1Y3QgcnRl X21lbXBvb2wgKm1wID0gcnRlX3BrdG1idWZfcG9vbF9jcmVhdGUoDQo+ICsgICAgICAgICJtYnVm X3Bvb2wiLCBOQl9NQlVGLCAyNTYsIDAsDQo+ICsgICAgICAgIFJURV9NQlVGX0RFRkFVTFRfQlVG X1NJWkUsIHJ0ZV9zb2NrZXRfaWQoKSk7DQo+ICsNCj4gKyAgICBpZiAoIW1wKQ0KPiArICAgICAg ICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJtZW1wb29sIGZhaWxlZFxuIik7DQo+ICsNCj4gKyAg ICB1aW50MTZfdCBwb3J0X2lkOw0KPiArICAgIFJURV9FVEhfRk9SRUFDSF9ERVYocG9ydF9pZCkg ew0KPiArDQo+ICsgICAgICAgIGlmICghKHBvcnRtYXNrICYgKDEgPDwgcG9ydF9pZCkpKQ0KPiAr ICAgICAgICAgICAgY29udGludWU7DQo+ICsNCj4gKyAgICAgICAgc3RydWN0IHJ0ZV9ldGhfY29u ZiBjb25mID0gezB9Ow0KPiArDQo+ICsgICAgICAgIGlmIChydGVfZXRoX2Rldl9jb25maWd1cmUo cG9ydF9pZCwgMSwgMSwgJmNvbmYpIDwgMCkNCj4gKyAgICAgICAgICAgIHJ0ZV9leGl0KEVYSVRf RkFJTFVSRSwgInBvcnQgY29uZmlndXJlIGZhaWxlZFxuIik7DQo+ICsNCj4gKyAgICAgICAgaWYg KHJ0ZV9ldGhfcnhfcXVldWVfc2V0dXAocG9ydF9pZCwgMCwgMTAyNCwNCj4gKyAgICAgICAgICAg IHJ0ZV9ldGhfZGV2X3NvY2tldF9pZChwb3J0X2lkKSwgTlVMTCwgbXApIDwgMCkNCj4gKyAgICAg ICAgICAgIHJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwgInJ4IHNldHVwIGZhaWxlZFxuIik7DQo+ICsN Cj4gKyAgICAgICAgaWYgKHJ0ZV9ldGhfdHhfcXVldWVfc2V0dXAocG9ydF9pZCwgMCwgMTAyNCwN Cj4gKyAgICAgICAgICAgIHJ0ZV9ldGhfZGV2X3NvY2tldF9pZChwb3J0X2lkKSwgTlVMTCkgPCAw KQ0KPiArICAgICAgICAgICAgcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAidHggc2V0dXAgZmFpbGVk XG4iKTsNCj4gKw0KPiArICAgICAgICBpZiAocnRlX2V0aF9kZXZfc3RhcnQocG9ydF9pZCkgPCAw KQ0KPiArICAgICAgICAgICAgcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAicG9ydCBzdGFydCBmYWls ZWRcbiIpOw0KPiArDQo+ICsgICAgICAgIHJ0ZV9ldGhfcHJvbWlzY3VvdXNfZW5hYmxlKHBvcnRf aWQpOw0KPiArDQo+ICsgICAgICAgIFJURV9MT0coSU5GTywgTDJGV0RfQUNMLCAiU3RhcnRlZCBw b3J0ICV1XG4iLCBwb3J0X2lkKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBzdHJ1Y3QgcnRlX21i dWYgKmJ1ZnNbQlVSU1RdOw0KPiArDQo+ICsgICAgd2hpbGUgKCFmb3JjZV9xdWl0KSB7DQo+ICsN Cj4gKyAgICAgICAgUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0X2lkKSB7DQo+ICsNCj4gKyAgICAg ICAgICAgIGlmICghKHBvcnRtYXNrICYgKDEgPDwgcG9ydF9pZCkpKQ0KPiArICAgICAgICAgICAg ICAgIGNvbnRpbnVlOw0KPiArDQo+ICsgICAgICAgICAgICB1aW50MTZfdCBuYiA9IHJ0ZV9ldGhf cnhfYnVyc3QocG9ydF9pZCwgMCwgYnVmcywgQlVSU1QpOw0KPiArICAgICAgICAgICAgaWYgKCFu YikgY29udGludWU7DQo+ICsNCj4gKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmI7 IGkrKykgew0KPiArDQo+ICsgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9tYnVmICptID0gYnVm c1tpXTsNCj4gKyAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2V0aGVyX2hkciAqZXRoID0NCj4g KyAgICAgICAgICAgICAgICAgICAgcnRlX3BrdG1idWZfbXRvZChtLCBzdHJ1Y3QgcnRlX2V0aGVy X2hkciAqKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIChldGgtPmV0aGVyX3R5cGUgIT0N Cj4gKyAgICAgICAgICAgICAgICAgICAgcnRlX2NwdV90b19iZV8xNihSVEVfRVRIRVJfVFlQRV9J UFY0KSkgew0KPiArICAgICAgICAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9mcmVlKG0pOw0KPiAr ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICAgICAgICAgICAgICB9DQo+ICsN Cj4gKyAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2lwdjRfaGRyICppcCA9DQo+ICsgICAgICAg ICAgICAgICAgICAgIChzdHJ1Y3QgcnRlX2lwdjRfaGRyICopKGV0aCArIDEpOw0KPiArDQo+ICsg ICAgICAgICAgICAgICAgc3RydWN0IHBrdF9rZXkga2V5ID0gezB9Ow0KPiArICAgICAgICAgICAg ICAgIGtleS5wcm90byAgPSBpcC0+bmV4dF9wcm90b19pZDsNCj4gKyAgICAgICAgICAgICAgICBr ZXkuc3JjX2lwID0gcnRlX2JlX3RvX2NwdV8zMihpcC0+c3JjX2FkZHIpOw0KPiArICAgICAgICAg ICAgICAgIGtleS5kc3RfaXAgPSBydGVfYmVfdG9fY3B1XzMyKGlwLT5kc3RfYWRkcik7DQo+ICsN Cj4gKyAgICAgICAgICAgICAgICB1aW50OF90ICpsNCA9ICh1aW50OF90ICopaXAgKyAoaXAtPmlo bCAqIDQpOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgKGtleS5wcm90byA9PSBJUFBST1RP X1RDUCkgew0KPiArICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX3RjcF9oZHIgKnRjcCA9 IChzdHJ1Y3QgcnRlX3RjcF9oZHIgKilsNDsNCj4gKyAgICAgICAgICAgICAgICAgICAga2V5LnNy Y19wb3J0ID0gcnRlX2JlX3RvX2NwdV8xNih0Y3AtPnNyY19wb3J0KTsNCj4gKyAgICAgICAgICAg ICAgICAgICAga2V5LmRzdF9wb3J0ID0gcnRlX2JlX3RvX2NwdV8xNih0Y3AtPmRzdF9wb3J0KTsN Cj4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5wcm90byA9PSBJUFBST1RPX1VEUCkg ew0KPiArICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX3VkcF9oZHIgKnVkcCA9IChzdHJ1 Y3QgcnRlX3VkcF9oZHIgKilsNDsNCj4gKyAgICAgICAgICAgICAgICAgICAga2V5LnNyY19wb3J0 ID0gcnRlX2JlX3RvX2NwdV8xNih1ZHAtPnNyY19wb3J0KTsNCj4gKyAgICAgICAgICAgICAgICAg ICAga2V5LmRzdF9wb3J0ID0gcnRlX2JlX3RvX2NwdV8xNih1ZHAtPmRzdF9wb3J0KTsNCj4gKyAg ICAgICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpk YXRhWzFdID0geyhjb25zdCB1aW50OF90ICopJmtleX07DQo+ICsgICAgICAgICAgICAgICAgdWlu dDMyX3QgcmVzWzFdOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgcnRlX2FjbF9jbGFzc2lmeShh Y2xfY3R4LCBkYXRhLCByZXMsIDEsIDEpOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgKHJl c1swXSkNCj4gKyAgICAgICAgICAgICAgICAgICAgcnRlX2V0aF90eF9idXJzdChwb3J0X2lkLCAw LCAmbSwgMSk7DQo+ICsgICAgICAgICAgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAgICAg ICBydGVfcGt0bWJ1Zl9mcmVlKG0pOw0KPiArICAgICAgICAgICAgfQ0KPiArICAgICAgICB9DQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+IGRpZmYgLS1naXQgYS9leGFtcGxlcy9s MmZ3ZF9hY2wvbWVzb24uYnVpbGQgYi9leGFtcGxlcy9sMmZ3ZF9hY2wvbWVzb24uYnVpbGQNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uMzMxZGQ1NDVlOQ0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2V4YW1wbGVzL2wyZndkX2FjbC9tZXNvbi5idWlsZA0KPiBA QCAtMCwwICsxLDMgQEANCj4gK3NvdXJjZXMgPSBmaWxlcygnbWFpbi5jJykNCj4gKw0KPiArZGVw cyArPSBbJ2FjbCcsICdldGhkZXYnLCAnbWJ1ZicsICduZXQnXQ0KPiBkaWZmIC0tZ2l0IGEvZXhh bXBsZXMvbWVzb24uYnVpbGQgYi9leGFtcGxlcy9tZXNvbi5idWlsZA0KPiBpbmRleCAyNWQ5Yzg4 NDU3Li5iY2UyOTgyMjI5IDEwMDY0NA0KPiAtLS0gYS9leGFtcGxlcy9tZXNvbi5idWlsZA0KPiAr KysgYi9leGFtcGxlcy9tZXNvbi5idWlsZA0KPiBAQCAtMjQsNiArMjQsNyBAQCBhbGxfZXhhbXBs ZXMgPSBbDQo+ICAgICAgICAgICdpcHNlYy1zZWNndycsDQo+ICAgICAgICAgICdpcHY0X211bHRp Y2FzdCcsDQo+ICAgICAgICAgICdsMmZ3ZCcsDQo+ICsgICAgICAgICdsMmZ3ZF9hY2wnLA0KPiAg ICAgICAgICAnbDJmd2QtY2F0JywNCj4gICAgICAgICAgJ2wyZndkLWNyeXB0bycsDQo+ICAgICAg ICAgICdsMmZ3ZC1ldmVudCcsDQo+IC0tDQo+IDIuNDMuMA0K