From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by passt.top (Postfix, from userid 1000) id C4FF15A061A; Thu, 04 Dec 2025 08:45:42 +0100 (CET) From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH 1/8] tcp: Limit advertised window to available, not total sending buffer size Date: Thu, 4 Dec 2025 08:45:34 +0100 Message-ID: <20251204074542.2156548-2-sbrivio@redhat.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251204074542.2156548-1-sbrivio@redhat.com> References: <20251204074542.2156548-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: 2DBVZZ4BPCIUP2T7Q6XD5AGGNSAMDT7R X-Message-ID-Hash: 2DBVZZ4BPCIUP2T7Q6XD5AGGNSAMDT7R 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 CC: Max Chernoff , David Gibson 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: Rm9yIG5vbi1sb2NhbCBjb25uZWN0aW9ucywgd2UgYWR2ZXJ0aXNlIHRoZSBzYW1lIHdpbmRvdyBz aXplIGFzIHdoYXQNCnRoZSBwZWVyIGluIHR1cm4gYWR2ZXJ0aXNlcyB0byB1cywgYW5kIGxpbWl0 IGl0IHRvIHRoZSBidWZmZXIgc2l6ZQ0KcmVwb3J0ZWQgdmlhIFNPX1NOREJVRi4NCg0KVGhhdCdz IG5vdCBxdWl0ZSBjb3JyZWN0OiBpbiBvcmRlciB0byBsYXRlciBhdm9pZCBmYWlsdXJlcyB3aGls ZQ0KcXVldWVpbmcgZGF0YSB0byB0aGUgc29ja2V0LCB3ZSBuZWVkIHRvIGxpbWl0IHRoZSB3aW5k b3cgdG8gdGhlDQphdmFpbGFibGUgYnVmZmVyIHNpemUsIG5vdCB0aGUgdG90YWwgb25lLg0KDQpV c2UgdGhlIFNJT0NPVVRRIGlvY3RsIGFuZCBzdWJ0cmFjdCB0aGUgbnVtYmVyIG9mIG91dGJvdW5k IHF1ZXVlZA0KYnl0ZXMgZnJvbSB0aGUgdG90YWwgYnVmZmVyIHNpemUsIHRoZW4gY2xhbXAgdG8g dGhpcyB2YWx1ZS4NCg0KU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVk aGF0LmNvbT4NCi0tLQ0KIFJFQURNRS5tZCB8ICAyICstDQogdGNwLmMgICAgIHwgMTggKysrKysr KysrKysrKysrKy0tDQogMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kDQppbmRleCA4OTdh ZThiLi44ZmRjMGEzIDEwMDY0NA0KLS0tIGEvUkVBRE1FLm1kDQorKysgYi9SRUFETUUubWQNCkBA IC0yOTEsNyArMjkxLDcgQEAgc3BlZWRpbmcgdXAgbG9jYWwgY29ubmVjdGlvbnMsIGFuZCB1c3Vh bGx5IHJlcXVpcmluZyBOQVQuIF9wYXN0YV86DQogKiDinIUgYWxsIGNhcGFiaWxpdGllcyBkcm9w cGVkLCBvdGhlciB0aGFuIGBDQVBfTkVUX0JJTkRfU0VSVklDRWAgKGlmIGdyYW50ZWQpDQogKiDi nIUgd2l0aCBkZWZhdWx0IG9wdGlvbnMsIHVzZXIsIG1vdW50LCBJUEMsIFVUUywgUElEIG5hbWVz cGFjZXMgYXJlIGRldGFjaGVkDQogKiDinIUgbm8gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIChvdGhl ciB0aGFuIGEgc3RhbmRhcmQgQyBsaWJyYXJ5KQ0KLSog4pyFIHJlc3RyaWN0aXZlIHNlY2NvbXAg cHJvZmlsZXMgKDMzIHN5c2NhbGxzIGFsbG93ZWQgZm9yIF9wYXNzdF8sIDQzIGZvcg0KKyog4pyF IHJlc3RyaWN0aXZlIHNlY2NvbXAgcHJvZmlsZXMgKDM0IHN5c2NhbGxzIGFsbG93ZWQgZm9yIF9w YXNzdF8sIDQzIGZvcg0KICAgX3Bhc3RhXyBvbiB4ODZfNjQpDQogKiDinIUgZXhhbXBsZXMgb2Yg W0FwcEFybW9yXSgvcGFzc3QvdHJlZS9jb250cmliL2FwcGFybW9yKSBhbmQNCiAgIFtTRUxpbnV4 XSgvcGFzc3QvdHJlZS9jb250cmliL3NlbGludXgpIHByb2ZpbGVzIGF2YWlsYWJsZQ0KZGlmZiAt LWdpdCBhL3RjcC5jIGIvdGNwLmMNCmluZGV4IGZhOTVmNmIuLjg2M2NjZGIgMTAwNjQ0DQotLS0g YS90Y3AuYw0KKysrIGIvdGNwLmMNCkBAIC0xMDMxLDYgKzEwMzEsOCBAQCB2b2lkIHRjcF9maWxs X2hlYWRlcnMoY29uc3Qgc3RydWN0IGN0eCAqYywgc3RydWN0IHRjcF90YXBfY29ubiAqY29ubiwN CiAgKiBAdGluZm86CXRjcF9pbmZvIGZyb20ga2VybmVsLCBjYW4gYmUgTlVMTCBpZiBub3QgcHJl LWZldGNoZWQNCiAgKg0KICAqIFJldHVybjogMSBpZiBzZXF1ZW5jZSBvciB3aW5kb3cgd2VyZSB1 cGRhdGVkLCAwIG90aGVyd2lzZQ0KKyAqDQorICogI3N5c2NhbGxzIGlvY3RsDQogICovDQogaW50 IHRjcF91cGRhdGVfc2VxYWNrX3duZChjb25zdCBzdHJ1Y3QgY3R4ICpjLCBzdHJ1Y3QgdGNwX3Rh cF9jb25uICpjb25uLA0KIAkJCSAgYm9vbCBmb3JjZV9zZXEsIHN0cnVjdCB0Y3BfaW5mb19saW51 eCAqdGluZm8pDQpAQCAtMTExMyw5ICsxMTE1LDIxIEBAIGludCB0Y3BfdXBkYXRlX3NlcWFja193 bmQoY29uc3Qgc3RydWN0IGN0eCAqYywgc3RydWN0IHRjcF90YXBfY29ubiAqY29ubiwNCiAJaWYg KChjb25uLT5mbGFncyAmIExPQ0FMKSB8fCB0Y3BfcnR0X2RzdF9sb3coY29ubikpIHsNCiAJCW5l d193bmRfdG9fdGFwID0gdGluZm8tPnRjcGlfc25kX3duZDsNCiAJfSBlbHNlIHsNCisJCXVpbnQz Ml90IHNlbmRxOw0KKwkJaW50IGxpbWl0Ow0KKw0KKwkJaWYgKGlvY3RsKHMsIFNJT0NPVVRRLCAm c2VuZHEpKSB7DQorCQkJZGVidWdfcGVycm9yKCJTSU9DT1VUUSBvbiBzb2NrZXQgJWksIGFzc3Vt aW5nIDAiLCBzKTsNCisJCQlzZW5kcSA9IDA7DQorCQl9DQogCQl0Y3BfZ2V0X3NuZGJ1Zihjb25u KTsNCi0JCW5ld193bmRfdG9fdGFwID0gTUlOKChpbnQpdGluZm8tPnRjcGlfc25kX3duZCwNCi0J CQkJICAgICBTTkRCVUZfR0VUKGNvbm4pKTsNCisNCisJCWlmICgoaW50KXNlbmRxID4gU05EQlVG X0dFVChjb25uKSkgLyogRHVlIHRvIG1lbW9yeSBwcmVzc3VyZT8gKi8NCisJCQlsaW1pdCA9IDA7 DQorCQllbHNlDQorCQkJbGltaXQgPSBTTkRCVUZfR0VUKGNvbm4pIC0gKGludClzZW5kcTsNCisN CisJCW5ld193bmRfdG9fdGFwID0gTUlOKChpbnQpdGluZm8tPnRjcGlfc25kX3duZCwgbGltaXQp Ow0KIAl9DQogDQogCW5ld193bmRfdG9fdGFwID0gTUlOKG5ld193bmRfdG9fdGFwLCBNQVhfV0lO RE9XKTsNCi0tIA0KMi40My4wDQoNCg==