From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by passt.top (Postfix, from userid 1000) id E9F235A0274; Tue, 30 Sep 2025 22:51:32 +0200 (CEST) From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH RFT] tcp: Fix ACK sequence on FIN to tap, handle retransmission in half-closed state Date: Tue, 30 Sep 2025 22:51:32 +0200 Message-ID: <20250930205132.885225-1-sbrivio@redhat.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: TZCHQZO346RV66KQIT75N5IIHCGTYCB7 X-Message-ID-Hash: TZCHQZO346RV66KQIT75N5IIHCGTYCB7 X-MailFrom: sbrivio@passt.top 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: SWYgd2UgcmVhY2ggZW5kLW9mLWZpbGUgb24gYSBzb2NrZXQgKG9yIGdldCBFUE9MTFJESFVQIC8g RVBPTExIVVApIGFuZA0Kc2VuZCBhIEZJTiBzZWdtZW50IHRvIHRoZSBndWVzdCAvIGNvbnRhaW5l ciBhY2tub3dsZWRnaW5nIGEgc2VxdWVuY2UNCm51bWJlciB0aGF0J3MgYmVoaW5kIHdoYXQgd2Ug cmVjZWl2ZWQgc28gZmFyLCB3ZSB3b24ndCBoYXZlIGFueQ0KZnVydGhlciB0cmlnZ2VyIHRvIHNl bmQgYW4gdXBkYXRlZCBBQ0sgc2VnbWVudCwgYXMgd2UgYXJlIG5vdw0Kc3dpdGNoaW5nIHRoZSBl cG9sbCBzb2NrZXQgbW9uaXRvcmluZyB0byBlZGdlLXRyaWdnZXJlZCBtb2RlLg0KDQpUbyBhdm9p ZCB0aGlzIHNpdHVhdGlvbiwgaW4gdGNwX3VwZGF0ZV9zZXFhY2tfd25kKCksIHdlIHNldCB0aGUg bmV4dA0KYWNrbm93bGVkZ2VtZW50IHNlcXVlbmNlIHRvIHRoZSBjdXJyZW50IG9ic2VydmVkIHNl cXVlbmNlLCByZWdhcmRsZXNzDQpvZiB3aGF0IHdhcyBhY2tub3dsZWRnZWQgc29ja2V0LXNpZGUu DQoNCkhvd2V2ZXIsIHdlIGRvbid0IG5lY2Vzc2FyaWx5IGNhbGwgdGNwX3VwZGF0ZV9zZXFhY2tf d25kKCkgYmVmb3JlDQpzZW5kaW5nIHRoZSBGSU4gc2VnbWVudCwgd2hpY2ggbWlnaHQgbGVhZCB0 byB0aGlzIGV4Y2hhbmdlLCB3aGVyZQ0KMTkyLjE2OC4xMC4xMDIgaXMgYSBIVFRQIHNlcnZlciBp biBhIFBvZG1hbiBjb250YWluZXIsIGFuZA0KMTkyLjE2OC4xMC40NCBpcyBhIGNsaWVudCBmZXRj aGluZyBhcHByb3hpbWF0ZWx5IDE2MCBLQiBvZiBkYXRhDQpmcm9tIGl0Og0KDQogICA4MiAgIDIu MDI2ODExIDE5Mi4xNjguMTAuMTAyIOKGkiAxOTIuMTY4LjEwLjQ0IDU0IFRDUCA1NTQxNCDihpIg NDQ5OTIgW0ZJTiwgQUNLXSBTZXE9MTIxNDQxIEFjaz0xNDMgV2luPTY1NTM2IExlbj0wDQoNCnRo ZSBzZXJ2ZXIgaXMgZG9uZSBzZW5kaW5nDQoNCiAgIDgzICAgMi4wMjY4OTggMTkyLjE2OC4xMC40 NCDihpIgMTkyLjE2OC4xMC4xMDIgNTQgVENQIDQ0OTkyIOKGkiA1NTQxNCBbQUNLXSBTZXE9MTQz IEFjaz0xMTQzOTQgV2luPTIxNjE5MiBMZW49MA0KDQpwYXN0YSAoY2xpZW50KSBhY2tub3dsZWRn ZXMgYSBwcmV2aW91cyBzZXF1ZW5jZQ0KDQogICA4NCAgIDIuMDI3MzI0IDE5Mi4xNjguMTAuNDQg 4oaSIDE5Mi4xNjguMTAuMTAyIDU0IFRDUCA0NDk5MiDihpIgNTU0MTQgW0ZJTiwgQUNLXSBTZXE9 MTQzIEFjaz0xMTQzOTQgV2luPTIxNjE5MiBMZW49MA0KDQpwYXN0YSAoY2xpZW50KSBzZW5kcyBG SU4sIEFDSyBhcyB0aGUgY2xpZW50IGhhcyBubyBtb3JlIGRhdGEgdG8NCnNlbmQgKGEgc2luZ2xl IEdFVCByZXF1ZXN0KSwgd2hpbGUgc3RpbGwgYWNrbm93bGVkZ2luZyBhIHByZXZpb3VzDQpzZXF1 ZW5jZSAoYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGUgY2xpZW50IGFja25vd2xlZGdlZCBzbyBmYXIp DQoNCiAgIDg1ICAgMi4wMjczNDkgMTkyLjE2OC4xMC4xMDIg4oaSIDE5Mi4xNjguMTAuNDQgNTQg VENQIDU1NDE0IOKGkiA0NDk5MiBbQUNLXSBTZXE9MTIxNDQyIEFjaz0xNDQgV2luPTY1NTM2IExl bj0wDQoNCnRoZSBzZXJ2ZXIgYWNrbm93bGVkZ2VzIHRoZSBGSU4sIEFDSw0KDQogICA4NiAgIDIu MjI0MTI1IDE5Mi4xNjguMTAuMTAyIOKGkiAxOTIuMTY4LjEwLjQ0IDQxNTAgVENQIFtUQ1AgUmV0 cmFuc21pc3Npb25dIDU1NDE0IOKGkiA0NDk5MiBbQUNLXSBTZXE9MTE0Mzk0IEFjaz0xNDQgV2lu PTY1NTM2IExlbj00MDk2IFtUQ1Agc2VnbWVudCBvZiBhIHJlYXNzZW1ibGVkIFBEVV0NCg0KLi4u YW5kIG5vdGhpbmcgaGFwcGVucyBmb3IgYSB3aGlsZSwgdW50aWwsIGFwcHJveGltYXRlbHkgMjAw bXMNCmxhdGVyLCB0aGUgc2VydmVyIGNvbmNsdWRlcyB0aGF0IGl0IG5lZWRzIHRvIHJldHJhbnNt aXQgc29tZSBkYXRhDQphcyBpdCB3YXNuJ3QgYWNrbm93bGVkZ2VkLg0KDQpUaGlzIGlzIHRvdGFs bHkgdW5uZWNlc3NhcnksIHNvIGF2b2lkIHRoYXQgYnkgc2V0dGluZyB0aGUgQUNLDQpzZXF1ZW5j ZSB0byB3aGF0ZXZlciB3ZSByZWNlaXZlZCBmcm9tIHRoZSBjb250YWluZXIgLyBndWVzdCwgYmVm b3JlDQpzZW5kaW5nIGEgRklOIHNlZ21lbnQgYW5kIHN3aXRjaGluZyB0byBFUE9MTEVULg0KDQpG dXJ0aGVyIG9uOg0KDQogICA4NyAgIDIuMjI0MjAyIDE5Mi4xNjguMTAuNDQg4oaSIDE5Mi4xNjgu MTAuMTAyIDU0IFRDUCA0NDk5MiDihpIgNTU0MTQgW1JTVF0gU2VxPTE0NCBXaW49MCBMZW49MA0K DQphcyB3ZSBzZWUgdGhlIHJldHJhbnNtaXNzaW9uLCB3ZSBjb25jbHVkZSB0aGF0IHRoaXMgd2Fz IHRoZSBmaW5hbA0KQUNLIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4gQnV0IHRoZSByZXRyYW5z bWlzc2lvbiBzaG91bGQgaW5zdGVhZA0KdGVsbCB1cyB0aGF0IHRoZSBzZXJ2ZXIgaXMgd2FpdGlu ZyBmb3IgYW4gQUNLIHNlZ21lbnQgd2UgbmV2ZXIgc2VudC4NCg0KVG8gZml4IHRoaXMsIHJldmVy dCB0aGUgVEFQX0ZJTl9SQ1ZEIGV2ZW50IGlmIHdlIGdldCBhIHJldHJhbnNtaXNzaW9uLA0KYmVj YXVzZSB0aGUgcGVlciBpcyByZXdpbmRpbmcgdGhlIHNlcXVlbmNlLCB3aGljaCBpbXBsaWVzIHRo YXQgdGhlIEZJTg0Kd2lsbCBiZSByZXRyYW5zbWl0dGVkIGFzIHdlbGwsIGV2ZW50dWFsbHkuIEFu ZCwgdW50aWwgdGhlbiwgd2UNCnNob3VsZG4ndCBoYW5kbGUgdGhhdCBzaWRlIG9mIHRoZSBjb25u ZWN0aW9uIGFzIGNsb3NlZC4gV2UgbmVlZCB0bw0KcHJvY2VzcyAoc2lsZW50bHkgZGlzY2FyZCkg dGhpcyBkYXRhLCBpbnN0ZWFkLg0KDQpMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vY29udGFpbmVy cy9wb2RtYW4vaXNzdWVzLzI3MTc5DQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2Jy aXZpb0ByZWRoYXQuY29tPg0KLS0tDQpJIGNvdWxkbid0IHJlcHJvZHVjZSB0aGUgb3JpZ2luYWwg aXNzdWUsIGFuZCB0aGUgZXhjZXJwdHMgZnJvbSB0aGUNCmNhcHR1cmUgaW4gdGhlIGNvbW1pdCBt ZXNzYWdlIGFyZSBmcm9tIHRoZSBvcmlnaW5hbCByZXBvcnQuIEknbSBmYWlybHkNCnN1cmUgdGhh dCB0aGlzIGlzIGNvcnJlY3QsIGJ1dCBzb21lIHRlc3RpbmcgaW4gdGhlIHByb2JsZW1hdGljIGNh c2UgaXMNCmRlZmluaXRlbHkgbmVlZGVkLg0KDQogdGNwLmMgICAgIHwgIDQgKysrKw0KIHRjcF9i dWYuYyB8IDE0ICsrKysrKysrKysrKystDQogdGNwX3Z1LmMgIHwgIDcgKysrKysrLQ0KIDMgZmls ZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdp dCBhL3RjcC5jIGIvdGNwLmMNCmluZGV4IDQ4YjFlZjIuLmJmZWU1NmIgMTAwNjQ0DQotLS0gYS90 Y3AuYw0KKysrIGIvdGNwLmMNCkBAIC0yMTI4LDYgKzIxMjgsMTAgQEAgaW50IHRjcF90YXBfaGFu ZGxlcihjb25zdCBzdHJ1Y3QgY3R4ICpjLCB1aW50OF90IHBpZiwgc2FfZmFtaWx5X3QgYWYsDQog CQkJcmV0dXJuIDE7DQogCX0NCiANCisJLyogUmV0cmFuc21pc3Npb25zIHJldmVydCBhbnkgRklO IHNlZ21lbnQgKGxhc3QgZGF0YSBzZWdtZW50KSAqLw0KKwlpZiAoU0VRX0xUKG50b2hsKHRoLT5z ZXEpLCBjb25uLT5zZXFfZnJvbV90YXApKQ0KKwkJY29ubl9ldmVudChjLCBjb25uLCB+VEFQX0ZJ Tl9SQ1ZEKTsNCisNCiAJLyogRXN0YWJsaXNoZWQgY29ubmVjdGlvbnMgbm90IGFjY2VwdGluZyBk YXRhIGZyb20gdGFwICovDQogCWlmIChjb25uLT5ldmVudHMgJiBUQVBfRklOX1JDVkQpIHsNCiAJ CWJvb2wgcmV0cjsNCmRpZmYgLS1naXQgYS90Y3BfYnVmLmMgYi90Y3BfYnVmLmMNCmluZGV4IGE0 OTNiNWEuLmNjMTA2YmMgMTAwNjQ0DQotLS0gYS90Y3BfYnVmLmMNCisrKyBiL3RjcF9idWYuYw0K QEAgLTM2OCw3ICszNjgsMTkgQEAgaW50IHRjcF9idWZfZGF0YV9mcm9tX3NvY2soY29uc3Qgc3Ry dWN0IGN0eCAqYywgc3RydWN0IHRjcF90YXBfY29ubiAqY29ubikNCiAJCQljb25uX2ZsYWcoYywg Y29ubiwgU1RBTExFRCk7DQogCQl9IGVsc2UgaWYgKChjb25uLT5ldmVudHMgJiAoU09DS19GSU5f UkNWRCB8IFRBUF9GSU5fU0VOVCkpID09DQogCQkJICAgU09DS19GSU5fUkNWRCkgew0KLQkJCWlu dCByZXQgPSB0Y3BfYnVmX3NlbmRfZmxhZyhjLCBjb25uLCBGSU4gfCBBQ0spOw0KKwkJCWludCBy ZXQ7DQorDQorCQkJLyogT24gVEFQX0ZJTl9TRU5ULCB3ZSB3b24ndCBnZXQgZnVydGhlciBkYXRh IGV2ZW50cw0KKwkJCSAqIGZyb20gdGhlIHNvY2tldCwgYW5kIHRoaXMgbWlnaHQgYmUgdGhlIGxh c3QgQUNLDQorCQkJICogc2VnbWVudCB3ZSBzZW5kIHRvIHRoZSB0YXAsIHNvIHVwZGF0ZSBpdHMg c2VxdWVuY2UgdG8NCisJCQkgKiBpbmNsdWRlIGV2ZXJ5dGhpbmcgd2UgcmVjZWl2ZWQgdW50aWwg bm93Lg0KKwkJCSAqDQorCQkJICogU2VlIGFsc28gdGhlIHNwZWNpYWwgaGFuZGxpbmcgb24gQ09O Tl9JU19DTE9TSU5HKCkgaW4NCisJCQkgKiB0Y3BfdXBkYXRlX3NlcWFja193bmQoKS4NCisJCQkg Ki8NCisJCQljb25uLT5zZXFfYWNrX3RvX3RhcCA9IGNvbm4tPnNlcV9mcm9tX3RhcDsNCisNCisJ CQlyZXQgPSB0Y3BfYnVmX3NlbmRfZmxhZyhjLCBjb25uLCBGSU4gfCBBQ0spOw0KIAkJCWlmIChy ZXQpIHsNCiAJCQkJdGNwX3JzdChjLCBjb25uKTsNCiAJCQkJcmV0dXJuIHJldDsNCmRpZmYgLS1n aXQgYS90Y3BfdnUuYyBiL3RjcF92dS5jDQppbmRleCBlYmQzYTFlLi4zZWMzNTM4IDEwMDY0NA0K LS0tIGEvdGNwX3Z1LmMNCisrKyBiL3RjcF92dS5jDQpAQCAtNDEwLDcgKzQxMCwxMiBAQCBpbnQg dGNwX3Z1X2RhdGFfZnJvbV9zb2NrKGNvbnN0IHN0cnVjdCBjdHggKmMsIHN0cnVjdCB0Y3BfdGFw X2Nvbm4gKmNvbm4pDQogCQkJY29ubl9mbGFnKGMsIGNvbm4sIFNUQUxMRUQpOw0KIAkJfSBlbHNl IGlmICgoY29ubi0+ZXZlbnRzICYgKFNPQ0tfRklOX1JDVkQgfCBUQVBfRklOX1NFTlQpKSA9PQ0K IAkJCSAgIFNPQ0tfRklOX1JDVkQpIHsNCi0JCQlpbnQgcmV0ID0gdGNwX3Z1X3NlbmRfZmxhZyhj LCBjb25uLCBGSU4gfCBBQ0spOw0KKwkJCWludCByZXQ7DQorDQorCQkJLyogU2VlIHRjcF9idWZf ZGF0YV9mcm9tX3NvY2soKSAqLw0KKwkJCWNvbm4tPnNlcV9hY2tfdG9fdGFwID0gY29ubi0+c2Vx X2Zyb21fdGFwOw0KKw0KKwkJCXJldCA9IHRjcF92dV9zZW5kX2ZsYWcoYywgY29ubiwgRklOIHwg QUNLKTsNCiAJCQlpZiAocmV0KSB7DQogCQkJCXRjcF9yc3QoYywgY29ubik7DQogCQkJCXJldHVy biByZXQ7DQotLSANCjIuNDMuMA0KDQo=