Hacking on the rtl8366S

Dave Taht dave.taht at gmail.com
Fri Jun 3 08:28:31 EDT 2011


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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/bloat-devel/attachments/20110603/5df5bded/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtl8366_mac.patch
Type: text/x-diff
Size: 4494 bytes
Desc: not available
URL: <https://lists.bufferbloat.net/pipermail/bloat-devel/attachments/20110603/5df5bded/attachment-0002.patch>


More information about the Bloat-devel mailing list