Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Feb 2016 16:02:54 +0000
From:      "hiren (hiren panchasara)" <phabric-noreply@FreeBSD.org>
To:        transport@freebsd.org
Subject:   [Differential] [Request, 103 lines] D5173: Rework initial congestion window calculation.
Message-ID:  <differential-rev-PHID-DREV-tiq6pccmtojpbvxymmza-req@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

--b1_091477204b4256e1a1e0967da5332176
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

hiren created this revision.
hiren added a reviewer: lstewart.
hiren added a subscriber: transport.
Herald added a subscriber: imp.
Herald added a reviewer: transport.

REVISION SUMMARY
  Rework initial congestion window calculation.
  
  The patch is my first (barely compiling) attempt at:
  
  1. add ability to specify initcwnd in number of bytes
  2. move entire calculation into a separate function
  3. add a new sysctl to enable RFC6928 which is ON by default
  4. https://reviews.freebsd.org/D5124's fix included.
  
  Approach here is, user can specify initcwnd of choice in number of segments or bytes. If none is present, we default to RFC6928 and have initcwnd as 10 segments.
  
  AFAIK, this is not changing the default behavior of what we have in FreeBSD-head right now. OR at least, that is the plan.
  This change also makes enabling RFC3390 (to get initcwnd at 4 segments) more obvious/easier. (You just have to disable RFC6928.)
  
  Suggestions?
  
  (I need to remember to do any manpage updates with this.)

TEST PLAN
  I'll work on it once we have a general consensus on the approach.

REPOSITORY
  rS FreeBSD src repository

BRANCH
  rework_initcwnd

REVISION DETAIL
  https://reviews.freebsd.org/D5173

AFFECTED FILES
  sys/netinet/cc/cc_newreno.c
  sys/netinet/tcp_input.c
  sys/netinet/tcp_var.h

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: hiren, lstewart, transport
Cc: imp, transport

--b1_091477204b4256e1a1e0967da5332176
Content-Type: text/x-patch; charset=utf-8; name="D5173.12966.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D5173.12966.patch"

ZGlmZiAtLWdpdCBhL3N5cy9uZXRpbmV0L3RjcF92YXIuaCBiL3N5cy9uZXRpbmV0L3RjcF92YXIu
aAotLS0gYS9zeXMvbmV0aW5ldC90Y3BfdmFyLmgKKysrIGIvc3lzL25ldGluZXQvdGNwX3Zhci5o
CkBAIC02OTMsNyArNjkzLDkgQEAKIFZORVRfREVDTEFSRShpbnQsIHRjcF9taW5tc3MpOwogVk5F
VF9ERUNMQVJFKGludCwgdGNwX2RlbGFja19lbmFibGVkKTsKIFZORVRfREVDTEFSRShpbnQsIHRj
cF9kb19yZmMzMzkwKTsKK1ZORVRfREVDTEFSRShpbnQsIHRjcF9kb19yZmM2OTI4KTsKIFZORVRf
REVDTEFSRShpbnQsIHRjcF9pbml0Y3duZF9zZWdtZW50cyk7CitWTkVUX0RFQ0xBUkUoaW50LCB0
Y3BfaW5pdGN3bmRfYnl0ZXMpOwogVk5FVF9ERUNMQVJFKGludCwgdGNwX3NlbmRzcGFjZSk7CiBW
TkVUX0RFQ0xBUkUoaW50LCB0Y3BfcmVjdnNwYWNlKTsKIFZORVRfREVDTEFSRShpbnQsIHBhdGhf
bXR1X2Rpc2NvdmVyeSk7CkBAIC03MDUsNyArNzA3LDkgQEAKICNkZWZpbmUJVl90Y3BfbWlubXNz
CQlWTkVUKHRjcF9taW5tc3MpCiAjZGVmaW5lCVZfdGNwX2RlbGFja19lbmFibGVkCVZORVQodGNw
X2RlbGFja19lbmFibGVkKQogI2RlZmluZQlWX3RjcF9kb19yZmMzMzkwCVZORVQodGNwX2RvX3Jm
YzMzOTApCisjZGVmaW5lCVZfdGNwX2RvX3JmYzY5MjgJVk5FVCh0Y3BfZG9fcmZjNjkyOCkKICNk
ZWZpbmUJVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMJVk5FVCh0Y3BfaW5pdGN3bmRfc2VnbWVudHMp
CisjZGVmaW5lCVZfdGNwX2luaXRjd25kX2J5dGVzCVZORVQodGNwX2luaXRjd25kX2J5dGVzKQog
I2RlZmluZQlWX3RjcF9zZW5kc3BhY2UJCVZORVQodGNwX3NlbmRzcGFjZSkKICNkZWZpbmUJVl90
Y3BfcmVjdnNwYWNlCQlWTkVUKHRjcF9yZWN2c3BhY2UpCiAjZGVmaW5lCVZfcGF0aF9tdHVfZGlz
Y292ZXJ5CVZORVQocGF0aF9tdHVfZGlzY292ZXJ5KQpAQCAtODQ1LDYgKzg0OSw3IEBACiBpbnQJ
IHRjcF9uZXdyZW5vKHN0cnVjdCB0Y3BjYiAqLCBzdHJ1Y3QgdGNwaGRyICopOwogdV9sb25nCSB0
Y3Bfc2VxX3N1YnRyYWN0KHVfbG9uZywgdV9sb25nICk7CiBpbnQJIHRjcF9jb21wdXRlX3BpcGUo
c3RydWN0IHRjcGNiICopOwordV9sb25nCSB0Y3BfaW5pdGN3bmQoc3RydWN0IHRjcGNiICosIHVf
aW50KTsKIAogc3RhdGljIGlubGluZSB2b2lkCiB0Y3BfZmllbGRzX3RvX2hvc3Qoc3RydWN0IHRj
cGhkciAqdGgpCmRpZmYgLS1naXQgYS9zeXMvbmV0aW5ldC90Y3BfaW5wdXQuYyBiL3N5cy9uZXRp
bmV0L3RjcF9pbnB1dC5jCi0tLSBhL3N5cy9uZXRpbmV0L3RjcF9pbnB1dC5jCisrKyBiL3N5cy9u
ZXRpbmV0L3RjcF9pbnB1dC5jCkBAIC0xNjgsMTEgKzE2OCwyMSBAQAogICAgICZWTkVUX05BTUUo
dGNwX2RvX3JmYzMzOTApLCAwLAogICAgICJFbmFibGUgUkZDIDMzOTAgKEluY3JlYXNpbmcgVENQ
J3MgSW5pdGlhbCBDb25nZXN0aW9uIFdpbmRvdykiKTsKIAotVk5FVF9ERUZJTkUoaW50LCB0Y3Bf
aW5pdGN3bmRfc2VnbWVudHMpID0gMTA7CitWTkVUX0RFRklORShpbnQsIHRjcF9kb19yZmM2OTI4
KSA9IDE7CitTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9BVVRPLCByZmM2OTI4LCBDVExG
TEFHX1ZORVQgfCBDVExGTEFHX1JXLAorICAgICZWTkVUX05BTUUodGNwX2RvX3JmYzY5MjgpLCAw
LAorICAgICJFbmFibGUgUkZDIDY5MjggKEluY3JlYXNpbmcgVENQJ3MgSW5pdGlhbCBDb25nZXN0
aW9uIFdpbmRvdykiKTsKKworVk5FVF9ERUZJTkUoaW50LCB0Y3BfaW5pdGN3bmRfc2VnbWVudHMp
ID0gMDsKIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIGluaXRjd25kX3NlZ21l
bnRzLAogICAgIENUTEZMQUdfVk5FVCB8IENUTEZMQUdfUlcsICZWTkVUX05BTUUodGNwX2luaXRj
d25kX3NlZ21lbnRzKSwgMCwKICAgICAiU2xvdy1zdGFydCBmbGlnaHQgc2l6ZSAoaW5pdGlhbCBj
b25nZXN0aW9uIHdpbmRvdykgaW4gbnVtYmVyIG9mIHNlZ21lbnRzIik7CiAKK1ZORVRfREVGSU5F
KGludCwgdGNwX2luaXRjd25kX2J5dGVzKSA9IDA7CitTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3As
IE9JRF9BVVRPLCBpbml0Y3duZF9ieXRlcywKKyAgICBDVExGTEFHX1ZORVQgfCBDVExGTEFHX1JX
LCAmVk5FVF9OQU1FKHRjcF9pbml0Y3duZF9ieXRlcyksIDAsCisgICAgIlNsb3ctc3RhcnQgZmxp
Z2h0IHNpemUgKGluaXRpYWwgY29uZ2VzdGlvbiB3aW5kb3cpIGluIG51bWJlciBvZiBieXRlcyIp
OworCiBWTkVUX0RFRklORShpbnQsIHRjcF9kb19yZmMzNDY1KSA9IDE7CiBTWVNDVExfSU5UKF9u
ZXRfaW5ldF90Y3AsIE9JRF9BVVRPLCByZmMzNDY1LCBDVExGTEFHX1ZORVQgfCBDVExGTEFHX1JX
LAogICAgICZWTkVUX05BTUUodGNwX2RvX3JmYzM0NjUpLCAwLApAQCAtMzQ5LDM0ICszNTksOCBA
QAogCQlUQ1BTVEFUX0lOQyh0Y3BzX3VzZWRzc3RocmVzaCk7CiAJfQogCi0JLyoKLQkgKiBTZXQg
dGhlIGluaXRpYWwgc2xvdy1zdGFydCBmbGlnaHQgc2l6ZS4KLQkgKgotCSAqIFJGQzU2ODEgU2Vj
dGlvbiAzLjEgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGNvbnNlcnZhdGl2ZSB2YWx1ZXMuCi0JICog
UkZDMzM5MCBzcGVjaWZpZXMgc2xpZ2h0bHkgbW9yZSBhZ2dyZXNzaXZlIHZhbHVlcy4KLQkgKiBS
RkM2OTI4IGluY3JlYXNlcyBpdCB0byB0ZW4gc2VnbWVudHMuCi0JICogU3VwcG9ydCBmb3IgdXNl
ciBzcGVjaWZpZWQgdmFsdWUgZm9yIGluaXRpYWwgZmxpZ2h0IHNpemUuCi0JICoKLQkgKiBJZiBh
IFNZTiBvciBTWU4vQUNLIHdhcyBsb3N0IGFuZCByZXRyYW5zbWl0dGVkLCB3ZSBoYXZlIHRvCi0J
ICogcmVkdWNlIHRoZSBpbml0aWFsIENXTkQgdG8gb25lIHNlZ21lbnQgYXMgY29uZ2VzdGlvbiBp
cyBsaWtlbHkKLQkgKiByZXF1aXJpbmcgdXMgdG8gYmUgY2F1dGlvdXMuCi0JICovCi0JaWYgKHRw
LT5zbmRfY3duZCA9PSAxKQotCQl0cC0+c25kX2N3bmQgPSBtYXhzZWc7CQkvKiBTWU4oLUFDSykg
bG9zdCAqLwotCWVsc2UgaWYgKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzKQotCQl0cC0+c25kX2N3
bmQgPSBtaW4oVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgKiBtYXhzZWcsCi0JCSAgICBtYXgoMiAq
IG1heHNlZywgVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgKiAxNDYwKSk7Ci0JZWxzZSBpZiAoVl90
Y3BfZG9fcmZjMzM5MCkKLQkJdHAtPnNuZF9jd25kID0gbWluKDQgKiBtYXhzZWcsIG1heCgyICog
bWF4c2VnLCA0MzgwKSk7Ci0JZWxzZSB7Ci0JCS8qIFBlciBSRkM1NjgxIFNlY3Rpb24gMy4xICov
Ci0JCWlmIChtYXhzZWcgPiAyMTkwKQotCQkJdHAtPnNuZF9jd25kID0gMiAqIG1heHNlZzsKLQkJ
ZWxzZSBpZiAobWF4c2VnID4gMTA5NSkKLQkJCXRwLT5zbmRfY3duZCA9IDMgKiBtYXhzZWc7Ci0J
CWVsc2UKLQkJCXRwLT5zbmRfY3duZCA9IDQgKiBtYXhzZWc7Ci0JfQorCS8qIERldGVybWluZSB0
aGUgaW5pdGlhbCBjb25nZXN0aW9uIHdpbmRvdyAqLworCXRwLT5zbmRfY3duZCA9IHRjcF9pbml0
Y3duZCh0cCwgbWF4c2VnKTsKIAogCWlmIChDQ19BTEdPKHRwKS0+Y29ubl9pbml0ICE9IE5VTEwp
CiAJCUNDX0FMR08odHApLT5jb25uX2luaXQodHAtPmNjdik7CkBAIC0zODI2LDMgKzM4MTAsNTEg
QEAKIAkJdHAtPnNhY2toaW50LnNhY2tfYnl0ZXNfcmV4bWl0IC0KIAkJdHAtPnNhY2toaW50LnNh
Y2tlZF9ieXRlcyk7CiB9CisKKy8qCisgKiBTZXQgdGhlIGluaXRpYWwgc2xvdy1zdGFydCBmbGln
aHQgc2l6ZS4KKyAqCisgKiBTdXBwb3J0IGZvciB1c2VyIHNwZWNpZmllZCB2YWx1ZSBmb3IgaW5p
dGlhbCBmbGlnaHQgc2l6ZS4KKyAqIFJGQzY5MjggaW5jcmVhc2VzIGl0IHRvIHRlbiBzZWdtZW50
cy4KKyAqIFJGQzMzOTAgc3BlY2lmaWVzIHNsaWdodGx5IG1vcmUgYWdncmVzc2l2ZSB2YWx1ZXMu
CisgKiBSRkM1NjgxIFNlY3Rpb24gMy4xIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBjb25zZXJ2YXRp
dmUgdmFsdWVzLgorICoKKyAqIElmIGEgU1lOIG9yIFNZTi9BQ0sgd2FzIGxvc3QgYW5kIHJldHJh
bnNtaXR0ZWQsIHdlIGhhdmUgdG8KKyAqIHJlZHVjZSB0aGUgaW5pdGlhbCBDV05EIHRvIG9uZSBz
ZWdtZW50IGFzIGNvbmdlc3Rpb24gaXMgbGlrZWx5CisgKiByZXF1aXJpbmcgdXMgdG8gYmUgY2F1
dGlvdXMuCisgKgorICogTm90ZTogVGhlICJtYWdpYyIgbnVtYmVycyBiZWxvdyBhcmUgZGlyZWN0
bHkgZGVyaXZlZCBmcm9tIHRoZQorICogcmVmZXJlbmNlZCBSRkNzIGFuZCBhcmUga2VwdCBhcyBz
dWNoIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCisgKi8KK3VfbG9uZwordGNwX2luaXRjd25kKHN0
cnVjdCB0Y3BjYiAqdHAsIHVfaW50IG1heHNlZykKK3sKKwl1X2xvbmcgaW5pdGN3bmQ7CisJaWYg
KHRwLT5zbmRfY3duZCA9PSAxKQorCQlpbml0Y3duZCA9IG1heHNlZzsJCS8qIFNZTigtQUNLKSBs
b3N0ICovCisJZWxzZSBpZiAoVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMgJiYgVl90Y3BfaW5pdGN3
bmRfYnl0ZXMpCisJCWluaXRjd25kID0gbWF4KFZfdGNwX2luaXRjd25kX2J5dGVzLAorCQkgICAg
bWluKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogbWF4c2VnLAorCQkgICAgbWF4KDIgKiBtYXhz
ZWcsIFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogMTQ2MCkpKTsKKwllbHNlIGlmIChWX3RjcF9p
bml0Y3duZF9zZWdtZW50cyAmJiAhVl90Y3BfaW5pdGN3bmRfYnl0ZXMpCisJCWluaXRjd25kID0g
bWluKFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogbWF4c2VnLAorCQkgICAgbWF4KDIgKiBtYXhz
ZWcsIFZfdGNwX2luaXRjd25kX3NlZ21lbnRzICogMTQ2MCkpOworCWVsc2UgaWYgKFZfdGNwX2lu
aXRjd25kX2J5dGVzLCAhVl90Y3BfaW5pdGN3bmRfc2VnbWVudHMpCisJCWluaXRjd25kID0gbWlu
KFZfdGNwX2luaXRjd25kX2J5dGVzLAorCQkgICAgbWF4KDIgKiBtYXhzZWcsIFZfdGNwX2luaXRj
d25kX2J5dGVzKSk7CisJZWxzZSBpZiAoVl90Y3BfZG9fcmZjNjkyOCkKKwkJaW5pdGN3bmQgPSBt
aW4oMTAgKiBtYXhzZWcsIG1heCgyICogbWF4c2VnLCAxNDYwMCkpOworCWVsc2UgaWYgKFZfdGNw
X2RvX3JmYzMzOTApCisJCWluaXRjd25kID0gbWluKDQgKiBtYXhzZWcsIG1heCgyICogbWF4c2Vn
LCA0MzgwKSk7CisJZWxzZSB7CisJCS8qIFBlciBSRkM1NjgxIFNlY3Rpb24gMy4xICovCisJCWlm
IChtYXhzZWcgPiAyMTkwKQorCQkJaW5pdGN3bmQgPSAyICogbWF4c2VnOworCQllbHNlIGlmICht
YXhzZWcgPiAxMDk1KQorCQkJaW5pdGN3bmQgPSAzICogbWF4c2VnOworCQllbHNlCisJCQlpbml0
Y3duZCA9IDQgKiBtYXhzZWc7CisJfQorCisJcmV0dXJuIChpbml0Y3duZCk7Cit9CmRpZmYgLS1n
aXQgYS9zeXMvbmV0aW5ldC9jYy9jY19uZXdyZW5vLmMgYi9zeXMvbmV0aW5ldC9jYy9jY19uZXdy
ZW5vLmMKLS0tIGEvc3lzL25ldGluZXQvY2MvY2NfbmV3cmVuby5jCisrKyBiL3N5cy9uZXRpbmV0
L2NjL2NjX25ld3Jlbm8uYwpAQCAtMTUxLDcgKzE1MSw3IEBACiBzdGF0aWMgdm9pZAogbmV3cmVu
b19hZnRlcl9pZGxlKHN0cnVjdCBjY192YXIgKmNjdikKIHsKLQlpbnQgcnc7CisJdV9sb25nIHJ3
OwogCiAJLyoKIAkgKiBJZiB3ZSd2ZSBiZWVuIGlkbGUgZm9yIG1vcmUgdGhhbiBvbmUgcmV0cmFu
c21pdCB0aW1lb3V0IHRoZSBvbGQKQEAgLTE2NiwxMSArMTY2LDcgQEAKIAkgKgogCSAqIFNlZSBS
RkM1NjgxIFNlY3Rpb24gNC4xLiAiUmVzdGFydGluZyBJZGxlIENvbm5lY3Rpb25zIi4KIAkgKi8K
LQlpZiAoVl90Y3BfZG9fcmZjMzM5MCkKLQkJcncgPSBtaW4oNCAqIENDVihjY3YsIHRfbWF4c2Vn
KSwKLQkJICAgIG1heCgyICogQ0NWKGNjdiwgdF9tYXhzZWcpLCA0MzgwKSk7Ci0JZWxzZQotCQly
dyA9IENDVihjY3YsIHRfbWF4c2VnKSAqIDI7CisJcncgPSB0Y3BfaW5pdGN3bmQoY2N2LT5jY3Zj
LnRjcCwgQ0NWKGNjdiwgdF9tYXhzZWcpKTsKIAogCUNDVihjY3YsIHNuZF9jd25kKSA9IG1pbihy
dywgQ0NWKGNjdiwgc25kX2N3bmQpKTsKIH0KCg==


--b1_091477204b4256e1a1e0967da5332176--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-tiq6pccmtojpbvxymmza-req>