WDS (4addr) mode: basic throughput comparison between two-stream mt76/ath10k, two-stream and three-stream full mt76 setup

I'm sharing these numbers so people can get an idea what to expect of a mixed WDS (4addr) setup. I have been running this for a while, using the 802.11bgn radio as a dedicated backhaul (a bit of a poor man's mesh, so to speak). I'm sharing these numbers to give an idea, there's no thorough or systematic testing behind this.

  • It's a busy environment, lots of other radios, but 5 GHz is used for the actual clients. The clients on the receiving end of the WDS are of secondary importance. The WDS link covers maybe ~5m and goes through a wall and a wooden ceiling.
  • Recent master builds with mt76 2020-12-18-4a90fdf6-2.
  • Channel width is set to HT40, but not forced.
  • Both x86_64 client and server connected over the wire, each on one side of the WDS. Iperf server is on the RT-AC57U side, iperf client is wired to the WDS client AP.
  • Seven iperf3 runs, single stream.

Mixed setup: a mixed mt76/ath10k one

  • RT-AC57U (MT7603EN 2x2:2 radio) as WDS AP.
  • EA6350v3 (ath10k 2x2:2 radio) as a WDS client.

Note the EA6350v3 802.11bgn radio had issues earlier on, not sure if these have been solved by now. Number of retries is quite high (surely a lot higher than with the full MT76 setup).

Maximum attained speed: 55,5 Mbps.

Full log with final receiver/sender numbers
test-single-ath10k-1.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-1.log:[  6]   0.00-10.00  sec  45.3 MBytes  38.0 Mbits/sec  118             sender
test-single-ath10k-1.log:[  6]   0.00-10.05  sec  43.1 MBytes  36.0 Mbits/sec                  receiver
--
test-single-ath10k-2.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-2.log:[  6]   0.00-10.00  sec  25.6 MBytes  21.5 Mbits/sec   46             sender
test-single-ath10k-2.log:[  6]   0.00-10.07  sec  23.8 MBytes  19.9 Mbits/sec                  receiver
--
test-single-ath10k-3.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-3.log:[  5]   0.00-10.00  sec  44.2 MBytes  37.1 Mbits/sec    4             sender
test-single-ath10k-3.log:[  5]   0.00-10.08  sec  42.4 MBytes  35.3 Mbits/sec                  receiver
--
test-single-ath10k-4.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-4.log:[  5]   0.00-10.00  sec  41.7 MBytes  35.0 Mbits/sec  157             sender
test-single-ath10k-4.log:[  5]   0.00-10.07  sec  40.6 MBytes  33.8 Mbits/sec                  receiver
--
test-single-ath10k-5.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-5.log:[  5]   0.00-10.00  sec  60.3 MBytes  50.6 Mbits/sec    4             sender
test-single-ath10k-5.log:[  5]   0.00-10.08  sec  58.9 MBytes  49.0 Mbits/sec                  receiver
--
test-single-ath10k-6.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-6.log:[  5]   0.00-10.00  sec  66.2 MBytes  55.5 Mbits/sec   80             sender
test-single-ath10k-6.log:[  5]   0.00-10.14  sec  64.6 MBytes  53.4 Mbits/sec                  receiver
--
test-single-ath10k-7.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-ath10k-7.log:[  5]   0.00-10.00  sec  49.9 MBytes  41.9 Mbits/sec    7             sender
test-single-ath10k-7.log:[  5]   0.00-10.06  sec  47.5 MBytes  39.7 Mbits/sec                  receiver

MT76 setup #1: a full mt76 one

  • RT-AC57U (MT7603EN 2x2:2 radio) as WDS AP.
  • DIR-878 A1 (MT7615N 4x4:3 radio) as a WDS client.

Maximum attained speed: 100 Mbps (both directions; see details below).

Full log with final receiver/sender numbers

Desktop as client, home server as server

test-single-mt76-1.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-1.log:[  5]   0.00-10.00  sec   115 MBytes  96.7 Mbits/sec    6             sender
test-single-mt76-1.log:[  5]   0.00-10.05  sec   112 MBytes  93.8 Mbits/sec                  receiver
--
test-single-mt76-2.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-2.log:[  5]   0.00-10.00  sec   117 MBytes  98.0 Mbits/sec    8             sender
test-single-mt76-2.log:[  5]   0.00-10.05  sec   114 MBytes  95.3 Mbits/sec                  receiver
--
test-single-mt76-3.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-3.log:[  5]   0.00-10.00  sec   104 MBytes  87.0 Mbits/sec    6             sender
test-single-mt76-3.log:[  5]   0.00-10.05  sec   100 MBytes  83.5 Mbits/sec                  receiver
--
test-single-mt76-4.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-4.log:[  5]   0.00-10.00  sec  96.1 MBytes  80.6 Mbits/sec    7             sender
test-single-mt76-4.log:[  5]   0.00-10.05  sec  93.8 MBytes  78.3 Mbits/sec                  receiver
--
test-single-mt76-5.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-5.log:[  5]   0.00-10.00  sec   120 MBytes   100 Mbits/sec    6             sender
test-single-mt76-5.log:[  5]   0.00-10.06  sec   117 MBytes  97.2 Mbits/sec                  receiver
--
test-single-mt76-6.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-6.log:[  5]   0.00-10.00  sec  93.8 MBytes  78.7 Mbits/sec   16             sender
test-single-mt76-6.log:[  5]   0.00-10.04  sec  91.4 MBytes  76.4 Mbits/sec                  receiver
--
test-single-mt76-7.log-[ ID] Interval           Transfer     Bitrate         Retr
test-single-mt76-7.log:[  5]   0.00-10.00  sec   118 MBytes  99.1 Mbits/sec    6             sender
test-single-mt76-7.log:[  5]   0.00-10.06  sec   115 MBytes  95.5 Mbits/sec                  receiver

Desktop as server, home server as client
This looks very similar (same maximum throughput).

mt76-2-stream-server-to-desktop-1.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-1.log:[  5]   0.00-10.00  sec   116 MBytes  97.5 Mbits/sec    4             sender
mt76-2-stream-server-to-desktop-1.log-[  5]   0.00-10.06  sec   113 MBytes  94.3 Mbits/sec                  receiver
--
mt76-2-stream-server-to-desktop-2.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-2.log:[  5]   0.00-10.00  sec   113 MBytes  95.0 Mbits/sec    4             sender
mt76-2-stream-server-to-desktop-2.log-[  5]   0.00-10.06  sec   111 MBytes  92.3 Mbits/sec                  receiver
--
mt76-2-stream-server-to-desktop-3.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-3.log:[  5]   0.00-10.00  sec   116 MBytes  97.0 Mbits/sec    6             sender
mt76-2-stream-server-to-desktop-3.log-[  5]   0.00-10.06  sec   112 MBytes  93.6 Mbits/sec                  receiver
--
mt76-2-stream-server-to-desktop-4.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-4.log:[  5]   0.00-10.00  sec   114 MBytes  95.9 Mbits/sec    4             sender
mt76-2-stream-server-to-desktop-4.log-[  5]   0.00-10.06  sec   112 MBytes  93.2 Mbits/sec                  receiver
--
mt76-2-stream-server-to-desktop-5.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-5.log:[  5]   0.00-10.00  sec   114 MBytes  95.8 Mbits/sec    4             sender
mt76-2-stream-server-to-desktop-5.log-[  5]   0.00-10.06  sec   112 MBytes  93.3 Mbits/sec                  receiver
--
mt76-2-stream-server-to-desktop-6.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-2-stream-server-to-desktop-6.log:[  5]   0.00-10.00  sec   119 MBytes   100 Mbits/sec    4             sender
mt76-2-stream-server-to-desktop-6.log-[  5]   0.00-10.06  sec   116 MBytes  96.8 Mbits/sec                  receiver

MT76 setup #2: a full mt76 one with 2 MT7615N 3x3:3 radios (three-stream)

  • R6800 (MT7615N 3x3:3 radio) as WDS AP.
  • DIR-878 A1 (MT7615N 4x4:3 radio) as a WDS client.

The three-stream setup seems to make a tangible difference: throughput is almost double: 188 Mbps. Again, tests were run both ways but maximum attained speeds are almost identical (other way is 185 Mbps tops).

Full log with final receiver/sender numbers

Desktop as client, home server as server

mt76-3-stream-desktop-to-server-1.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-1.log:[  5]   0.00-10.00  sec   217 MBytes   182 Mbits/sec    6             sender
mt76-3-stream-desktop-to-server-1.log-[  5]   0.00-10.05  sec   214 MBytes   178 Mbits/sec                  receiver
--
mt76-3-stream-desktop-to-server-2.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-2.log:[  5]   0.00-10.00  sec   208 MBytes   175 Mbits/sec    4             sender
mt76-3-stream-desktop-to-server-2.log-[  5]   0.00-10.06  sec   206 MBytes   172 Mbits/sec                  receiver
--
mt76-3-stream-desktop-to-server-3.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-3.log:[  5]   0.00-10.00  sec   199 MBytes   167 Mbits/sec    6             sender
mt76-3-stream-desktop-to-server-3.log-[  5]   0.00-10.06  sec   197 MBytes   164 Mbits/sec                  receiver
--
mt76-3-stream-desktop-to-server-4.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-4.log:[  5]   0.00-10.00  sec   224 MBytes   188 Mbits/sec    4             sender
mt76-3-stream-desktop-to-server-4.log-[  5]   0.00-10.06  sec   222 MBytes   185 Mbits/sec                  receiver
--
mt76-3-stream-desktop-to-server-5.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-5.log:[  5]   0.00-10.00  sec   218 MBytes   183 Mbits/sec    6             sender
mt76-3-stream-desktop-to-server-5.log-[  5]   0.00-10.06  sec   216 MBytes   180 Mbits/sec                  receiver
--
mt76-3-stream-desktop-to-server-6.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-desktop-to-server-6.log:[  5]   0.00-10.00  sec   219 MBytes   183 Mbits/sec    6             sender
mt76-3-stream-desktop-to-server-6.log-[  5]   0.00-10.06  sec   216 MBytes   180 Mbits/sec                  receiver

Desktop as server, home server as client

mt76-3-stream-server-to-desktop-1.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-1.log:[  5]   0.00-10.00  sec   211 MBytes   177 Mbits/sec    6             sender
mt76-3-stream-server-to-desktop-1.log-[  5]   0.00-10.06  sec   208 MBytes   174 Mbits/sec                  receiver
--
mt76-3-stream-server-to-desktop-2.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-2.log:[  5]   0.00-10.00  sec   209 MBytes   175 Mbits/sec    6             sender
mt76-3-stream-server-to-desktop-2.log-[  5]   0.00-10.06  sec   206 MBytes   172 Mbits/sec                  receiver
--
mt76-3-stream-server-to-desktop-3.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-3.log:[  5]   0.00-10.00  sec   216 MBytes   181 Mbits/sec    6             sender
mt76-3-stream-server-to-desktop-3.log-[  5]   0.00-10.06  sec   212 MBytes   177 Mbits/sec                  receiver
--
mt76-3-stream-server-to-desktop-4.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-4.log:[  5]   0.00-10.00  sec   207 MBytes   173 Mbits/sec    6             sender
mt76-3-stream-server-to-desktop-4.log-[  5]   0.00-10.06  sec   204 MBytes   170 Mbits/sec                  receiver
--
mt76-3-stream-server-to-desktop-5.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-5.log:[  5]   0.00-10.00  sec   213 MBytes   179 Mbits/sec    4             sender
mt76-3-stream-server-to-desktop-5.log-[  5]   0.00-10.05  sec   210 MBytes   175 Mbits/sec                  receiver
--
mt76-3-stream-server-to-desktop-6.log-[ ID] Interval           Transfer     Bitrate         Retr
mt76-3-stream-server-to-desktop-6.log:[  5]   0.00-10.00  sec   219 MBytes   184 Mbits/sec    4             sender
mt76-3-stream-server-to-desktop-6.log-[  5]   0.00-10.05  sec   217 MBytes   181 Mbits/sec                  receiver
2 Likes

iperf3 measures speed only in one direction, and it is not clear from your post which AP which side was sending data. Please remeasure both ways.

I was mostly interested in download speeds, hence why they're just one way. The EA6350v3 is tucked away now, will run extra tests when I get the chance.

@patrakov I replaced one of my acces points and ran the tests again (and the other way on my old full MT76 setup). I have added the numbers.

At least with the MT76 setup it doesn't matter which way you run the test. What does seem to matter though (unsurprisingly) is the amount of streams; going from two to three streams nearly doubles the attained throughput.