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 C8E895A026E for ; Fri, 16 Oct 2026 22:56:16 +0200 (CEST) X-FEAS-Client-IP: 10.157.41.19 Received: by Ammars-Air.localdomain (Postfix, from userid 501) id F18B41564EF4; Fri, 16 Oct 2026 23:49:40 +0300 (EEST) From: aerosouund To: aerosound161@gmail.com, passt-dev@passt.top Subject: [PATCH v2 6/7] tap: Implement the pasta vhost-net to-guest path Date: Fri, 16 Oct 2026 23:49:39 +0300 Message-Id: <20261016204940.33190-7-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: IJAN3J33YSL2LAHW4RRNOQMLBEBWOC44 X-Message-ID-Hash: IJAN3J33YSL2LAHW4RRNOQMLBEBWOC44 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: RnJvbTogQW1tYXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KDQpBZGQgYSB2aG9z dCBhcmd1bWVudCB0byB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoKS4gQ2FsbGVycyBwYXNzIGl0IHRv IHNheQ0Kd2hldGhlciB0aGlzIHNlbmQgc2hvdWxkIGdvIHRocm91Z2ggdmhvc3QtbmV0LCBhbmQg d2hlbiBpdCBkb2VzIHNlbmRpbmcNCmdvZXMgdGhyb3VnaCB0YXBfc2VuZF9mcmFtZXNfdmhvc3Qo KSwgd2hpY2ggdGFrZXMgYSBkZXNjcmlwdG9yIGZyb20gdGhlDQpxdWV1ZSBzaGFyZWQgd2l0aCB0 aGUga2VybmVsIGZvciBlYWNoIGlvdiBhbmQgcG9pbnRzIGl0IGF0IHRoYXQgaW92J3MNCmJhc2Ug YWRkcmVzcywgY2hhaW5pbmcgdGhlIGJ1ZnNfcGVyX2ZyYW1lIGRlc2NyaXB0b3JzIG9mIGEgZnJh bWUNCnRvZ2V0aGVyIHNvIHRoZSBndWVzdCByZWNlaXZlcyBpdCBpbiBvbmUgZ28uDQoNCnR4X3Jl YXAoKSByZWNsYWltcyB0aGUgZGVzY3JpcHRvcnMgdGhlIGtlcm5lbCBoYXMgZmluaXNoZWQgd2l0 aCwgd2Fsa2luZw0KZWFjaCB1c2VkIGNoYWluIHRvIGl0cyBlbmQgc28gdGhhdCBldmVyeSBkZXNj cmlwdG9yIGluIGl0IGlzIGNvdW50ZWQgYXMNCmZyZWUgYWdhaW4uDQoNClNpZ25lZC1vZmYtYnk6 IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogQW1t YXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KLS0tDQogdGFwLmMgfCAxNTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0K IDEgZmlsZSBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCg0KZGlm ZiAtLWdpdCBhL3RhcC5jIGIvdGFwLmMNCmluZGV4IGZkNTAwZjEuLmJjMjcwMGYgMTAwNjQ0DQot LS0gYS90YXAuYw0KKysrIGIvdGFwLmMNCkBAIC0zNTksMTIgKzM1OSwxNTEgQEAgdm9pZCB0YXBf aWNtcDZfc2VuZChjb25zdCBzdHJ1Y3QgY3R4ICpjLA0KIAl0YXBfc2VuZF9zaW5nbGUoYywgYnVm LCBsNGxlbiArICgoY2hhciAqKWljbXA2aCAtIGJ1ZikpOw0KIH0NCg0KKy8qKg0KKyAqIHR4X3Jl YXAoKSAtIFJlY2xhaW0gdGhlIGRlc2NyaXB0b3JzIHRoZSBrZXJuZWwgaGFzIGFscmVhZHkgcHJv Y2Vzc2VkDQorICovDQorc3RhdGljIHZvaWQgdHhfcmVhcCh2b2lkKQ0KK3sNCisJc3RydWN0IHZy aW5nX3VzZWRfcGFzdGEgKnVzZWQgPSAmdnJpbmdfdXNlZF9hbGxbVkhPU1RfVVNFRF9RX0lEWF07 DQorCXVpbnQxNl90IHVzZWRfaWR4ID0gbGUxNnRvaCh1c2VkLT5pZHgpOw0KKw0KKwlzbXBfcm1i KCk7DQorDQorCS8qIGluY3JlbWVudCBsYXN0X3VzZWRfaWR4IHVudGlsIGl0IHJlYWNoZXMgdGhl IGtlcm5lbCdzIHVzZWQgaW5kZXggKi8NCisJd2hpbGUgKHZob3N0X3ZxX3N0YXRlW1ZIT1NUX1VT RURfUV9JRFhdLmxhc3RfdXNlZF9pZHggIT0gdXNlZF9pZHgpIHsNCisJCXVpbnQxNl90IGxhc3Rf dXNlZDsNCisJCXVpbnQzMl90IGRlc2NfaWQ7DQorDQorCQlsYXN0X3VzZWQgPSB2aG9zdF92cV9z dGF0ZVtWSE9TVF9VU0VEX1FfSURYXS5sYXN0X3VzZWRfaWR4ICUgVkhPU1RfTkRFU0NTOw0KKwkJ ZGVzY19pZCA9IGxlMzJ0b2godXNlZC0+cmluZ1tsYXN0X3VzZWRdLmlkKTsNCisNCisJCWZvciAo OzspIHsNCisJCQkvKiBrZWVwIGdvaW5nIHVudGlsIHdlIGZpbmQgYSBkZXNjcmlwdG9yIHdpdGhv dXQgdGhlDQorCQkJICogbmV4dCBmbGFnDQorCQkJICovDQorCQkJdmhvc3RfdnFfc3RhdGVbVkhP U1RfVVNFRF9RX0lEWF0ubnVtX2ZyZWUrKzsNCisJCQlpZiAoIShsZTE2dG9oKHZyaW5nX2Rlc2Nb VkhPU1RfVVNFRF9RX0lEWF1bZGVzY19pZF0uZmxhZ3MpICYNCisJCQkgICAgICBWUklOR19ERVND X0ZfTkVYVCkpDQorCQkJCWJyZWFrOw0KKw0KKwkJCS8qIHRoaXMgZGVzY3JpcHRvciB3YXNuJ3Qg dGhlIGxhc3QsIHNldCBkZXNjX2lkIHRvIHRoZQ0KKwkJCSAqIG5leHQgb25lIGFuZCBrZWVwIGdv aW5nDQorCQkJICovDQorCQkJZGVzY19pZCA9IGxlMzJ0b2godnJpbmdfZGVzY1tWSE9TVF9VU0VE X1FfSURYXVtkZXNjX2lkXS5uZXh0KTsNCisJCX0NCisNCisJCXZob3N0X3ZxX3N0YXRlW1ZIT1NU X1VTRURfUV9JRFhdLmxhc3RfdXNlZF9pZHgrKzsNCisJfQ0KK30NCisNCisvKioNCisgKiB0YXBf c2VuZF9mcmFtZXNfdmhvc3QoKSAtIFNlbmQgbXVsdGlwbGUgZnJhbWVzIHRvIHRoZSBwYXN0YSB0 YXANCisgKiBAYzoJCQlFeGVjdXRpb24gY29udGV4dA0KKyAqIEBpb3Y6CQlBcnJheSBvZiBidWZm ZXJzDQorICogQGJ1ZnNfcGVyX2ZyYW1lOglOdW1iZXIgb2YgYnVmZmVycyAoaW92ZWMgZW50cmll cykgcGVyIGZyYW1lDQorICogQG5mcmFtZXM6CQlOdW1iZXIgb2YgZnJhbWVzIHRvIHNlbmQNCisg Kg0KKyAqIEBpb3YgbXVzdCBoYXZlIHRvdGFsIGxlbmd0aCBAYnVmc19wZXJfZnJhbWUgKiBAbmZy YW1lcywgd2l0aCBlYWNoIHNldCBvZg0KKyAqIEBidWZzX3Blcl9mcmFtZSBjb250aWd1b3VzIGJ1 ZmZlcnMgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGZyYW1lLg0KKyAqDQorICogUmV0dXJuOiBudW1i ZXIgb2YgZnJhbWVzIHN1Y2Nlc3NmdWxseSBzZW50DQorICovDQorc3RhdGljIHNpemVfdCB0YXBf c2VuZF9mcmFtZXNfdmhvc3QoY29uc3Qgc3RydWN0IGN0eCAqYywNCisJCQkJICAgIGNvbnN0IHN0 cnVjdCBpb3ZlYyAqaW92LA0KKwkJCQkgICAgc2l6ZV90IGJ1ZnNfcGVyX2ZyYW1lLCBzaXplX3Qg bmZyYW1lcykNCit7DQorCXN0cnVjdCB2cmluZ19hdmFpbF9wYXN0YSAqYXZhaWwgPQ0KKwkJJnZy aW5nX2F2YWlsX2FsbFtWSE9TVF9VU0VEX1FfSURYXTsNCisJc2l6ZV90IHByb2Nlc3NlZF9mcmFt ZXMgPSAwOw0KKwlzaXplX3QgaTsNCisNCisJLyogcmVjbGFpbSBkZXNjcmlwdG9ycyBpZiB3ZSBk b24ndCBoYXZlIGVub3VnaCBhdmFpbGFibGUgYnVmZmVycyB0bw0KKwkgKiBwZXJmb3JtIHRoaXMg c2VuZA0KKwkgKi8NCisJaWYgKHZob3N0X3ZxX3N0YXRlW1ZIT1NUX1VTRURfUV9JRFhdLm51bV9m cmVlIDwgYnVmc19wZXJfZnJhbWUgKiBuZnJhbWVzKQ0KKwkJdHhfcmVhcCgpOw0KKw0KKwlmb3Ig KGkgPSAwOyBpIDwgbmZyYW1lczsgaSsrKSB7DQorCQl1aW50MTZfdCBoZWFkOw0KKwkJc2l6ZV90 IGo7DQorDQorCQkvKiBpdCdzIGxpa2VseSB0aGF0IHR4X3JlYXAgcmV0dXJuZWQgdG8gdXMgbGVz cyB0aGFuDQorCQkgKiBidWZzX3Blcl9mcmFtZSBkZXNjcw0KKwkJICovDQorCQlpZiAodmhvc3Rf dnFfc3RhdGVbVkhPU1RfVVNFRF9RX0lEWF0ubnVtX2ZyZWUgPCBidWZzX3Blcl9mcmFtZSkNCisJ CQlicmVhazsNCisNCisJCS8qIHNldCB0aGUgaW5kZXggb2YgdGhlIGF2YWlsIHJpbmcgaW4gdGhl IHR4IHF1ZXVlIHRvIGJlIG91cg0KKwkJICogbGFzdF91c2VkX2lkeA0KKwkJICovDQorCQloZWFk ID0gdmhvc3RfdnFfc3RhdGVbVkhPU1RfVVNFRF9RX0lEWF0ubmV4dF9mcmVlICUgVkhPU1RfTkRF U0NTOw0KKwkJYXZhaWwtPnJpbmdbKGF2YWlsLT5pZHggKyBpKSAlIFZIT1NUX05ERVNDU10gPSBo dG9sZTE2KGhlYWQpOw0KKw0KKwkJLyogd2Ugd2lsbCBiZSBjb25zdW1pbmcgYnVmc19wZXJfZnJh bWUgZGVzY3JpcHRvcnMgZm9yIGV2ZXJ5DQorCQkgKiBmcmFtZSwgZGVjcmVtZW50IHRoZSBsb2Nh bCBudW1fZnJlZQ0KKwkJICovDQorCQl2aG9zdF92cV9zdGF0ZVtWSE9TVF9VU0VEX1FfSURYXS5u dW1fZnJlZSAtPSBidWZzX3Blcl9mcmFtZTsNCisNCisJCWZvciAoaiA9IDA7IGogPCBidWZzX3Bl cl9mcmFtZTsgKytqKSB7DQorCQkJdWludDE2X3QgbmV4dCA9DQorCQkJCXZob3N0X3ZxX3N0YXRl W1ZIT1NUX1VTRURfUV9JRFhdLm5leHRfZnJlZSAlDQorCQkJCVZIT1NUX05ERVNDUzsNCisJCQkv KiBnZXQgdGhlIGxhc3RfdXNlZF9pZHggZGVzY3JpcHRvciAqLw0KKwkJCXN0cnVjdCB2cmluZ19k ZXNjX3Bhc3RhICpkZXNjID0NCisJCQkJJnZyaW5nX2Rlc2NbVkhPU1RfVVNFRF9RX0lEWF1bbmV4 dF07DQorCQkJY29uc3Qgc3RydWN0IGlvdmVjICppb3ZfaTsNCisNCisJCQkvKiB0aGUgaW92IHZh cmlhYmxlIGNvbnRhaW5zIHRoZSBpb3ZlY3MgZm9yIGFsbCBmcmFtZXMNCisJCQkgKiB3ZSB3aWxs IHNlbmQuIGFjY2VzcyBhIHNpbmdsZSBmcmFnbWVudCBvZiBhIGZyYW1lDQorCQkJICogKGVhY2gg ZnJhZ21lbnQgaXMgb25lIG9mIHRjcF9pb3ZfcGFydHMpIGRlbm90ZWQgYnkNCisJCQkgKiBpb3Yg YXQgaW5kZXggaSAoaW5kZXggb2YgdGhlIGZyYW1lIGJlaW5nIHByb2Nlc3NlZCkNCisJCQkgKiAq IGJ1ZnNfcGVyX2ZyYW1lIHBsdXMgaiAodGhlIGluZGV4IG9mIHRoZSBmcmFnbWVudA0KKwkJCSAq IGJlaW5nIHByb2Nlc3NlZCkNCisJCQkgKi8NCisJCQlpb3ZfaSA9ICZpb3ZbaSAqIGJ1ZnNfcGVy X2ZyYW1lICsgal07DQorDQorCQkJLyogc2V0IHRoYXQgZGVzY3JpcHRvcidzIGFkZHJlc3MgdG8g dGhlIGJhc2Ugb2YgdGhlIGlvdg0KKwkJCSAqIGFuZCBzZXQgdGhlIFZSSU5HX0RFU0NfRl9ORVhU IGZsYWcgb24gdGhlIGRlc2NyaXB0b3INCisJCQkgKiBpZiBpdHMgbm90IHRoZSBsYXN0IGZyYW1l IGZyYWdtZW50LCBzbyB0aGF0IHRoZQ0KKwkJCSAqIGd1ZXN0IHdvdWxkIHJlY2lldmUgdGhlIGVu dGlyZSBmcmFtZSBpbiBvbmUgZ28uDQorCQkJICovDQorCQkJZGVzYy0+YWRkciA9ICh1aW50NjRf dClpb3ZfaS0+aW92X2Jhc2U7DQorCQkJZGVzYy0+bGVuID0gaW92X2ktPmlvdl9sZW47DQorCQkJ ZGVzYy0+ZmxhZ3MgPSAoaiA9PSBidWZzX3Blcl9mcmFtZSAtIDEpID8NCisJCQkJICAgICAgMCA6 IGh0b2xlMTYoVlJJTkdfREVTQ19GX05FWFQpOw0KKw0KKwkJCXZob3N0X3ZxX3N0YXRlW1ZIT1NU X1VTRURfUV9JRFhdLm5leHRfZnJlZSsrOw0KKwkJfQ0KKw0KKwkJcHJvY2Vzc2VkX2ZyYW1lcysr Ow0KKwl9DQorDQorCS8qIHdlIGRpZG4ndCBwcm9jZXNzIGFueSBmcmFtZXMsIG5vIG5lZWQgdG8g bm90aWZ5IHRoZSBrZXJuZWwgKi8NCisJaWYgKCFwcm9jZXNzZWRfZnJhbWVzKQ0KKwkJcmV0dXJu IDA7DQorDQorCXNtcF93bWIoKTsNCisNCisJLyogd2Ugd2lsbCBoYXZlIHVzZWQgbmZyYW1lcyBk ZXNjcmlwdG9yIGNoYWlucyAqLw0KKwlhdmFpbC0+aWR4ID0gaHRvbGUxNihsZTE2dG9oKGF2YWls LT5pZHgpICsgcHJvY2Vzc2VkX2ZyYW1lcyk7DQorDQorCXZob3N0X2tpY2soJnZyaW5nX3VzZWRf YWxsW1ZIT1NUX1VTRURfUV9JRFhdLA0KKwkJICAgYy0+dmhvc3QudnFbVkhPU1RfVVNFRF9RX0lE WF0ua2lja19mZCk7DQorDQorCS8qIHdhaXQgdW50aWwgdGhlIGtlcm5lbCBmaW5pc2hlcyBwcm9j ZXNzaW5nIHRoaXMgc2VuZCAqLw0KKwl3aGlsZSAoYXZhaWwtPmlkeCAhPSB2cmluZ191c2VkX2Fs bFsxXS51c2VkLmlkeCkNCisJCTsNCisNCisJcmV0dXJuIHByb2Nlc3NlZF9mcmFtZXM7DQorfQ0K Kw0KIC8qKg0KICAqIHRhcF9zZW5kX2ZyYW1lc19wYXN0YSgpIC0gU2VuZCBtdWx0aXBsZSBmcmFt ZXMgdG8gdGhlIHBhc3RhIHRhcA0KICAqIEBjOgkJCUV4ZWN1dGlvbiBjb250ZXh0DQogICogQGlv djoJCUFycmF5IG9mIGJ1ZmZlcnMNCiAgKiBAYnVmc19wZXJfZnJhbWU6CU51bWJlciBvZiBidWZm ZXJzIChpb3ZlYyBlbnRyaWVzKSBwZXIgZnJhbWUNCiAgKiBAbmZyYW1lczoJCU51bWJlciBvZiBm cmFtZXMgdG8gc2VuZA0KKyAqIEB2aG9zdDoJCVNlbmQgdGhyb3VnaCB2aG9zdC1uZXQgcmF0aGVy IHRoYW4gd3JpdGluZyB0byB0aGUgdGFwDQogICoNCiAgKiBAaW92IG11c3QgaGF2ZSB0b3RhbCBs ZW5ndGggQGJ1ZnNfcGVyX2ZyYW1lICogQG5mcmFtZXMsIHdpdGggZWFjaCBzZXQgb2YNCiAgKiBA YnVmc19wZXJfZnJhbWUgY29udGlndW91cyBidWZmZXJzIHJlcHJlc2VudGluZyBhIHNpbmdsZSBm cmFtZS4NCkBAIC0zNzUsMTEgKzUxNCwxNSBAQCB2b2lkIHRhcF9pY21wNl9zZW5kKGNvbnN0IHN0 cnVjdCBjdHggKmMsDQogICovDQogc3RhdGljIHNpemVfdCB0YXBfc2VuZF9mcmFtZXNfcGFzdGEo Y29uc3Qgc3RydWN0IGN0eCAqYywNCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LA0K LQkJCQkgICAgc2l6ZV90IGJ1ZnNfcGVyX2ZyYW1lLCBzaXplX3QgbmZyYW1lcykNCisJCQkJICAg IHNpemVfdCBidWZzX3Blcl9mcmFtZSwgc2l6ZV90IG5mcmFtZXMsDQorCQkJCSAgICBib29sIHZo b3N0KQ0KIHsNCiAJc2l6ZV90IG5idWZzID0gYnVmc19wZXJfZnJhbWUgKiBuZnJhbWVzOw0KIAlz aXplX3QgaTsNCg0KKwlpZiAodmhvc3QpDQorCQlyZXR1cm4gdGFwX3NlbmRfZnJhbWVzX3Zob3N0 KGMsIGlvdiwgYnVmc19wZXJfZnJhbWUsIG5mcmFtZXMpOw0KKw0KIAlmb3IgKGkgPSAwOyBpIDwg bmJ1ZnM7IGkgKz0gYnVmc19wZXJfZnJhbWUpIHsNCiAJCXNzaXplX3QgcmMgPSB3cml0ZXYoYy0+ ZmRfdGFwLCBpb3YgKyBpLCBidWZzX3Blcl9mcmFtZSk7DQogCQlzaXplX3QgZnJhbWVsZW4gPSBp b3Zfc2l6ZShpb3YgKyBpLCBidWZzX3Blcl9mcmFtZSk7DQpAQCAtNTE1LDcgKzY1OCw3IEBAIHZv aWQgdGFwX3NlbmRfc2luZ2xlKGNvbnN0IHN0cnVjdCBjdHggKmMsIGNvbnN0IHZvaWQgKmRhdGEs IHNpemVfdCBsMmxlbikNCiAJCWlvdltpb3ZjbnRdLmlvdl9sZW4gPSBsMmxlbjsNCiAJCWlvdmNu dCsrOw0KDQotCQltID0gdGFwX3NlbmRfZnJhbWVzX3Bhc3RhKGMsIGlvdiwgaW92Y250LCAxKTsN CisJCW0gPSB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoYywgaW92LCBpb3ZjbnQsIDEsIGZhbHNlKTsN CiAJCWJyZWFrOw0KIAljYXNlIE1PREVfVlU6DQogCQl2dV9zZW5kX3NpbmdsZShjLCBkYXRhLCBs Mmxlbik7DQpAQCAtNTUzLDcgKzY5Niw4IEBAIHNpemVfdCB0YXBfc2VuZF9mcmFtZXMoY29uc3Qg c3RydWN0IGN0eCAqYywgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsDQoNCiAJc3dpdGNoIChjLT5t b2RlKSB7DQogCWNhc2UgTU9ERV9QQVNUQToNCi0JCW0gPSB0YXBfc2VuZF9mcmFtZXNfcGFzdGEo YywgaW92LCBidWZzX3Blcl9mcmFtZSwgbmZyYW1lcyk7DQorCQltID0gdGFwX3NlbmRfZnJhbWVz X3Bhc3RhKGMsIGlvdiwgYnVmc19wZXJfZnJhbWUsIG5mcmFtZXMsDQorCQkJCQkgIGMtPnZob3N0 LmZkICE9IC0xKTsNCiAJCWJyZWFrOw0KIAljYXNlIE1PREVfUEFTU1Q6DQogCQltID0gdGFwX3Nl bmRfZnJhbWVzX3Bhc3N0KGMsIGlvdiwgYnVmc19wZXJfZnJhbWUsIG5mcmFtZXMpOw0KLS0NCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkNCg0KDQo=