I sat down to play with the rtl366S<br>switch code (which is the one in the wndr3700)<br>late last night. Attached is as far as I got, merely <br><br>A) some new register definitions<br><br>B) support for getting the ip/mac addr of the switch<br>
<br>(I didn't remember the functions for printing them out of the kernel last night)<br><br>C) changing the the default buffer size in the switch to >9k.<br><br>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:<br>
<br><a href="http://huchra.bufferbloat.net/~cerowrt/cerowrt-wndr3700/">http://huchra.bufferbloat.net/~cerowrt/cerowrt-wndr3700/</a><br><br>Which, of course, includes SFB, and nearly every other debloating trick we've come up with so far.<br>
)<br><br><br>So I thought I would sit down and explain what I'm trying to accomplish:<br><br>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. <br>
<br>In other words, I'm starving the switch of ram it otherwise would use for buffering.<br><br>(threads on this on the bloat lists, documentation on the bismark-testbed wiki). <br><br>Gaining jumbo packet support out of it is just a bonus.<br>
<br>1) The switch has a mac address, which so far as I know, is unused. (the switch is bridged to the wireless interfaces, normally)<br><br>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.<br>
<br>2) *Really* want port mirroring to work - similar reasons to point 1, above. <br><br>3) Interestingly, there is QoS on the switch, which supports diffserv. (as well as vlan or port based prioritization)<br><br>4) Various forms of flow control should be enable-able<br>
<br>5) With better per-port link state info, it might be possible to throttle or balance flows across those ports better.<br><br>6) There's probably other stuff worth doing<br><br>Open questions:<br><br>How to expose a QoS API to userspace?<br>
Similarly, port mirroring...<br>How is the snmp mib interface supposed to work?<br><br><br>