From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-iy0-f171.google.com (mail-iy0-f171.google.com [209.85.210.171]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id B632B201A9A for ; Fri, 3 Jun 2011 05:10:27 -0700 (PDT) Received: by iyi20 with SMTP id 20so2132936iyi.16 for ; Fri, 03 Jun 2011 05:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=Eyq8uSviJhnhh3xzwQHkwtYncWjBTJoD5dzzxAut/6U=; b=f1cUahUCbrSOJWHBoz8ZqgQIr7S88vnnw6RX3WRDlSjCuUd2yNYpVYugosAV2cFMvE rar2fVWLBVSJ17YdZStUgzADBHVGe8Ab7nUDrl4IsoKoLY8+jhi9fzIjzGSwtsFXkUyn uhtNLRSt0deFgzGlqbrmMdAQ3dAVaZUOKd4rc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=do/uM5Z2jjUbL+2r8V/KU2QfelDJOuMfSMPOfcvPv8s70ZxZMgEAYHgUT+Ha0DBF7z ewXGg6TWyqLuonKu4HFahgD6uVQgPUn7aSLF/nEn2Yh2Z41lwiR0MnhHU7u8ZvUntL9l g7bUJr8Erzv2oPHsfyQymspyvF5BWTR2Q2eRQ= MIME-Version: 1.0 Received: by 10.231.187.165 with SMTP id cw37mr2494987ibb.88.1307104111477; Fri, 03 Jun 2011 05:28:31 -0700 (PDT) Received: by 10.231.13.76 with HTTP; Fri, 3 Jun 2011 05:28:31 -0700 (PDT) Date: Fri, 3 Jun 2011 06:28:31 -0600 Message-ID: Subject: Hacking on the rtl8366S From: Dave Taht To: Gabor Juhos , bloat-devel@lists.bufferbloat.net Content-Type: multipart/mixed; boundary=001636b2ad6a3fc43204a4cde434 X-BeenThere: bloat-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Developers working on AQM, device drivers, and networking stacks" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Jun 2011 12:10:28 -0000 --001636b2ad6a3fc43204a4cde434 Content-Type: multipart/alternative; boundary=001636b2ad6a3fc42204a4cde432 --001636b2ad6a3fc42204a4cde432 Content-Type: text/plain; charset=ISO-8859-1 I sat down to play with the rtl366S switch code (which is the one in the wndr3700) late last night. Attached is as far as I got, merely A) some new register definitions B) support for getting the ip/mac addr of the switch (I didn't remember the functions for printing them out of the kernel last night) C) changing the the default buffer size in the switch to >9k. I was pleased that I didn't blow anything up, and it compiled and ran the first time, and for all I know, it did some good (and is already in the cerowrt build at: http://huchra.bufferbloat.net/~cerowrt/cerowrt-wndr3700/ Which, of course, includes SFB, and nearly every other debloating trick we've come up with so far. ) So I thought I would sit down and explain what I'm trying to accomplish: 0) By *increasing* the per-packet buffer size, I hope that the enormous latencies (>100ms) in the switch I have been seeing, will reduce significantly. In other words, I'm starving the switch of ram it otherwise would use for buffering. (threads on this on the bloat lists, documentation on the bismark-testbed wiki). Gaining jumbo packet support out of it is just a bonus. 1) The switch has a mac address, which so far as I know, is unused. (the switch is bridged to the wireless interfaces, normally) I'd like to be ROUTING packets between wired and wireless, rather than switching them - at least for now - because it's really hard to make sense of some of the packet traces I've been seeing without separating the media they've been running on. 2) *Really* want port mirroring to work - similar reasons to point 1, above. 3) Interestingly, there is QoS on the switch, which supports diffserv. (as well as vlan or port based prioritization) 4) Various forms of flow control should be enable-able 5) With better per-port link state info, it might be possible to throttle or balance flows across those ports better. 6) There's probably other stuff worth doing Open questions: How to expose a QoS API to userspace? Similarly, port mirroring... How is the snmp mib interface supposed to work? --001636b2ad6a3fc42204a4cde432 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I sat down to play with the rtl366S
switch code (which is the one in the= wndr3700)
late last night.=A0 Attached is as far as I got, merely
<= br>A) some new register definitions

B) support for getting the ip/ma= c addr of the switch

(I didn't remember the functions for printing them out of the kerne= l last night)

C) changing the the default buffer size in the switch = to >9k.

I was pleased that I didn't blow anything up, and it = compiled and ran the first time, and for all I know, it did some good (and = is already in the cerowrt build at:

ht= tp://huchra.bufferbloat.net/~cerowrt/cerowrt-wndr3700/

Which, of= course, includes SFB, and nearly every other debloating trick we've co= me up with so far.
)


So I thought I would sit down and explain what I'm trying = to accomplish:

0) By *increasing* the per-packet buffer size, I hope= that the enormous latencies (>100ms) in the switch I have been seeing, = will reduce significantly.

In other words, I'm starving the switch of ram it otherwise would u= se for buffering.

(threads on this on the bloat lists, documentation= on the bismark-testbed wiki).

Gaining jumbo packet support out of = it is just a bonus.

1) The switch has a mac address, which so far as I know, is unused. (th= e switch is bridged to the wireless interfaces, normally)

I'd li= ke to be ROUTING packets between wired and wireless, rather than switching = them - at least for now - because it's really hard to make sense of som= e of the packet traces I've been seeing without separating the media th= ey've been running on.

2) *Really* want port mirroring to work - similar reasons to point 1, a= bove.

3)=A0 Interestingly, there is QoS on the switch, which suppor= ts diffserv. (as well as vlan or port based prioritization)

4) Vario= us forms of flow control should be enable-able

5) With better per-port link state info, it might be possible to thrott= le or balance flows across those ports better.

6) There's probab= ly other stuff worth doing

Open questions:

How to expose a Qo= S API to userspace?
Similarly, port mirroring...
How is the snmp mib interface supposed to w= ork?


--001636b2ad6a3fc42204a4cde432-- --001636b2ad6a3fc43204a4cde434 Content-Type: text/x-diff; charset=US-ASCII; name="rtl8366_mac.patch" Content-Disposition: attachment; filename="rtl8366_mac.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_goh39lad0 ZGlmZiAtLWdpdCBhL3RhcmdldC9saW51eC9nZW5lcmljL2ZpbGVzL2RyaXZlcnMvbmV0L3BoeS9y dGw4MzY2cy5jIGIvdGFyZ2V0L2xpbnV4L2dlbmVyaWMvZmlsZXMvZHJpdmVycy9uZXQvcGh5L3J0 bDgzNjZzLmMKaW5kZXggM2YzZDZmNi4uOTcyZTlhMiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2xpbnV4 L2dlbmVyaWMvZmlsZXMvZHJpdmVycy9uZXQvcGh5L3J0bDgzNjZzLmMKKysrIGIvdGFyZ2V0L2xp bnV4L2dlbmVyaWMvZmlsZXMvZHJpdmVycy9uZXQvcGh5L3J0bDgzNjZzLmMKQEAgLTIwLDcgKzIw LDcgQEAKICNpbmNsdWRlICJydGw4MzY2X3NtaS5oIgogCiAjZGVmaW5lIFJUTDgzNjZTX0RSSVZF Ul9ERVNDCSJSZWFsdGVrIFJUTDgzNjZTIGV0aGVybmV0IHN3aXRjaCBkcml2ZXIiCi0jZGVmaW5l IFJUTDgzNjZTX0RSSVZFUl9WRVIJIjAuMi4yIgorI2RlZmluZSBSVEw4MzY2U19EUklWRVJfVkVS CSIwLjIuMyIKIAogI2RlZmluZSBSVEw4MzY2U19QSFlfTk9fTUFYCTQKICNkZWZpbmUgUlRMODM2 NlNfUEhZX1BBR0VfTUFYCTcKQEAgLTQ2LDYgKzQ2LDU3IEBACiAjZGVmaW5lIFJUTDgzNjZTX1NT Q1IyCQkJCTB4MDAwNAogI2RlZmluZSBSVEw4MzY2U19TU0NSMl9EUk9QX1VOS05PV05fREEJCUJJ VCgwKQogCisvKiBQb3J0IE1pcnJvcmluZyAqLworCisvKiBUaGUgUlRMODM2Ni9SVEw4MzY5IHN1 cHBvcnRzIG9uZSBzZXQgb2YgcG9ydCBtaXJyb3JpbmcgCisgICBmdW5jdGlvbnMgZm9yIGFsbCA2 LzkgcG9ydHMuIFVzZXIgY291bGQKKyAgIG1vbml0b3IgYm90aCB0aGUgVFggYW5kIFJYIHBhY2tl dHMgb2YgdGhlIHNvdXJjZSBwb3J0IGZyb20gYSBtaXJyb3IgcG9ydC4gCisgICBUaGUgc291cmNl IHBvcnQgdG8gYmUKKyAgIG1pcnJvcmVkIGNhbiBiZSBzZWxlY3RlZCBpbiBTT1VSQ0VfUE9SVFsz OjBdIGluIFJlZ2lzdGVyIFBNQ1IgKDB4MDAwNykuIAorICAgVGhlIG1vbml0b3IgcG9ydCBjYW4g YmUKKyAgIHNlbGVjdGVkIGluIE1PTklUT1JfUE9SVFszOjBdIGluIFJlZ2lzdGVyIFBNQ1IgKDB4 MDAwNykuCisgICBNSVJST1JfVFggYW5kIE1JUlJPUl9SWCBpbiBSZWdpc3RlciBQTUNSICgweDAw MDcpIGFyZSB1c2VkIHRvIHNlbGVjdCAKKyAgIHRoZSBUWCBvciBSWCBwYWNrZXRzCisgICBvZiB0 aGUgc291cmNlIHBvcnQgdG8gYmUgbWlycm9yZWQuIAorICAgSWYgTUlSUk9SX0lTTyBpbiBSZWdp c3RlciBQTUNSICgweDAwMDcpIGlzIGVuYWJsZWQsIHRoZSBtb25pdG9yCisgICBwb3J0IG9ubHkg Zm9yd2FyZHMgdGhlIFRYIG9yIFJYIHBhY2tldHMgb2YgdGhlIHNvdXJjZSBwb3J0LiAKKyAgIEFu eSBvdGhlciBwYWNrZXRzIGRlc3RpbmVkIGZvciB0aGUgbW9uaXRvciBwb3J0IHdpbGwgYmUgZHJv cHBlZC4gCisgICBXaGVuIE1JUlJPUl9TUEMgaW4gUmVnaXN0ZXIgUE1DUiAoMHgwMDA3KSBpcyBl bmFibGVkLAorICAgUGF1c2UgcGFja2V0cyByZWNlaXZlZCBieSB0aGUgc291cmNlIHBvcnQgd2ls bCBiZSBmb3J3YXJkZWQgdG8gdGhlIAorICAgbW9uaXRvciBwb3J0LgorCisKKyovCisKKyNkZWZp bmUgUlRMODM2NlNfUE1DUiAJCQkJMHgwMDA3CisKKyNkZWZpbmUgUlRMODM2NlNfTUlSUk9SX1NP VVJDRV9QT1JUIDAKKyNkZWZpbmUgUlRMODM2NlNfTUlSUk9SX01PTklUT1JfUE9SVCA0CisjZGVm aW5lIFJUTDgzNjZTX01JUlJPUl9SWCBCSVQoOCkKKyNkZWZpbmUgUlRMODM2NlNfTUlSUk9SX1RY IEJJVCg5KQorI2RlZmluZSBSVEw4MzY2U19NSVJST1JfSVNPIEJJVCgxMSkKKyNkZWZpbmUgUlRM ODM2NlNfTUlSUk9SX1NQQyBCSVQoMTApCisKKy8qIFFvUyBDb250cm9sIFJlZ2lzdGVycyAqLwor I2RlZmluZSBSVEw4MzY2U19RQ1IwCQkJCTB4MDAwOQorCisvKiBRQ1IxIGNvbnRyb2xzIHBvcnQg YmFzZWQgcHJpb3JpdHkgKi8KKyNkZWZpbmUgUlRMODM2NlNfUUNSMQkJCQkweDAwMEEKKworLyog UUNSMi01IGFyZSB0aGVyZSBmb3IgZGlmZnNlcnYgKi8KKyNkZWZpbmUgUlRMODM2NlNfUUNSMgkJ CQkweDAwMEIKKyNkZWZpbmUgUlRMODM2NlNfUUNSMwkJCQkweDAwMEMKKyNkZWZpbmUgUlRMODM2 NlNfUUNSNAkJCQkweDAwMEQKKyNkZWZpbmUgUlRMODM2NlNfUUNSNQkJCQkweDAwMEUKKworI2Rl ZmluZSBSVEw4MzY2U19FTl9RT1MgCQkJQklUKDApCisjZGVmaW5lIFJUTDgzNjZTX0VOX1BPUlRf UFJJIAkJCUJJVCgyKQorI2RlZmluZSBSVEw4MzY2U19FTl9EU19QUkkgCQkJQklUKDMpCisjZGVm aW5lIFJUTDgzNjZTX0VOXzFRX1BSSQkJCUJJVCg0KQorCisvKiBiaXRzIDcmNiBjb250cm9sIHRo ZSB3ZWlnaHQgKi8KKyNkZWZpbmUgUlRMODM2NlNfUVVFVUVfV0VJR0hUIDcgCisKICNkZWZpbmUg UlRMODM2NlNfUkVTRVRfQ1RSTF9SRUcJCQkweDAxMDAKICNkZWZpbmUgUlRMODM2NlNfQ0hJUF9D VFJMX1JFU0VUX0hXCQkxCiAjZGVmaW5lIFJUTDgzNjZTX0NISVBfQ1RSTF9SRVNFVF9TVwkJKDEg PDwgMSkKQEAgLTU1LDYgKzEwNiwxNSBAQAogI2RlZmluZSBSVEw4MzY2U19DSElQX0lEX1JFRwkJ CTB4MDEwNQogI2RlZmluZSBSVEw4MzY2U19DSElQX0lEXzgzNjYJCQkweDgzNjYKIAorLyogU3dp dGNoIE1BQyBBbmQgSVAgQWRkciAqLworCisjZGVmaW5lIFJUTDgzNjZTX1NNQVIwCQkJCTB4MDA0 NgorI2RlZmluZSBSVEw4MzY2U19TTUFSMQkJCQkweDAwNDcKKyNkZWZpbmUgUlRMODM2NlNfU01B UjIJCQkJMHgwMDQ4CisKKyNkZWZpbmUgUlRMODM2NlNfU1dfSVAwCQkJCTB4MDA0RAorI2RlZmlu ZSBSVEw4MzY2U19TV19JUDEJCQkweDAwNEUKKwogLyogUEhZIHJlZ2lzdGVycyBjb250cm9sICov CiAjZGVmaW5lIFJUTDgzNjZTX1BIWV9BQ0NFU1NfQ1RSTF9SRUcJCTB4ODAyOAogI2RlZmluZSBS VEw4MzY2U19QSFlfQUNDRVNTX0RBVEFfUkVHCQkweDgwMjkKQEAgLTI2Myw5ICszMjMsOSBAQCBz dGF0aWMgaW50IHJ0bDgzNjZzX2h3X2luaXQoc3RydWN0IHJ0bDgzNjZfc21pICpzbWkpCiAJCQkg ICAgICAgcGRhdGEtPmluaXR2YWxzW2ldLnZhbCk7CiAJfQogCi0JLyogc2V0IG1heGltdW0gcGFj a2V0IGxlbmd0aCB0byAxNTM2IGJ5dGVzICovCisJLyogc2V0IG1heGltdW0gcGFja2V0IGxlbmd0 aCB0byAxNjAwMCBieXRlcyAqLwogCVJFR19STVcoc21pLCBSVEw4MzY2U19TR0NSLCBSVEw4MzY2 U19TR0NSX01BWF9MRU5HVEhfTUFTSywKLQkJUlRMODM2NlNfU0dDUl9NQVhfTEVOR1RIXzE1MzYp OworCQlSVEw4MzY2U19TR0NSX01BWF9MRU5HVEhfMTYwMDApOwogCiAJLyogZW5hYmxlIGxlYXJu aW5nIGZvciBhbGwgcG9ydHMgKi8KIAlSRUdfV1Ioc21pLCBSVEw4MzY2U19TU0NSMCwgMCk7CkBA IC02OTAsNiArNzUwLDIxIEBAIHN0YXRpYyBpbnQgcnRsODM2NnNfc3dfc2V0X2xlYXJuaW5nX2Vu YWJsZShzdHJ1Y3Qgc3dpdGNoX2RldiAqZGV2LAogfQogCiAKK3N0YXRpYyBpbnQgcnRsXzgzNjZz X2dldF9pcChzdHJ1Y3QgcnRsODM2Nl9zbWkgKnNtaSkgeworICB1MzIgYSwgYjsKKyAgcnRsODM2 Nl9zbWlfcmVhZF9yZWcoc21pLFJUTDgzNjZTX1NXX0lQMCwmYSk7CisgIHJ0bDgzNjZfc21pX3Jl YWRfcmVnKHNtaSxSVEw4MzY2U19TV19JUDEsJmIpOworICByZXR1cm4oYSB8IGIgPDwgMTYpOwor fQorCitzdGF0aWMgdTY0IHJ0bF84MzY2c19nZXRfbWFjKHN0cnVjdCBydGw4MzY2X3NtaSAqc21p KSB7CisgIHU2NCBhLCBiLCBjOworICBydGw4MzY2X3NtaV9yZWFkX3JlZyhzbWksUlRMODM2NlNf U01BUjAsJmEpOworICBydGw4MzY2X3NtaV9yZWFkX3JlZyhzbWksUlRMODM2NlNfU01BUjEsJmIp OworICBydGw4MzY2X3NtaV9yZWFkX3JlZyhzbWksUlRMODM2NlNfU01BUjIsJmMpOworICByZXR1 cm4oYSB8IGIgPDwgMTYgfCBjIDw8IDMyKTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgKnJ0bDgz NjZzX3NwZWVkX3N0cih1bnNpZ25lZCBzcGVlZCkKIHsKIAlzd2l0Y2ggKHNwZWVkKSB7CkBAIC0x MDAxLDYgKzEwNzYsOSBAQCBzdGF0aWMgaW50IHJ0bDgzNjZzX2RldGVjdChzdHJ1Y3QgcnRsODM2 Nl9zbWkgKnNtaSkKIHsKIAl1MzIgY2hpcF9pZCA9IDA7CiAJdTMyIGNoaXBfdmVyID0gMDsKKwl1 MzIgaXAgPSAwOworCXU2NCBtYWMgPSAwOworCiAJaW50IHJldDsKIAogCXJldCA9IHJ0bDgzNjZf c21pX3JlYWRfcmVnKHNtaSwgUlRMODM2NlNfQ0hJUF9JRF9SRUcsICZjaGlwX2lkKTsKQEAgLTEw MjcsNiArMTEwNSwxMSBAQCBzdGF0aWMgaW50IHJ0bDgzNjZzX2RldGVjdChzdHJ1Y3QgcnRsODM2 Nl9zbWkgKnNtaSkKIAlkZXZfaW5mbyhzbWktPnBhcmVudCwgIlJUTCUwNHggdmVyLiAldSBjaGlw IGZvdW5kXG4iLAogCQkgY2hpcF9pZCwgY2hpcF92ZXIgJiBSVEw4MzY2U19DSElQX1ZFUlNJT05f TUFTSyk7CiAKKwlpcCA9IHJ0bF84MzY2c19nZXRfaXAoc21pKTsKKwltYWMgPSBydGxfODM2NnNf Z2V0X21hYyhzbWkpOworCisJZGV2X2luZm8oc21pLT5wYXJlbnQsICJTd2l0Y2ggTWFjOiAlbGQs IFN3aXRjaCBJUDogJWRcbiIsIG1hYywgaXApOworCiAJcmV0dXJuIDA7CiB9CiAK --001636b2ad6a3fc43204a4cde434--