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 D98FA5A026E for ; Fri, 04 Sep 2026 23:29:37 +0200 (CEST) X-FEAS-Client-IP: 10.196.169.86 Received: by Ammars-Air.localdomain (Postfix, from userid 501) id C75D7FD0F6A; Sat, 5 Sep 2026 00:29:03 +0300 (EEST) From: aerosouund To: passt-dev@passt.top Subject: [PATCH 6/7] tap: Implement the pasta vhost-net to-guest path Date: Sat, 5 Sep 2026 00:28:25 +0300 Message-Id: <20260904212826.41027-7-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: 3N6E3YAD7ZBJU2VB2AZKNUMA76GI2BO6 X-Message-ID-Hash: 3N6E3YAD7ZBJU2VB2AZKNUMA76GI2BO6 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: RnJvbTogQW1tYXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KDQpBZGQgYSB2aG9z dCBhcmd1bWVudCB0byB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoKS4gQ2FsbGVycyBwYXNzIGl0IHRv IHNheQ0Kd2hldGhlciB0aGlzIHNlbmQgc2hvdWxkIGdvIHRocm91Z2ggdmhvc3QtbmV0LCBhbmQg d2hlbiBpdCBkb2VzIHNlbmRpbmcNCmdvZXMgdGhyb3VnaCB0YXBfc2VuZF9mcmFtZXNfdmhvc3Qo KSwgd2hpY2ggdGFrZXMgYSBkZXNjcmlwdG9yIGZyb20gdGhlDQpxdWV1ZSBzaGFyZWQgd2l0aCB0 aGUga2VybmVsIGZvciBlYWNoIGlvdiBhbmQgcG9pbnRzIGl0IGF0IHRoYXQgaW92J3MNCmJhc2Ug YWRkcmVzcywgY2hhaW5pbmcgdGhlIGJ1ZnNfcGVyX2ZyYW1lIGRlc2NyaXB0b3JzIG9mIGEgZnJh bWUNCnRvZ2V0aGVyIHNvIHRoZSBndWVzdCByZWNlaXZlcyBpdCBpbiBvbmUgZ28uDQoNCnR4X3Jl YXAoKSByZWNsYWltcyB0aGUgZGVzY3JpcHRvcnMgdGhlIGtlcm5lbCBoYXMgZmluaXNoZWQgd2l0 aCwgd2Fsa2luZw0KZWFjaCB1c2VkIGNoYWluIHRvIGl0cyBlbmQgc28gdGhhdCBldmVyeSBkZXNj cmlwdG9yIGluIGl0IGlzIGNvdW50ZWQgYXMNCmZyZWUgYWdhaW4uDQoNClNpZ25lZC1vZmYtYnk6 IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogQW1t YXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KLS0tDQogdGFwLmMgfCAxNDUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0K IDEgZmlsZSBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCg0KZGlm ZiAtLWdpdCBhL3RhcC5jIGIvdGFwLmMNCmluZGV4IGM3MzA1MzUuLjBmNTFlNjIgMTAwNjQ0DQot LS0gYS90YXAuYw0KKysrIGIvdGFwLmMNCkBAIC0zNTksMTIgKzM1OSwxNDYgQEAgdm9pZCB0YXBf aWNtcDZfc2VuZChjb25zdCBzdHJ1Y3QgY3R4ICpjLA0KIAl0YXBfc2VuZF9zaW5nbGUoYywgYnVm LCBsNGxlbiArICgoY2hhciAqKWljbXA2aCAtIGJ1ZikpOw0KIH0NCiANCisvKioNCisgKiB0eF9y ZWFwKCkgLSBSZWNsYWltIHRoZSBkZXNjcmlwdG9ycyB0aGUga2VybmVsIGhhcyBhbHJlYWR5IHBy b2Nlc3NlZA0KKyAqLw0KK3N0YXRpYyB2b2lkIHR4X3JlYXAodm9pZCkNCit7DQorCXN0cnVjdCB2 cmluZ191c2VkICp1c2VkID0gJnZyaW5nX3VzZWRfYWxsWzFdLnVzZWQ7DQorCXVpbnQxNl90IHVz ZWRfaWR4ID0gbGUxNnRvaCh1c2VkLT5pZHgpOw0KKw0KKwlzbXBfcm1iKCk7DQorDQorCS8qIGlu Y3JlbWVudCBsYXN0X3VzZWRfaWR4IHVudGlsIGl0IHJlYWNoZXMgdGhlIGtlcm5lbCdzIHVzZWQg aW5kZXggKi8NCisJd2hpbGUgKHZob3N0X3ZxX3N0YXRlWzFdLmxhc3RfdXNlZF9pZHggIT0gdXNl ZF9pZHgpIHsNCisJCXVpbnQxNl90IGxhc3RfdXNlZCwgZGVzY19pZDsNCisNCisJCWxhc3RfdXNl ZCA9IHZob3N0X3ZxX3N0YXRlWzFdLmxhc3RfdXNlZF9pZHggJSBWSE9TVF9OREVTQ1M7DQorCQlk ZXNjX2lkID0gbGUzMnRvaCh1c2VkLT5yaW5nW2xhc3RfdXNlZF0uaWQpOw0KKw0KKwkJZm9yICg7 Oykgew0KKwkJCS8qIGtlZXAgZ29pbmcgdW50aWwgd2UgZmluZCBhIGRlc2NyaXB0b3Igd2l0aG91 dCB0aGUNCisJCQkgKiBuZXh0IGZsYWcNCisJCQkgKi8NCisJCQl2aG9zdF92cV9zdGF0ZVsxXS5u dW1fZnJlZSsrOw0KKwkJCWlmICghKGxlMTZ0b2godnJpbmdfZGVzY1sxXVtkZXNjX2lkXS5mbGFn cykgJg0KKwkJCSAgICAgIFZSSU5HX0RFU0NfRl9ORVhUKSkNCisJCQkJYnJlYWs7DQorDQorCQkJ LyogdGhpcyBkZXNjcmlwdG9yIHdhc24ndCB0aGUgbGFzdCwgc2V0IGRlc2NfaWQgdG8gdGhlDQor CQkJICogbmV4dCBvbmUgYW5kIGtlZXAgZ29pbmcNCisJCQkgKi8NCisJCQlkZXNjX2lkID0gbGUx NnRvaCh2cmluZ19kZXNjWzFdW2Rlc2NfaWRdLm5leHQpOw0KKwkJfQ0KKw0KKwkJdmhvc3RfdnFf c3RhdGVbMV0ubGFzdF91c2VkX2lkeCsrOw0KKwl9DQorfQ0KKw0KKy8qKg0KKyAqIHRhcF9zZW5k X2ZyYW1lc192aG9zdCgpIC0gU2VuZCBtdWx0aXBsZSBmcmFtZXMgdG8gdGhlIHBhc3RhIHRhcA0K KyAqIEBjOgkJCUV4ZWN1dGlvbiBjb250ZXh0DQorICogQGlvdjoJCUFycmF5IG9mIGJ1ZmZlcnMN CisgKiBAYnVmc19wZXJfZnJhbWU6CU51bWJlciBvZiBidWZmZXJzIChpb3ZlYyBlbnRyaWVzKSBw ZXIgZnJhbWUNCisgKiBAbmZyYW1lczoJCU51bWJlciBvZiBmcmFtZXMgdG8gc2VuZA0KKyAqDQor ICogQGlvdiBtdXN0IGhhdmUgdG90YWwgbGVuZ3RoIEBidWZzX3Blcl9mcmFtZSAqIEBuZnJhbWVz LCB3aXRoIGVhY2ggc2V0IG9mDQorICogQGJ1ZnNfcGVyX2ZyYW1lIGNvbnRpZ3VvdXMgYnVmZmVy cyByZXByZXNlbnRpbmcgYSBzaW5nbGUgZnJhbWUuDQorICoNCisgKiBSZXR1cm46IG51bWJlciBv ZiBmcmFtZXMgc3VjY2Vzc2Z1bGx5IHNlbnQNCisgKi8NCitzdGF0aWMgc2l6ZV90IHRhcF9zZW5k X2ZyYW1lc192aG9zdChjb25zdCBzdHJ1Y3QgY3R4ICpjLA0KKwkJCQkgICAgY29uc3Qgc3RydWN0 IGlvdmVjICppb3YsDQorCQkJCSAgICBzaXplX3QgYnVmc19wZXJfZnJhbWUsIHNpemVfdCBuZnJh bWVzKQ0KK3sNCisJc3RydWN0IHZyaW5nX2F2YWlsICphdmFpbCA9ICZ2cmluZ19hdmFpbF9hbGxb MV0uYXZhaWw7DQorCXNpemVfdCBwcm9jZXNzZWRfZnJhbWVzID0gMDsNCisJc2l6ZV90IGk7DQor DQorCS8qIHJlY2xhaW0gZGVzY3JpcHRvcnMgaWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggYXZhaWxh YmxlIGJ1ZmZlcnMgdG8NCisJICogcGVyZm9ybSB0aGlzIHNlbmQNCisJICovDQorCWlmICh2aG9z dF92cV9zdGF0ZVsxXS5udW1fZnJlZSA8IGJ1ZnNfcGVyX2ZyYW1lICogbmZyYW1lcykNCisJCXR4 X3JlYXAoKTsNCisNCisJZm9yIChpID0gMDsgaSA8IG5mcmFtZXM7IGkrKykgew0KKwkJdWludDE2 X3QgaGVhZDsNCisJCXNpemVfdCBqOw0KKw0KKwkJLyogaXQncyBsaWtlbHkgdGhhdCB0eF9yZWFw IHJldHVybmVkIHRvIHVzIGxlc3MgdGhhbg0KKwkJICogYnVmc19wZXJfZnJhbWUgZGVzY3MNCisJ CSAqLw0KKwkJaWYgKHZob3N0X3ZxX3N0YXRlWzFdLm51bV9mcmVlIDwgYnVmc19wZXJfZnJhbWUp DQorCQkJYnJlYWs7DQorDQorCQkvKiBzZXQgdGhlIGluZGV4IG9mIHRoZSBhdmFpbCByaW5nIGlu IHRoZSB0eCBxdWV1ZSB0byBiZSBvdXINCisJCSAqIGxhc3RfdXNlZF9pZHgNCisJCSAqLw0KKwkJ aGVhZCA9IHZob3N0X3ZxX3N0YXRlWzFdLm5leHRfZnJlZSAlIFZIT1NUX05ERVNDUzsNCisJCWF2 YWlsLT5yaW5nWyhhdmFpbC0+aWR4ICsgaSkgJSBWSE9TVF9OREVTQ1NdID0gaHRvbGUxNihoZWFk KTsNCisNCisJCS8qIHdlIHdpbGwgYmUgY29uc3VtaW5nIGJ1ZnNfcGVyX2ZyYW1lIGRlc2NyaXB0 b3JzIGZvciBldmVyeQ0KKwkJICogZnJhbWUsIGRlY3JlbWVudCB0aGUgbG9jYWwgbnVtX2ZyZWUN CisJCSAqLw0KKwkJdmhvc3RfdnFfc3RhdGVbMV0ubnVtX2ZyZWUgLT0gYnVmc19wZXJfZnJhbWU7 DQorDQorCQlmb3IgKGogPSAwOyBqIDwgYnVmc19wZXJfZnJhbWU7ICsraikgew0KKwkJCXVpbnQx Nl90IG5leHQgPSB2aG9zdF92cV9zdGF0ZVsxXS5uZXh0X2ZyZWUgJQ0KKwkJCQkJVkhPU1RfTkRF U0NTOw0KKwkJCS8qIGdldCB0aGUgbGFzdF91c2VkX2lkeCBkZXNjcmlwdG9yICovDQorCQkJc3Ry dWN0IHZyaW5nX2Rlc2MgKmRlc2MgPSAmdnJpbmdfZGVzY1sxXVtuZXh0XTsNCisJCQljb25zdCBz dHJ1Y3QgaW92ZWMgKmlvdl9pOw0KKw0KKwkJCS8qIHRoZSBpb3YgdmFyaWFibGUgY29udGFpbnMg dGhlIGlvdmVjcyBmb3IgYWxsIGZyYW1lcw0KKwkJCSAqIHdlIHdpbGwgc2VuZC4gYWNjZXNzIGEg c2luZ2xlIGZyYWdtZW50IG9mIGEgZnJhbWUNCisJCQkgKiAoZWFjaCBmcmFnbWVudCBpcyBvbmUg b2YgdGNwX2lvdl9wYXJ0cykgZGVub3RlZCBieQ0KKwkJCSAqIGlvdiBhdCBpbmRleCBpIChpbmRl eCBvZiB0aGUgZnJhbWUgYmVpbmcgcHJvY2Vzc2VkKQ0KKwkJCSAqICogYnVmc19wZXJfZnJhbWUg cGx1cyBqICh0aGUgaW5kZXggb2YgdGhlIGZyYWdtZW50DQorCQkJICogYmVpbmcgcHJvY2Vzc2Vk KQ0KKwkJCSAqLw0KKwkJCWlvdl9pID0gJmlvdltpICogYnVmc19wZXJfZnJhbWUgKyBqXTsNCisN CisJCQkvKiBzZXQgdGhhdCBkZXNjcmlwdG9yJ3MgYWRkcmVzcyB0byB0aGUgYmFzZSBvZiB0aGUg aW92DQorCQkJICogYW5kIHNldCB0aGUgVlJJTkdfREVTQ19GX05FWFQgZmxhZyBvbiB0aGUgZGVz Y3JpcHRvcg0KKwkJCSAqIGlmIGl0cyBub3QgdGhlIGxhc3QgZnJhbWUgZnJhZ21lbnQsIHNvIHRo YXQgdGhlDQorCQkJICogZ3Vlc3Qgd291bGQgcmVjaWV2ZSB0aGUgZW50aXJlIGZyYW1lIGluIG9u ZSBnby4NCisJCQkgKi8NCisJCQlkZXNjLT5hZGRyID0gKHVpbnQ2NF90KWlvdl9pLT5pb3ZfYmFz ZTsNCisJCQlkZXNjLT5sZW4gPSBpb3ZfaS0+aW92X2xlbjsNCisJCQlkZXNjLT5mbGFncyA9IChq ID09IGJ1ZnNfcGVyX2ZyYW1lIC0gMSkgPw0KKwkJCQkgICAgICAwIDogaHRvbGUxNihWUklOR19E RVNDX0ZfTkVYVCk7DQorDQorCQkJdmhvc3RfdnFfc3RhdGVbMV0ubmV4dF9mcmVlKys7DQorCQl9 DQorDQorCQlwcm9jZXNzZWRfZnJhbWVzKys7DQorCX0NCisNCisJLyogd2UgZGlkbid0IHByb2Nl c3MgYW55IGZyYW1lcywgbm8gbmVlZCB0byBub3RpZnkgdGhlIGtlcm5lbCAqLw0KKwlpZiAoIXBy b2Nlc3NlZF9mcmFtZXMpDQorCQlyZXR1cm4gMDsNCisNCisJc21wX3dtYigpOw0KKw0KKwkvKiB3 ZSB3aWxsIGhhdmUgdXNlZCBuZnJhbWVzIGRlc2NyaXB0b3IgY2hhaW5zICovDQorCWF2YWlsLT5p ZHggPSBodG9sZTE2KGxlMTZ0b2goYXZhaWwtPmlkeCkgKyBwcm9jZXNzZWRfZnJhbWVzKTsNCisN CisJdmhvc3Rfa2ljaygmdnJpbmdfdXNlZF9hbGxbMV0udXNlZCwgYy0+dmhvc3QudnFbMV0ua2lj a19mZCk7DQorDQorCS8qIHdhaXQgdW50aWwgdGhlIGtlcm5lbCBmaW5pc2hlcyBwcm9jZXNzaW5n IHRoaXMgc2VuZCAqLw0KKwl3aGlsZSAoYXZhaWwtPmlkeCAhPSB2cmluZ191c2VkX2FsbFsxXS51 c2VkLmlkeCkNCisJCTsNCisNCisJcmV0dXJuIHByb2Nlc3NlZF9mcmFtZXM7DQorfQ0KKw0KIC8q Kg0KICAqIHRhcF9zZW5kX2ZyYW1lc19wYXN0YSgpIC0gU2VuZCBtdWx0aXBsZSBmcmFtZXMgdG8g dGhlIHBhc3RhIHRhcA0KICAqIEBjOgkJCUV4ZWN1dGlvbiBjb250ZXh0DQogICogQGlvdjoJCUFy cmF5IG9mIGJ1ZmZlcnMNCiAgKiBAYnVmc19wZXJfZnJhbWU6CU51bWJlciBvZiBidWZmZXJzIChp b3ZlYyBlbnRyaWVzKSBwZXIgZnJhbWUNCiAgKiBAbmZyYW1lczoJCU51bWJlciBvZiBmcmFtZXMg dG8gc2VuZA0KKyAqIEB2aG9zdDoJCVNlbmQgdGhyb3VnaCB2aG9zdC1uZXQgcmF0aGVyIHRoYW4g d3JpdGluZyB0byB0aGUgdGFwDQogICoNCiAgKiBAaW92IG11c3QgaGF2ZSB0b3RhbCBsZW5ndGgg QGJ1ZnNfcGVyX2ZyYW1lICogQG5mcmFtZXMsIHdpdGggZWFjaCBzZXQgb2YNCiAgKiBAYnVmc19w ZXJfZnJhbWUgY29udGlndW91cyBidWZmZXJzIHJlcHJlc2VudGluZyBhIHNpbmdsZSBmcmFtZS4N CkBAIC0zNzUsMTEgKzUwOSwxNSBAQCB2b2lkIHRhcF9pY21wNl9zZW5kKGNvbnN0IHN0cnVjdCBj dHggKmMsDQogICovDQogc3RhdGljIHNpemVfdCB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoY29uc3Qg c3RydWN0IGN0eCAqYywNCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LA0KLQkJCQkg ICAgc2l6ZV90IGJ1ZnNfcGVyX2ZyYW1lLCBzaXplX3QgbmZyYW1lcykNCisJCQkJICAgIHNpemVf dCBidWZzX3Blcl9mcmFtZSwgc2l6ZV90IG5mcmFtZXMsDQorCQkJCSAgICBib29sIHZob3N0KQ0K IHsNCiAJc2l6ZV90IG5idWZzID0gYnVmc19wZXJfZnJhbWUgKiBuZnJhbWVzOw0KIAlzaXplX3Qg aTsNCiANCisJaWYgKHZob3N0KQ0KKwkJcmV0dXJuIHRhcF9zZW5kX2ZyYW1lc192aG9zdChjLCBp b3YsIGJ1ZnNfcGVyX2ZyYW1lLCBuZnJhbWVzKTsNCisNCiAJZm9yIChpID0gMDsgaSA8IG5idWZz OyBpICs9IGJ1ZnNfcGVyX2ZyYW1lKSB7DQogCQlzc2l6ZV90IHJjID0gd3JpdGV2KGMtPmZkX3Rh cCwgaW92ICsgaSwgYnVmc19wZXJfZnJhbWUpOw0KIAkJc2l6ZV90IGZyYW1lbGVuID0gaW92X3Np emUoaW92ICsgaSwgYnVmc19wZXJfZnJhbWUpOw0KQEAgLTUxNSw3ICs2NTMsNyBAQCB2b2lkIHRh cF9zZW5kX3NpbmdsZShjb25zdCBzdHJ1Y3QgY3R4ICpjLCBjb25zdCB2b2lkICpkYXRhLCBzaXpl X3QgbDJsZW4pDQogCQlpb3ZbaW92Y250XS5pb3ZfbGVuID0gbDJsZW47DQogCQlpb3ZjbnQrKzsN CiANCi0JCW0gPSB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoYywgaW92LCBpb3ZjbnQsIDEpOw0KKwkJ bSA9IHRhcF9zZW5kX2ZyYW1lc19wYXN0YShjLCBpb3YsIGlvdmNudCwgMSwgZmFsc2UpOw0KIAkJ YnJlYWs7DQogCWNhc2UgTU9ERV9WVToNCiAJCXZ1X3NlbmRfc2luZ2xlKGMsIGRhdGEsIGwybGVu KTsNCkBAIC01NTMsNyArNjkxLDggQEAgc2l6ZV90IHRhcF9zZW5kX2ZyYW1lcyhjb25zdCBzdHJ1 Y3QgY3R4ICpjLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwNCiANCiAJc3dpdGNoIChjLT5tb2Rl KSB7DQogCWNhc2UgTU9ERV9QQVNUQToNCi0JCW0gPSB0YXBfc2VuZF9mcmFtZXNfcGFzdGEoYywg aW92LCBidWZzX3Blcl9mcmFtZSwgbmZyYW1lcyk7DQorCQltID0gdGFwX3NlbmRfZnJhbWVzX3Bh c3RhKGMsIGlvdiwgYnVmc19wZXJfZnJhbWUsIG5mcmFtZXMsDQorCQkJCQkgIGMtPnZob3N0LmZk ICE9IC0xKTsNCiAJCWJyZWFrOw0KIAljYXNlIE1PREVfUEFTU1Q6DQogCQltID0gdGFwX3NlbmRf ZnJhbWVzX3Bhc3N0KGMsIGlvdiwgYnVmc19wZXJfZnJhbWUsIG5mcmFtZXMpOw0KLS0gDQoyLjM5 LjUgKEFwcGxlIEdpdC0xNTQpDQoNCg==