From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from [10.157.41.19] (unknown [105.199.60.18]) by passt.top (Postfix) with ESMTP id B25095A0272 for ; Fri, 16 Oct 2026 22:55:45 +0200 (CEST) X-FEAS-Client-IP: 10.157.41.19 Received: by Ammars-Air.localdomain (Postfix, from userid 501) id F401F1564EF6; Fri, 16 Oct 2026 23:49:40 +0300 (EEST) From: aerosouund To: aerosound161@gmail.com, passt-dev@passt.top Subject: [PATCH v2 4/7] tap: Implement the pasta vhost-net from-guest path Date: Fri, 16 Oct 2026 23:49:37 +0300 Message-Id: <20261016204940.33190-5-aerosound161@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20261016204940.33190-1-aerosound161@gmail.com> References: <20261016204940.33190-1-aerosound161@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: VCB3BX2I7DKDLP3DKLSOYK6WOJYPMFIQ X-Message-ID-Hash: VCB3BX2I7DKDLP3DKLSOYK6WOJYPMFIQ X-MailFrom: ammaryasser@Ammars-Air.localdomain X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: RnJvbTogQW1tYXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KDQpBZGQgdGFwX3Zo b3N0X2lucHV0KCksIGNhbGxlZCB3aGVuIHRoZSBrZXJuZWwgc2lnbmFscyBvbiBhIGNhbGwgZXZl bnRmZA0KdGhhdCBpdCBoYXMgd3JpdHRlbiBndWVzdCBmcmFtZXMgaW50byB0aGUgZnJvbS1ndWVz dCBxdWV1ZS4gSXQgY29uc3VtZXMNCmRlc2NyaXB0b3JzIHdpdGggY29uc3VtZV9vbmVfcnhfZGVz Y3JpcHRvcigpLCBza2lwcyB0aGUgdmlydGlvX25ldCBoZWFkZXINCm9uIGVhY2gsIGJ1aWxkcyBh biBpb3ZfdGFpbCBmcm9tIHdoYXQncyBsZWZ0IGFuZCBxdWV1ZXMgaXQgZm9yDQpwcm9jZXNzaW5n LCB0aGVuIHRlbGxzIHRoZSBrZXJuZWwgdGhlIGRlc2NyaXB0b3JzIGFyZSBmcmVlIHRvIHJldXNl Lg0KDQpjb25zdW1lX29uZV9yeF9kZXNjcmlwdG9yKCkgcG9wcyBvbmUgZW50cnkgZnJvbSB0aGUg dXNlZCByaW5nLCBhZHZhbmNlcw0Kb3VyIHJlYWQgY3Vyc29yIGFuZCB0aGUgY291bnQgb2YgZGVz Y3JpcHRvcnMgYXdhaXRpbmcgaGFuZG9mZiwgYW5kDQpyZXR1cm5zIGEgcG9pbnRlciB0byB0aGF0 IGRlc2NyaXB0b3IncyBkYXRhLg0KDQpCb290c3RyYXAgdmhvc3QgaW4gdGFwX3NvY2tfdHVuX2lu aXQoKS4gSWYgc2V0dXAgZmFpbHMgd2UgbGVhdmUNCmMtPnZob3N0LmZkIGF0IC0xIGFuZCBjYXJy eSBvbiB1bmFjY2VsZXJhdGVkLg0KDQpXaXRoIHZob3N0LW5ldCBydW5uaW5nIHRoZSBrZXJuZWwg cmVhZHMgdGhlIHRhcCBmZCBpdHNlbGYsIHNvIGRvbid0IGFkZA0KdGhhdCBmZCB0byBvdXIgZXBv bGwgc2V0IGF0IGFsbDogdGFwX2hhbmRsZXJfcGFzdGEoKSB3b3VsZCBvdGhlcndpc2UgYmUNCndv a2VuIGZvciBkYXRhIGl0IG11c3Qgbm90IHJlYWQuDQoNClNpZ25lZC1vZmYtYnk6IEV1Z2VuaW8g UMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogQW1tYXIgWWFzc2Vy IDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KLS0tDQogcGFzc3QuYyB8ICAgNiArKysNCiB0YXAu YyAgIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystDQogdGFwLmggICB8ICAgMiArDQogMyBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KDQpkaWZmIC0tZ2l0IGEvcGFzc3QuYyBiL3Bhc3N0LmMN CmluZGV4IDYwMDIyMzEuLjM3MmI3NDMgMTAwNjQ0DQotLS0gYS9wYXNzdC5jDQorKysgYi9wYXNz dC5jDQpAQCAtMzA1LDYgKzMwNSwxMiBAQCBzdGF0aWMgdm9pZCBwYXNzdF93b3JrZXIodm9pZCAq b3BhcXVlLCBpbnQgbmZkcywgc3RydWN0IGVwb2xsX2V2ZW50ICpldmVudHMpDQogCQljYXNlIEVQ T0xMX1RZUEVfQ09ORjoNCiAJCQljb25mX2hhbmRsZXIoYywgZXZlbnRtYXNrKTsNCiAJCQlicmVh azsNCisJCWNhc2UgRVBPTExfVFlQRV9WSE9TVF9DQUxMOg0KKwkJCXRhcF92aG9zdF9pbnB1dChj LCByZWYsICZub3cpOw0KKwkJCWJyZWFrOw0KKwkJY2FzZSBFUE9MTF9UWVBFX1ZIT1NUX0VSUk9S Og0KKwkJCWRpZSgiRXJyb3Igb24gdmhvc3Qta2VybmVsIHNvY2tldCIpOw0KKwkJCWJyZWFrOw0K IAkJZGVmYXVsdDoNCiAJCQkvKiBDYW4ndCBoYXBwZW4gKi8NCiAJCQlhc3NlcnQoMCk7DQpkaWZm IC0tZ2l0IGEvdGFwLmMgYi90YXAuYw0KaW5kZXggZGZhNjZjNy4uYTVmZGVlOCAxMDA2NDQNCi0t LSBhL3RhcC5jDQorKysgYi90YXAuYw0KQEAgLTM4LDYgKzM4LDcgQEANCiAjaW5jbHVkZSA8bmV0 aW5ldC91ZHAuaD4NCiAjaW5jbHVkZSA8bmV0aW5ldC9pcF9pY21wLmg+DQogI2luY2x1ZGUgPG5l dGluZXQvaWZfZXRoZXIuaD4NCisjaW5jbHVkZSA8c3lzL2V2ZW50ZmQuaD4NCg0KICNpbmNsdWRl IDxsaW51eC9pZl90dW4uaD4NCiAjaW5jbHVkZSA8bGludXgvaWNtcHY2Lmg+DQpAQCAtNjEsNiAr NjIsNyBAQA0KICNpbmNsdWRlICJ2aG9zdF91c2VyLmgiDQogI2luY2x1ZGUgInZ1X2NvbW1vbi5o Ig0KICNpbmNsdWRlICJlcG9sbF9jdGwuaCINCisjaW5jbHVkZSAidmhvc3QuaCINCg0KIC8qIE1h eGltdW0gYWxsb3dlZCBmcmFtZSBsZW5ndGhzIChpbmNsdWRpbmcgTDIgaGVhZGVyKSAqLw0KDQpA QCAtMTQ0Niw3ICsxNDQ4LDExIEBAIHN0YXRpYyB2b2lkIHRhcF9zdGFydF9jb25uZWN0aW9uKGNv bnN0IHN0cnVjdCBjdHggKmMpDQogCQlicmVhazsNCiAJfQ0KDQotCWVwb2xsX2FkZChjLT5lcG9s bGZkLCBFUE9MTElOIHwgRVBPTExSREhVUCwgcmVmKTsNCisJLyogV2l0aCB2aG9zdC1uZXQgcnVu bmluZywgdGhlIGtlcm5lbCByZWFkcyB0aGUgdGFwIGZkIGZvciB1cyBhbmQNCisJICogbm90aWZp ZXMgdXMgb24gdGhlIGNhbGwgZXZlbnRmZCwgc28gd2UgbXVzdG4ndCB3YXRjaCBpdCBvdXJzZWx2 ZXMNCisJICovDQorCWlmIChjLT52aG9zdC5mZCA9PSAtMSkNCisJCWVwb2xsX2FkZChjLT5lcG9s bGZkLCBFUE9MTElOIHwgRVBPTExSREhVUCwgcmVmKTsNCg0KIAlpZiAoIXRhcF9pc19yZWFkeShj KSkNCiAJCXJldHVybjsNCkBAIC0xNTE0LDYgKzE1MjAsODkgQEAgdm9pZCB0YXBfbGlzdGVuX2hh bmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3QgZXZlbnRzKQ0KIAl0YXBfc3RhcnRfY29ubmVj dGlvbihjKTsNCiB9DQoNCisvKioNCisgKiBjb25zdW1lX29uZV9yeF9kZXNjcmlwdG9yKCkgLSBD b25zdW1lIG9uZSB1c2VkIGZyb20tZ3Vlc3QgZGVzY3JpcHRvcg0KKyAqIEBsZW46CVNldCB0byB0 aGUgbGVuZ3RoIG9mIGRhdGEgd3JpdHRlbiBieSB0aGUga2VybmVsDQorICoNCisgKiBQb3BzIGEg c2luZ2xlIGVudHJ5IGZyb20gdGhlIHVzZWQgcmluZywgYWR2YW5jaW5nIG91ciByZWFkIGN1cnNv ciBhbmQgdGhlDQorICogY291bnQgb2YgZGVzY3JpcHRvcnMgYXdhaXRpbmcgcmVmaWxsIGFubm91 bmNlbWVudC4NCisgKg0KKyAqIE5PVEU6IFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUga2VybmVs IGlzIGdvaW5nIHRvIHBvc3Qgc2luZ2xlIGRlc2NyaXB0b3JzDQorICogYWx3YXlzLCBObyBjaGFp bnMuIElmIHRoYXQgY2hhbmdlcywgd2Ugd291bGQgbmVlZCB0byBpbmNyZW1lbnQgbnVtX2ZyZWUN CisgKiBhcyB3ZSBhZHZlcnRpc2UgYmFjayB0byB0aGUga2VybmVsIHRoZSBmcmVlIGRlc2NyaXB0 b3JzIGJ5IHRoZSBsZW5ndGggb2YgdGhlIGNoYWluLg0KKyAqDQorICogUmV0dXJuOiBwb2ludGVy IHRvIHRoZSBwYWNrZXQgYnVmZmVyLCBvciBOVUxMIGlmIG5vIGRhdGEgaXMgYXZhaWxhYmxlDQor ICovDQorc3RhdGljIHZvaWQgKmNvbnN1bWVfb25lX3J4X2Rlc2NyaXB0b3Ioc2l6ZV90ICpsZW4p DQorew0KKwlzdHJ1Y3QgdnJpbmdfdXNlZF9wYXN0YSAqdXNlZCA9ICZ2cmluZ191c2VkX2FsbFtW SE9TVF9BVkFJTF9RX0lEWF07DQorCXVpbnQxNl90IHVzZWRfaWR4LCBsYXN0X3VzZWQ7DQorCXVp bnQzMl90IGk7DQorDQorCXVzZWRfaWR4ID0gbGUxNnRvaCh1c2VkLT5pZHgpOw0KKw0KKwlzbXBf cm1iKCk7DQorDQorCS8qIElmIHRoZSBrZXJuZWwncyB1c2VkIGluZGV4IG1hdGNoZXMgb3Vycywg d2UndmUgY29uc3VtZWQgZXZlcnl0aGluZw0KKwkgKiBpdCBoYXMgcG9zdGVkDQorCSAqLw0KKwlp ZiAodXNlZF9pZHggPT0gdmhvc3RfdnFfc3RhdGVbVkhPU1RfQVZBSUxfUV9JRFhdLmxhc3RfdXNl ZF9pZHgpIHsNCisJCSpsZW4gPSAwOw0KKwkJcmV0dXJuIE5VTEw7DQorCX0NCisNCisJbGFzdF91 c2VkID0gdmhvc3RfdnFfc3RhdGVbVkhPU1RfQVZBSUxfUV9JRFhdLmxhc3RfdXNlZF9pZHggJSBW SE9TVF9OREVTQ1M7DQorCWkgPSBsZTMydG9oKHVzZWQtPnJpbmdbbGFzdF91c2VkXS5pZCk7DQor CSpsZW4gPSBsZTMydG9oKHVzZWQtPnJpbmdbbGFzdF91c2VkXS5sZW4pOw0KKw0KKwlpZiAoaSAh PSBsYXN0X3VzZWQpDQorCQlkaWUoInZob3N0OiBpZCAldSBhdCB1c2VkIHBvc2l0aW9uICV1Iiwg aSwgbGFzdF91c2VkKTsNCisNCisJLyogVGhlIGtlcm5lbCBoYXMgcXVldWVkIGZvciB1cyBzb21l dGhpbmcgd2UgY2Fubm90IHJlY2VpdmUgKi8NCisJaWYgKCpsZW4gPiBWSE9TVF9ERVNDX0JZVEVT KQ0KKwkJZGllKCJ2aG9zdDogaWQgJXUgbGVuICV6dSA+ICV6dSIsIGksICpsZW4sDQorCQkgICAg KHNpemVfdClWSE9TVF9ERVNDX0JZVEVTKTsNCisNCisJdmhvc3RfdnFfc3RhdGVbVkhPU1RfQVZB SUxfUV9JRFhdLmxhc3RfdXNlZF9pZHgrKzsNCisJdmhvc3RfdnFfc3RhdGVbVkhPU1RfQVZBSUxf UV9JRFhdLm51bV9mcmVlKys7DQorDQorCXJldHVybiBwa3RfYnVmICsgaSAqIFZIT1NUX0RFU0Nf QllURVM7DQorfQ0KKw0KKy8qKg0KKyAqIHRhcF92aG9zdF9pbnB1dCgpIC0gSGFuZGxlIGZyYW1l cyB0aGUga2VybmVsIHdyb3RlIHRvIHRoZSBmcm9tLWd1ZXN0IHF1ZXVlDQorICogQGM6CQlFeGVj dXRpb24gY29udGV4dA0KKyAqIEByZWY6CWVwb2xsIHJlZmVyZW5jZQ0KKyAqIEBub3c6CUN1cnJl bnQgdGltZXN0YW1wDQorICovDQordm9pZCB0YXBfdmhvc3RfaW5wdXQoc3RydWN0IGN0eCAqYywg dW5pb24gZXBvbGxfcmVmIHJlZiwNCisJCSAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpub3cp DQorew0KKwlzdHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJnX3J4YnVmICpoZHI7DQorCXN0cnVjdCBp b3ZfdGFpbCBkYXRhOw0KKwlzaXplX3QgbGVuOw0KKw0KKwlldmVudGZkX3JlYWQocmVmLmZkLCAo ZXZlbnRmZF90W10peyAwIH0pOw0KKw0KKwl0YXBfZmx1c2hfcG9vbHMoKTsNCisNCisJd2hpbGUg KChoZHIgPSBjb25zdW1lX29uZV9yeF9kZXNjcmlwdG9yKCZsZW4pKSkgew0KKwkJLyogYSB2YWxp ZCByZWNlaXZlIGlzIG9uZSB3aGVyZSB0aGVyZSBpcyBhIHZpcnRpbyBuZXQgaGVhZGVyIGZvbGxv d2VkIGJ5IGF0bGVhc3Qgc2l6ZW9mKHN0cnVjdCBldGhoZHIpIGJ5dGVzICovDQorCQlpZiAobGVu IDwgKHNpemVvZigqaGRyKSArIHNpemVvZihzdHJ1Y3QgZXRoaGRyKSkpIHsNCisJCQl3YXJuKCJ2 aG9zdDogaW52YWxpZCBsZW4gJWx1IiwgbGVuKTsNCisJCQljb250aW51ZTsNCisJCX0NCisNCisJ CS8qIFNraXAgb3ZlciB0aGUgdm5ldCBoZWFkZXIsIGFkZCB0aGUgcGFja2V0IHdpdGhvdXQgaXQg Ki8NCisJCWRhdGEgPSBJT1ZfVEFJTF9GUk9NX0JVRigodm9pZCAqKShoZHIgKyAxKSwNCisJCQkJ CSBsZW4gLSBzaXplb2YoKmhkciksIDApOw0KKwkJdGFwX2FkZF9wYWNrZXQoYywgJmRhdGEsIG5v dyk7DQorCX0NCisNCisJdGFwX2hhbmRsZXIoYywgbm93KTsNCisJdmhvc3RfcnhfZGVzY3JpcHRv cl9oYW5kb2ZmKGMpOw0KK30NCisNCiAvKioNCiAgKiB0YXBfbnNfdHVuKCkgLSBHZXQgdHVudGFw IGZkIGluIG5hbWVzcGFjZQ0KICAqIEBjOgkJRXhlY3V0aW9uIGNvbnRleHQNCkBAIC0xNTU1LDEy ICsxNjQ0LDMzIEBAIHN0YXRpYyBpbnQgdGFwX25zX3R1bih2b2lkICphcmcpDQogICovDQogc3Rh dGljIHZvaWQgdGFwX3NvY2tfdHVuX2luaXQoc3RydWN0IGN0eCAqYykNCiB7DQorCWludCBpOw0K Kw0KIAlpZiAoIWMtPnNwbGljZV9vbmx5KSB7DQogCQlOU19DQUxMKHRhcF9uc190dW4sIGMpOw0K IAkJaWYgKGMtPmZkX3RhcCA9PSAtMSkNCiAJCQlkaWUoIkZhaWxlZCB0byBzZXQgdXAgdGFwIGRl dmljZSBpbiBuYW1lc3BhY2UiKTsNCiAJfQ0KDQorCS8qIE5vdGhpbmcgZWxzZSBoZXJlIHJ1bnMg aWYgdGhpcyBmYWlsczogYy0+dmhvc3QuZmQgc3RheXMgLTEgYW5kIHdlDQorCSAqIGNhcnJ5IG9u IHJlYWRpbmcgdGhlIHRhcCBmZCBvdXJzZWx2ZXMsIHVubGVzcyBhY2NlbGVyYXRpb24gd2FzDQor CSAqIGV4cGxpY2l0bHkgYXNrZWQgZm9yDQorCSAqLw0KKwlpZiAoYy0+dmhvc3QubW9kZSAhPSBW SE9TVF9NT0RFX09GRiAmJiB2aG9zdF9zZXR1cF9uZXQoYykgPCAwICYmDQorCSAgICBjLT52aG9z dC5tb2RlID09IFZIT1NUX01PREVfT04pDQorCQlkaWUoInZob3N0LW5ldCBpcyBub3QgYXZhaWxh YmxlIik7DQorDQorCWlmIChjLT52aG9zdC5mZCAhPSAtMSkgew0KKwkJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoYy0+dmhvc3QudnEpOyBpKyspDQorCQkJdmhvc3Rfc2V0dXBfZXZlbnRmZHMo YywgaSk7DQorDQorCQlpZiAodmhvc3Rfc2V0dXBfbWVtb3J5X3RhYmxlKGMpIDwgMCkNCisJCQlk aWVfcGVycm9yKCJWSE9TVF9TRVRfTUVNX1RBQkxFIGlvY3RsIGZhaWxlZCIpOw0KKw0KKwkJZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYy0+dmhvc3QudnEpOyBpKyspDQorCQkJdmhvc3Rfc2V0 X3ZyaW5nKGMsIGksIGMtPmZkX3RhcCk7DQorCX0NCisNCiAJcGFzdGFfbnNfY29uZihjKTsNCg0K IAlpZiAoIWMtPnNwbGljZV9vbmx5KQ0KZGlmZiAtLWdpdCBhL3RhcC5oIGIvdGFwLmgNCmluZGV4 IGY4YzMwZTIuLjBmMWY3YTMgMTAwNjQ0DQotLS0gYS90YXAuaA0KKysrIGIvdGFwLmgNCkBAIC00 OCw2ICs0OCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0YXBfaGRyX3VwZGF0ZShzdHJ1Y3QgdGFw X2hkciAqdGhkciwgc2l6ZV90IGwybGVuKQ0KIAl0aGRyLT52bmV0X2xlbiA9IGh0b25sKGwybGVu KTsNCiB9DQoNCit2b2lkIHRhcF92aG9zdF9pbnB1dChzdHJ1Y3QgY3R4ICpjLCB1bmlvbiBlcG9s bF9yZWYgcmVmLA0KKwkJICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKm5vdyk7DQogdW5zaWdu ZWQgbG9uZyB0YXBfbDJfbWF4X2xlbihjb25zdCBzdHJ1Y3QgY3R4ICpjKTsNCiB2b2lkICp0YXBf cHVzaF9sMmgoY29uc3Qgc3RydWN0IGN0eCAqYywgdm9pZCAqYnVmLA0KIAkJICAgY29uc3Qgdm9p ZCAqc3JjX21hYywgdWludDE2X3QgcHJvdG8pOw0KLS0NCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkN Cg0KDQo=