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.196.169.86] (unknown [105.199.60.27]) by passt.top (Postfix) with ESMTP id 8FA785A0265 for ; Sat, 05 Sep 2026 18:25:45 +0200 (CEST) X-FEAS-Client-IP: 10.196.169.86 Received: by Ammars-Air.localdomain (Postfix, from userid 501) id 08149FD0F60; Sat, 5 Sep 2026 00:29:02 +0300 (EEST) From: aerosouund To: passt-dev@passt.top Subject: [PATCH 4/7] tap: Implement the pasta vhost-net from-guest path Date: Sat, 5 Sep 2026 00:28:23 +0300 Message-Id: <20260904212826.41027-5-aerosound161@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20260904212826.41027-1-aerosound161@gmail.com> References: <20260904212826.41027-1-aerosound161@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: 5DUMOMOOJETJKD2PUQVGQBQM6IE2OCRE X-Message-ID-Hash: 5DUMOMOOJETJKD2PUQVGQBQM6IE2OCRE 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 CC: eperezma@redhat.com, Ammar Yasser 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 IC0tZ2l0IGEvdGFwLmMgYi90YXAuYw0KaW5kZXggZGZhNjZjNy4uZjg0Y2IwYSAxMDA2NDQNCi0t LSBhL3RhcC5jDQorKysgYi90YXAuYw0KQEAgLTM4LDYgKzM4LDcgQEANCiAjaW5jbHVkZSA8bmV0 aW5ldC91ZHAuaD4NCiAjaW5jbHVkZSA8bmV0aW5ldC9pcF9pY21wLmg+DQogI2luY2x1ZGUgPG5l dGluZXQvaWZfZXRoZXIuaD4NCisjaW5jbHVkZSA8c3lzL2V2ZW50ZmQuaD4NCiANCiAjaW5jbHVk ZSA8bGludXgvaWZfdHVuLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ljbXB2Ni5oPg0KQEAgLTYxLDYg KzYyLDcgQEANCiAjaW5jbHVkZSAidmhvc3RfdXNlci5oIg0KICNpbmNsdWRlICJ2dV9jb21tb24u aCINCiAjaW5jbHVkZSAiZXBvbGxfY3RsLmgiDQorI2luY2x1ZGUgInZob3N0LmgiDQogDQogLyog TWF4aW11bSBhbGxvd2VkIGZyYW1lIGxlbmd0aHMgKGluY2x1ZGluZyBMMiBoZWFkZXIpICovDQog DQpAQCAtMTQ0Niw3ICsxNDQ4LDExIEBAIHN0YXRpYyB2b2lkIHRhcF9zdGFydF9jb25uZWN0aW9u KGNvbnN0IHN0cnVjdCBjdHggKmMpDQogCQlicmVhazsNCiAJfQ0KIA0KLQllcG9sbF9hZGQoYy0+ ZXBvbGxmZCwgRVBPTExJTiB8IEVQT0xMUkRIVVAsIHJlZik7DQorCS8qIFdpdGggdmhvc3QtbmV0 IHJ1bm5pbmcsIHRoZSBrZXJuZWwgcmVhZHMgdGhlIHRhcCBmZCBmb3IgdXMgYW5kDQorCSAqIG5v dGlmaWVzIHVzIG9uIHRoZSBjYWxsIGV2ZW50ZmQsIHNvIHdlIG11c3RuJ3Qgd2F0Y2ggaXQgb3Vy c2VsdmVzDQorCSAqLw0KKwlpZiAoYy0+dmhvc3QuZmQgPT0gLTEpDQorCQllcG9sbF9hZGQoYy0+ ZXBvbGxmZCwgRVBPTExJTiB8IEVQT0xMUkRIVVAsIHJlZik7DQogDQogCWlmICghdGFwX2lzX3Jl YWR5KGMpKQ0KIAkJcmV0dXJuOw0KQEAgLTE1MTQsNiArMTUyMCw4OSBAQCB2b2lkIHRhcF9saXN0 ZW5faGFuZGxlcihzdHJ1Y3QgY3R4ICpjLCB1aW50MzJfdCBldmVudHMpDQogCXRhcF9zdGFydF9j b25uZWN0aW9uKGMpOw0KIH0NCiANCisvKioNCisgKiBjb25zdW1lX29uZV9yeF9kZXNjcmlwdG9y KCkgLSBDb25zdW1lIG9uZSB1c2VkIGZyb20tZ3Vlc3QgZGVzY3JpcHRvcg0KKyAqIEBsZW46CVNl dCB0byB0aGUgbGVuZ3RoIG9mIGRhdGEgd3JpdHRlbiBieSB0aGUga2VybmVsDQorICoNCisgKiBQ b3BzIGEgc2luZ2xlIGVudHJ5IGZyb20gdGhlIHVzZWQgcmluZywgYWR2YW5jaW5nIG91ciByZWFk IGN1cnNvciBhbmQgdGhlDQorICogY291bnQgb2YgZGVzY3JpcHRvcnMgYXdhaXRpbmcgcmVmaWxs IGFubm91bmNlbWVudC4NCisgKg0KKyAqIE5PVEU6IFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUg a2VybmVsIGlzIGdvaW5nIHRvIHBvc3Qgc2luZ2xlIGRlc2NyaXB0b3JzDQorICogYWx3YXlzLCBO byBjaGFpbnMuIElmIHRoYXQgY2hhbmdlcywgd2Ugd291bGQgbmVlZCB0byBpbmNyZW1lbnQgbnVt X2ZyZWUNCisgKiBhcyB3ZSBhZHZlcnRpc2UgYmFjayB0byB0aGUga2VybmVsIHRoZSBmcmVlIGRl c2NyaXB0b3JzIGJ5IHRoZSBsZW5ndGggb2YgdGhlIGNoYWluLg0KKyAqDQorICogUmV0dXJuOiBw b2ludGVyIHRvIHRoZSBwYWNrZXQgYnVmZmVyLCBvciBOVUxMIGlmIG5vIGRhdGEgaXMgYXZhaWxh YmxlDQorICovDQorc3RhdGljIHZvaWQgKmNvbnN1bWVfb25lX3J4X2Rlc2NyaXB0b3Ioc2l6ZV90 ICpsZW4pDQorew0KKwlzdHJ1Y3QgdnJpbmdfdXNlZCAqdXNlZCA9ICZ2cmluZ191c2VkX2FsbFsw XS51c2VkOw0KKwl1aW50MTZfdCB1c2VkX2lkeCwgbGFzdF91c2VkOw0KKwl1aW50MzJfdCBpOw0K Kw0KKwl1c2VkX2lkeCA9IGxlMTZ0b2godXNlZC0+aWR4KTsNCisNCisJc21wX3JtYigpOw0KKw0K KwkvKiBJZiB0aGUga2VybmVsJ3MgdXNlZCBpbmRleCBtYXRjaGVzIG91cnMsIHdlJ3ZlIGNvbnN1 bWVkIGV2ZXJ5dGhpbmcNCisJICogaXQgaGFzIHBvc3RlZA0KKwkgKi8NCisJaWYgKHVzZWRfaWR4 ID09IHZob3N0X3ZxX3N0YXRlWzBdLmxhc3RfdXNlZF9pZHgpIHsNCisJCSpsZW4gPSAwOw0KKwkJ cmV0dXJuIE5VTEw7DQorCX0NCisNCisJbGFzdF91c2VkID0gdmhvc3RfdnFfc3RhdGVbMF0ubGFz dF91c2VkX2lkeCAlIFZIT1NUX05ERVNDUzsNCisJaSA9IGxlMzJ0b2godXNlZC0+cmluZ1tsYXN0 X3VzZWRdLmlkKTsNCisJKmxlbiA9IGxlMzJ0b2godXNlZC0+cmluZ1tsYXN0X3VzZWRdLmxlbik7 DQorDQorCWlmIChpICE9IGxhc3RfdXNlZCkNCisJCWRpZSgidmhvc3Q6IGlkICV1IGF0IHVzZWQg cG9zaXRpb24gJXUiLCBpLCBsYXN0X3VzZWQpOw0KKw0KKwkvKiBUaGUga2VybmVsIGhhcyBxdWV1 ZWQgZm9yIHVzIHNvbWV0aGluZyB3ZSBjYW5ub3QgcmVjZWl2ZSAqLw0KKwlpZiAoKmxlbiA+IFZI T1NUX0RFU0NfQllURVMpDQorCQlkaWUoInZob3N0OiBpZCAldSBsZW4gJXp1ID4gJXp1IiwgaSwg KmxlbiwNCisJCSAgICAoc2l6ZV90KVZIT1NUX0RFU0NfQllURVMpOw0KKw0KKwl2aG9zdF92cV9z dGF0ZVswXS5sYXN0X3VzZWRfaWR4Kys7DQorCXZob3N0X3ZxX3N0YXRlWzBdLm51bV9mcmVlKys7 DQorDQorCXJldHVybiBwa3RfYnVmICsgaSAqIFZIT1NUX0RFU0NfQllURVM7DQorfQ0KKw0KKy8q Kg0KKyAqIHRhcF92aG9zdF9pbnB1dCgpIC0gSGFuZGxlIGZyYW1lcyB0aGUga2VybmVsIHdyb3Rl IHRvIHRoZSBmcm9tLWd1ZXN0IHF1ZXVlDQorICogQGM6CQlFeGVjdXRpb24gY29udGV4dA0KKyAq IEByZWY6CWVwb2xsIHJlZmVyZW5jZQ0KKyAqIEBub3c6CUN1cnJlbnQgdGltZXN0YW1wDQorICov DQordm9pZCB0YXBfdmhvc3RfaW5wdXQoc3RydWN0IGN0eCAqYywgdW5pb24gZXBvbGxfcmVmIHJl ZiwNCisJCSAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpub3cpDQorew0KKwlzdHJ1Y3Qgdmly dGlvX25ldF9oZHJfbXJnX3J4YnVmICpoZHI7DQorCXN0cnVjdCBpb3ZfdGFpbCBkYXRhOw0KKwlz aXplX3QgbGVuOw0KKw0KKwlldmVudGZkX3JlYWQocmVmLmZkLCAoZXZlbnRmZF90W10peyAwIH0p Ow0KKw0KKwl0YXBfZmx1c2hfcG9vbHMoKTsNCisNCisJd2hpbGUgKChoZHIgPSBjb25zdW1lX29u ZV9yeF9kZXNjcmlwdG9yKCZsZW4pKSkgew0KKwkJLyogYSB2YWxpZCByZWNlaXZlIGlzIG9uZSB3 aGVyZSB0aGVyZSBpcyBhIHZpcnRpbyBuZXQgaGVhZGVyIGZvbGxvd2VkIGJ5IGF0bGVhc3Qgc2l6 ZW9mKHN0cnVjdCBldGhoZHIpIGJ5dGVzICovDQorCQlpZiAobGVuIDwgKHNpemVvZigqaGRyKSAr IHNpemVvZihzdHJ1Y3QgZXRoaGRyKSkpIHsNCisJCQl3YXJuKCJ2aG9zdDogaW52YWxpZCBsZW4g JWx1IiwgbGVuKTsNCisJCQljb250aW51ZTsNCisJCX0NCisNCisJCS8qIFNraXAgb3ZlciB0aGUg dm5ldCBoZWFkZXIsIGFkZCB0aGUgcGFja2V0IHdpdGhvdXQgaXQgKi8NCisJCWRhdGEgPSBJT1Zf VEFJTF9GUk9NX0JVRigodm9pZCAqKShoZHIgKyAxKSwNCisJCQkJCSBsZW4gLSBzaXplb2YoKmhk ciksIDApOw0KKwkJdGFwX2FkZF9wYWNrZXQoYywgJmRhdGEsIG5vdyk7DQorCX0NCisNCisJdGFw X2hhbmRsZXIoYywgbm93KTsNCisJdmhvc3RfcnhfZGVzY3JpcHRvcl9oYW5kb2ZmKGMpOw0KK30N CisNCiAvKioNCiAgKiB0YXBfbnNfdHVuKCkgLSBHZXQgdHVudGFwIGZkIGluIG5hbWVzcGFjZQ0K ICAqIEBjOgkJRXhlY3V0aW9uIGNvbnRleHQNCkBAIC0xNTU1LDEyICsxNjQ0LDMzIEBAIHN0YXRp YyBpbnQgdGFwX25zX3R1bih2b2lkICphcmcpDQogICovDQogc3RhdGljIHZvaWQgdGFwX3NvY2tf dHVuX2luaXQoc3RydWN0IGN0eCAqYykNCiB7DQorCWludCBpOw0KKw0KIAlpZiAoIWMtPnNwbGlj ZV9vbmx5KSB7DQogCQlOU19DQUxMKHRhcF9uc190dW4sIGMpOw0KIAkJaWYgKGMtPmZkX3RhcCA9 PSAtMSkNCiAJCQlkaWUoIkZhaWxlZCB0byBzZXQgdXAgdGFwIGRldmljZSBpbiBuYW1lc3BhY2Ui KTsNCiAJfQ0KIA0KKwkvKiBOb3RoaW5nIGVsc2UgaGVyZSBydW5zIGlmIHRoaXMgZmFpbHM6IGMt PnZob3N0LmZkIHN0YXlzIC0xIGFuZCB3ZQ0KKwkgKiBjYXJyeSBvbiByZWFkaW5nIHRoZSB0YXAg ZmQgb3Vyc2VsdmVzLCB1bmxlc3MgYWNjZWxlcmF0aW9uIHdhcw0KKwkgKiBleHBsaWNpdGx5IGFz a2VkIGZvcg0KKwkgKi8NCisJaWYgKGMtPnZob3N0Lm1vZGUgIT0gVkhPU1RfTU9ERV9PRkYgJiYg dmhvc3Rfc2V0dXBfbmV0KGMpIDwgMCAmJg0KKwkgICAgYy0+dmhvc3QubW9kZSA9PSBWSE9TVF9N T0RFX09OKQ0KKwkJZGllKCJ2aG9zdC1uZXQgaXMgbm90IGF2YWlsYWJsZSIpOw0KKw0KKwlpZiAo Yy0+dmhvc3QuZmQgIT0gLTEpIHsNCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGMtPnZo b3N0LnZxKTsgaSsrKQ0KKwkJCXZob3N0X3NldHVwX2V2ZW50ZmRzKGMsIGkpOw0KKw0KKwkJaWYg KHZob3N0X3NldHVwX21lbW9yeV90YWJsZShjKSA8IDApDQorCQkJZGllX3BlcnJvcigiVkhPU1Rf U0VUX01FTV9UQUJMRSBpb2N0bCBmYWlsZWQiKTsNCisNCisJCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGMtPnZob3N0LnZxKTsgaSsrKQ0KKwkJCXZob3N0X3NldF92cmluZyhjLCBpLCBjLT5m ZF90YXApOw0KKwl9DQorDQogCXBhc3RhX25zX2NvbmYoYyk7DQogDQogCWlmICghYy0+c3BsaWNl X29ubHkpDQpkaWZmIC0tZ2l0IGEvdGFwLmggYi90YXAuaA0KaW5kZXggY2UxZWZhOC4uYjBkNzBm OCAxMDA2NDQNCi0tLSBhL3RhcC5oDQorKysgYi90YXAuaA0KQEAgLTQ4LDYgKzQ4LDggQEAgc3Rh dGljIGlubGluZSB2b2lkIHRhcF9oZHJfdXBkYXRlKHN0cnVjdCB0YXBfaGRyICp0aGRyLCBzaXpl X3QgbDJsZW4pDQogCXRoZHItPnZuZXRfbGVuID0gaHRvbmwobDJsZW4pOw0KIH0NCiANCit2b2lk IHRhcF92aG9zdF9pbnB1dChzdHJ1Y3QgY3R4ICpjLCB1bmlvbiBlcG9sbF9yZWYgcmVmLA0KKwkJ ICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKm5vdyk7DQogdW5zaWduZWQgbG9uZyB0YXBfbDJf bWF4X2xlbihjb25zdCBzdHJ1Y3QgY3R4ICpjKTsNCiB2b2lkICp0YXBfcHVzaF9sMmgoY29uc3Qg c3RydWN0IGN0eCAqYywgdm9pZCAqYnVmLA0KIAkJICAgY29uc3Qgdm9pZCAqc3JjX21hYywgdWlu dDE2X3QgcHJvdG8pOw0KLS0gDQoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpDQoNCg==