Date: Tue, 24 Jul 2001 23:19:57 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: <arch@freebsd.org>, <net@freebsd.org> Subject: TCP sequence numbers: RFC1948 patch ready for testing Message-ID: <20010724230813.A31803-200000@achilles.silby.com>
next in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-155072002-996034797=:31803 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello all, the RFC1948-like sequence number generation patch is ready for testing. The patch included will apply cleanly to both a recent -current and a recent -stable. I've spent a good deal of time looking at tcpdump logs, and it looks good to me. Please test and review this if you feel comfortable doing so. If you do not feel comfortable doing so, please simply test it instead. :) When testing, please try both with net.inet.tcp.tcp_seq_genscheme set to 0 and 1. 0 Uses the RFC1948 scheme for generating all ISNs, 1 uses RFC1948 only for outgoing SYN; SYN-ACKs are filled with random values instead. I'd like to leave this selectable, with the default to 1. 1 is slightly faster, while 0 may feel more comfortable to some users. Both schemes should work equally well, so please test both. I've changed the RFC1948 algorithm slightly, by adding a random offset. Please look this over carefully when reviewing. Note that this patch is _functionally_ complete, but does not yet remove cruft from other generation schemes; I will do this in the final version of the patch. Enjoy! Mike "Silby" Silbersack --0-155072002-996034797=:31803 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rfc1948seq.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20010724231957.R31803@achilles.silby.com> Content-Description: Content-Disposition: attachment; filename="rfc1948seq.patch" ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfaW5wdXQuYyBuZXRpbmV0L3Rj cF9pbnB1dC5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX2lucHV0LmMJVGh1IEp1 bCAxOSAyMDo0NTowMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfaW5wdXQuYwlG cmkgSnVsIDIwIDIyOjM4OjE4IDIwMDENCkBAIC0xMTM1LDcgKzExMzUsNyBA QA0KIAkJaWYgKGlzcykNCiAJCQl0cC0+aXNzID0gaXNzOw0KIAkJZWxzZSB7 DQotCQkJdHAtPmlzcyA9IHRjcF9uZXdfaXNuKCk7DQorCQkJdHAtPmlzcyA9 IHRjcF9uZXdfaXNuKHRwKTsNCiAgCQl9DQogCQl0cC0+aXJzID0gdGgtPnRo X3NlcTsNCiAJCXRjcF9zZW5kc2VxaW5pdCh0cCk7DQpAQCAtMTY2Nyw3ICsx NjY3LDcgQEANCiAJCQlpZiAodGhmbGFncyAmIFRIX1NZTiAmJg0KIAkJCSAg ICB0cC0+dF9zdGF0ZSA9PSBUQ1BTX1RJTUVfV0FJVCAmJg0KIAkJCSAgICBT RVFfR1QodGgtPnRoX3NlcSwgdHAtPnJjdl9ueHQpKSB7DQotCQkJCWlzcyA9 IHRjcF9uZXdfaXNuKCk7DQorCQkJCWlzcyA9IHRjcF9uZXdfaXNuKHRwKTsN CiAJCQkJdHAgPSB0Y3BfY2xvc2UodHApOw0KIAkJCQlnb3RvIGZpbmRwY2I7 DQogCQkJfQ0KZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3Bfc3Vici5jIG5l dGluZXQvdGNwX3N1YnIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF9zdWJyLmMJ VGh1IEp1bCAxOSAyMDo0NTowMSAyMDAxDQorKysgbmV0aW5ldC90Y3Bfc3Vi ci5jCU1vbiBKdWwgMjMgMjE6NTk6NTMgMjAwMQ0KQEAgLTk4LDYgKzk4LDcg QEANCiAjZW5kaWYgLypJUFNFQyovDQogDQogI2luY2x1ZGUgPG1hY2hpbmUv aW5fY2tzdW0uaD4NCisjaW5jbHVkZSA8c3lzL21kNS5oPg0KIA0KIGludCAJ dGNwX21zc2RmbHQgPSBUQ1BfTVNTOw0KIFNZU0NUTF9JTlQoX25ldF9pbmV0 X3RjcCwgVENQQ1RMX01TU0RGTFQsIG1zc2RmbHQsIENUTEZMQUdfUlcsIA0K QEAgLTExMTIsMjQgKzExMTMsOTIgQEANCiB9DQogI2VuZGlmIC8qIElORVQ2 ICovDQogDQorLyoNCisgKiBGb2xsb3dpbmcgaXMgd2hlcmUgVENQIGluaXRp YWwgc2VxdWVuY2UgbnVtYmVyIGdlbmVyYXRpb24gb2NjdXJzLg0KKyAqIEZv ciBJU05zIGluIFNZTi1BQ0sgcGFja2V0cywgd2UgdXNlIHRoZSBvdXRwdXQg ZnJvbSBhcmM0cmFuZG9tKCk7DQorICogdGhlcmUgaXMgbm8gbW9udG9uaWNp dHkgcmVxdWlyZW1lbnQgZm9yIElTTnMgaW4gU1lOLUFDSyBwYWNrZXRzLA0K KyAqIGFuZCB0aGV5IHNob3VsZCBiZSBhcyByYW5kb20gYXMgcG9zc2libGUg dG8gYXZvaWQgc3Bvb2ZpbmcgYXR0YWNrcy4NCisgKg0KKyAqIFdoZW4gd2Ug c2VuZCBJU05zIGluIG91dGdvaW5nIFNZTiBwYWNrZXRzLCB3ZSBtdXN0IGVu c3VyZSBtb25vdG9uaWNpdHkNCisgKiBzbyB0aGF0IFRJTUVfV0FJVCByZWN5 Y2xpbmcgd29ya3MgcHJvcGVybHkgb24gdGhlIGhvc3RzIHdlIGFyZQ0KKyAq IGNvbm5lY3RpbmcgdG8uICBUbyBtZWV0IHRoaXMgcmVxdWlyZW1lbnQgd2hp bGUgc3RpbGwgYmVpbmcNCisgKiB1bnByZWRpY3RhYmxlLCB3ZSB1c2UgYSBt b2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBhbGdvcml0aG0gc3BlY2lmaWVkDQor ICogaW4gUkZDIDE5NDguDQorICoNCisgKiBUaGUgYWxnb3JpdGhtIGlzIGFz IGZvbGxvd3M6DQorICogSVNOID0gVGltZSArIGlzbl9vZmZzZXQgKyBtZDUo ZnBvcnQsIGxwb3J0LCBmYWRkciwgbGFkZHIsIHNlY3JldCkNCisgKiANCisg KiBUaW1lIGlzIGJhc2VkIG9mZiB0aGUgc3lzdGVtIHRpbWVyLCBhbmQgaXMg Y29ycmVjdGVkIHNvIHRoYXQgaXQNCisgKiBpbmNyZWFzZXMgYnkgb25lIG1l Z2FieXRlIHBlciBzZWNvbmQuICBUaGlzIGFsbG93cyBmb3IgcHJvcGVyDQor ICogcmVjeWNsaW5nIG9uIGhpZ2ggc3BlZWQgTEFOcyB3aGlsZSBzdGlsbCBs ZWF2aW5nIG92ZXIgYW4gaG91cg0KKyAqIGJlZm9yZSByb2xsb3Zlci4NCisg Kg0KKyAqIGlzbl9vZmZzZXQgaXMgYSByYW5kb20gdmFsdWUgY2hhbmdlZCB3 aGVuZXZlciBzZWNyZXQgaXMgY2hhbmdlZC4NCisgKiBUaGUgcHVycG9zZSBv ZiB0aGlzIHZhbHVlIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBleGFjdCBv dXRwdXQNCisgKiBvZiB0aGUgaGFzaCBmdW5jdGlvbiBjYW5ub3QgYmUgZGV0 ZXJtaW5lZC4gIElmIHRoaXMgd2FzIG5vdCBwcmVzZW50LA0KKyAqIGl0IHdv dWxkIGJlIGEgc2ltcGxlIG1hdHRlciB0byBzdWJ0cmFjdCB0aW1lIGZyb20g dGhlIElTTiBhbmQNCisgKiBsYXVuY2ggYSBicnV0ZS1mb3JjZSBhdHRhY2sg b24gdGhlIHNlY3JldCBvZiB0aGUgaGFzaC4gIFRoaXMNCisgKiBhdHRhY2sg c2hvdWxkIG5vdyBiZSBtdWNoIHRvdWdoZXIuICAoaXNuX29mZnNldCBpcyBu b3QgcGFydA0KKyAqIG9mIHRoZSBzcGVjIG91dGxpbmVkIGluIFJGQyAxOTQ4 LikNCisgKg0KKyAqIFRoZSBtZDUgaGFzaCBpcyB3aGF0IHNlcGVyYXRlcyB0 aGUgSVNOIHNwYWNlIG9mIGV2ZXJ5IGNvbm5lY3Rpb24uDQorICogQXMgbG9u ZyBhcyB0aGUgc2VjcmV0IHJlbWFpbnMgc2VjcmV0LCBpdCBzaG91bGQgYmUg dmlydHVhbGx5DQorICogaW1wb3NzaWJsZSBmb3IgYW55b25lIHRvIGd1ZXNz IHRoZSBzZXF1ZW5jZSBzcGFjZSBvZiBhbnkgb3RoZXINCisgKiBjb25uZWN0 aW9uLiAgVGhlIHNlY3JldCBpcyBjaGFuZ2VkIGhvdXJseSB0byBlbnN1cmUg dGhhdCANCisgKiBhIGJydXRlIGZvcmNlIGF0dGFjayBvbiB0aGUgc2VjcmV0 IHdpbGwgbm90IGJlIHBvc3NpYmxlIGluDQorICogdGhlIG5lYXIgZnV0dXJl Lg0KKyAqDQorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBhbGdv cml0aG0sIHBsZWFzZSBzZWUgUkZDIDE5NDguDQorICovDQorDQorI2RlZmlu ZSBJU05fUkVTRUVEX0lOVFZMIDM2MDANCisjZGVmaW5lIElTTl9CWVRFU19Q RVJfU0VDT05EIDEwNDg1NzYNCisNCitpbnQgaXNuX3Jlc2VlZF90aW1lOw0K K3VfY2hhciBpc25fc2VjcmV0WzMyXTsNCit1X2ludDMyX3QgaXNuX29mZnNl dDsNCisNCiB0Y3Bfc2VxDQotdGNwX25ld19pc24oKQ0KK3RjcF9uZXdfaXNu KHRwKQ0KKwlzdHJ1Y3QgdGNwY2IgKnRwOw0KIHsNCi0JaWYgKCh0Y3Bfc2Vx X2dlbnNjaGVtZSA+IDEpIHx8ICh0Y3Bfc2VxX2dlbnNjaGVtZSA8IDApKQ0K LQkJdGNwX3NlcV9nZW5zY2hlbWUgPSAxOw0KLQ0KLQlzd2l0Y2ggKHRjcF9z ZXFfZ2Vuc2NoZW1lKSB7DQotCQljYXNlIDA6CS8qDQotCQkJICogUmFuZG9t IHBvc2l0aXZlIGluY3JlbWVudHMNCi0JCQkgKi8NCi0JCQl0Y3BfaXNzICs9 IFRDUF9JU1NJTkNSLzI7DQotCQkJcmV0dXJuIHRjcF9pc3M7DQotCQljYXNl IDE6CS8qDQotCQkJICogT3BlbUJTRCByYW5kb21pemVkIHNjaGVtZQ0KLQkJ CSAqLw0KLQkJCXJldHVybiB0Y3Bfcm5kaXNzX25leHQoKTsNCitNRDVfQ1RY IGN0eDsNCit1X2ludDMyX3QgbWQ1X2J1ZmZlcls0XTsNCit0Y3Bfc2VxIG5l d19pc247DQorDQorCWlmIChpc25fcmVzZWVkX3RpbWUgPCB0aWNrcykgew0K KwkJLyogUmVzZWVkIHRoZSBzZWNyZXQgYW5kIG9mZnNldC4gKi8NCisJCXJl YWRfcmFuZG9tKCZpc25fb2Zmc2V0LCBzaXplb2YodV9pbnQzMl90KSk7DQor CQlyZWFkX3JhbmRvbSgmaXNuX3NlY3JldCwgc2l6ZW9mKGlzbl9zZWNyZXQp KTsNCisJCWlzbl9yZXNlZWRfdGltZSA9IHRpY2tzICsgKElTTl9SRVNFRURf SU5UVkwgKiBoeik7DQogCX0NCiANCisJaWYgKCgodHAtPnRfc3RhdGUgPT0g VENQU19MSVNURU4pIHx8ICh0cC0+dF9zdGF0ZSA9PSBUQ1BTX1RJTUVfV0FJ VCkpDQorCSAgICYmIHRjcF9zZXFfZ2Vuc2NoZW1lID09IDEpDQorCQlyZXR1 cm4gYXJjNHJhbmRvbSgpOw0KKwlNRDVJbml0KCZjdHgpOw0KKwlNRDVVcGRh dGUoJmN0eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmlucF9mcG9ydCwg c2l6ZW9mKHVfc2hvcnQpKTsNCisJTUQ1VXBkYXRlKCZjdHgsICh1X2NoYXIg KikgJnRwLT50X2lucGNiLT5pbnBfbHBvcnQsIHNpemVvZih1X3Nob3J0KSk7 DQorI2lmZGVmIElORVQ2DQorCWlmICgodHAtPnRfaW5wY2ItPmlucF92Zmxh ZyAmIElOUF9JUFY2KSAhPSAwKSB7DQorCQlNRDVVcGRhdGUoJmN0eCwgKHVf Y2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBfZmFkZHIsDQorCQkJICBzaXpl b2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCQlNRDVVcGRhdGUoJmN0eCwgKHVf Y2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBfbGFkZHIsDQorCQkJICBzaXpl b2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCX0gZWxzZQ0KKyNlbmRpZg0KKwkJ ew0KKwkJTUQ1VXBkYXRlKCZjdHgsICh1X2NoYXIgKikgJnRwLT50X2lucGNi LT5pbnBfZmFkZHIsDQorCQkJICBzaXplb2Yoc3RydWN0IGluX2FkZHIpKTsN CisJCU1ENVVwZGF0ZSgmY3R4LCAodV9jaGFyICopICZ0cC0+dF9pbnBjYi0+ aW5wX2xhZGRyLA0KKwkJCSAgc2l6ZW9mKHN0cnVjdCBpbl9hZGRyKSk7DQor CX0NCisJTUQ1VXBkYXRlKCZjdHgsICh1X2NoYXIgKikgJmlzbl9zZWNyZXQs IHNpemVvZihpc25fc2VjcmV0KSk7DQorCU1ENUZpbmFsKCh1X2NoYXIgKikg Jm1kNV9idWZmZXIsICZjdHgpOw0KKwluZXdfaXNuID0gKHRjcF9zZXEpIG1k NV9idWZmZXJbMF07DQorCW5ld19pc24gKz0gdGlja3MgKiAoSVNOX0JZVEVT X1BFUl9TRUNPTkQgLyBoeik7DQorCW5ld19pc24gKz0gaXNuX29mZnNldDsN CisJcmV0dXJuIG5ld19pc247DQogfQ0KIA0KICNkZWZpbmUgVENQX1JORElT U19ST1VORFMJMTYNCmRpZmYgLXUgLXIgbmV0aW5ldC5vbGQvdGNwX3VzcnJl cS5jIG5ldGluZXQvdGNwX3VzcnJlcS5jDQotLS0gbmV0aW5ldC5vbGQvdGNw X3VzcnJlcS5jCVRodSBKdWwgMTkgMjA6NDU6MDEgMjAwMQ0KKysrIG5ldGlu ZXQvdGNwX3VzcnJlcS5jCUZyaSBKdWwgMjAgMjI6Mzg6MjggMjAwMQ0KQEAg LTc1OCw3ICs3NTgsNyBAQA0KIAl0Y3BzdGF0LnRjcHNfY29ubmF0dGVtcHQr KzsNCiAJdHAtPnRfc3RhdGUgPSBUQ1BTX1NZTl9TRU5UOw0KIAljYWxsb3V0 X3Jlc2V0KHRwLT50dF9rZWVwLCB0Y3Bfa2VlcGluaXQsIHRjcF90aW1lcl9r ZWVwLCB0cCk7DQotCXRwLT5pc3MgPSB0Y3BfbmV3X2lzbigpOw0KKwl0cC0+ aXNzID0gdGNwX25ld19pc24odHApOw0KIAl0Y3Bfc2VuZHNlcWluaXQodHAp Ow0KIA0KIAkvKg0KQEAgLTg0NCw3ICs4NDQsNyBAQA0KIAl0Y3BzdGF0LnRj cHNfY29ubmF0dGVtcHQrKzsNCiAJdHAtPnRfc3RhdGUgPSBUQ1BTX1NZTl9T RU5UOw0KIAljYWxsb3V0X3Jlc2V0KHRwLT50dF9rZWVwLCB0Y3Bfa2VlcGlu aXQsIHRjcF90aW1lcl9rZWVwLCB0cCk7DQotCXRwLT5pc3MgPSB0Y3BfbmV3 X2lzbigpOw0KKwl0cC0+aXNzID0gdGNwX25ld19pc24odHApOw0KIAl0Y3Bf c2VuZHNlcWluaXQodHApOw0KIA0KIAkvKg0KZGlmZiAtdSAtciBuZXRpbmV0 Lm9sZC90Y3BfdmFyLmggbmV0aW5ldC90Y3BfdmFyLmgNCi0tLSBuZXRpbmV0 Lm9sZC90Y3BfdmFyLmgJVGh1IEp1bCAxOSAyMDo0NTowMSAyMDAxDQorKysg bmV0aW5ldC90Y3BfdmFyLmgJVGh1IEp1bCAxOSAyMDo0NjowMSAyMDAxDQpA QCAtNDE0LDcgKzQxNCw3IEBADQogdGNwX3NlcQl0Y3Bfcm5kaXNzX25leHQg X19QKCh2b2lkKSk7DQogdV9pbnQxNl90DQogCXRjcF9ybmRpc3NfZW5jcnlw dCBfX1AoKHVfaW50MTZfdCkpOw0KLXRjcF9zZXEgdGNwX25ld19pc24gX19Q KCh2b2lkKSk7DQordGNwX3NlcSB0Y3BfbmV3X2lzbiBfX1AoKHN0cnVjdCB0 Y3BjYiAqKSk7DQogDQogI2VuZGlmIC8qIF9LRVJORUwgKi8NCiANCg== --0-155072002-996034797=:31803-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010724230813.A31803-200000>