Dumb AP: plugging in a 100Base eth device limits wifi to 100Mbps internet speed

The AP is a router converted to a AP. The details of what I did is in here: Converting a Wifi router to an access point/switch

What is the wifi standard and what is the MCS of the connection?

The actual throughput will be about half of the raw on-air bitrate from the MCS.

Both tests from the laptop and the smartphone, are 802.11 ac/n 5Ghz. I can't tell whether it is ac or n.
The bitrate as reported in Luci, for instance, for the smartphone, is 866.6 Mbit/s.

When I test the throughput from the wifi smartphone or the wifi laptop, to another wired computer within the same subnet, I get 330Mbps pretty consistently with iperf3. The wired computer being connected to the main router. The internet test from the wifi devices is also very consistent, giving ~94Mpbs down and ~104Mbps up.

What is MCS? The throughput per-se, as tested within the subnet crossing the AP and the main router, it is ~330Mbps. It is the traffic to the internet that it is weird. The internet test from all wired computers is 940Mpbs.

Just for the sake of testing, I ran all tests using ipv6 as well to make sure it wasn't it. IPv4 and IPv6 they both show the same behavior for local subnet crossing ap/main router testing, and internet crossing ap/main routering testing, and internet crossing main router testing.

I have also tested stopping the firewall in the AP (which is not doing anything because it is targetting wan and wn6 which no longer exist).

mk24 is referencing (just as it's seen on your wireless page) - how to describe each connection, it's modulation, rate, etc. This is the chart for 802.11ac (or WiFi 5).

See: https://en.wikipedia.org/wiki/IEEE_802.11ac-2013#Data_rates_and_speed

Example:
screen528

So I assume it's the Netgear?

Yes, it is the netgear. Before I turned it into a dumb ap, I recall getting the 300-400Mbps throughput. I have a back up copy of the previous configuration. I could roll it back but I really wanted to have it as an AP with all devices in the same subnet.

BTW, I also tested stopping the firewall in the AP just in case, but no difference.

Are you able to provide a screenshot of the MCS?

Yes,
image

It goes up and down, ... earlier when I mentioned it it was showing 866Mbit/s.

I was doubting it was the quality of the signal the problem because I get the 100Mbps consistently even close to the router, ... and also, I get consistently between 300-400Mbps when I test with iperf3 between the wifi device and a wired computer within the same subnet. I would expect that local test crossing the wifi AP -> main router -> wired computer to show also the <100Mbps, at least some times.

Is it still possible that the signal quality affects wifi ap <-> main router <-> internet, but not wifi ap <-> main router <-> local wired devices?

It almost looks like some sort of intentional QoS classification and limitations going on somewhere along the ways by some service.

Can you show the one of the device in question, like I showed you?

1 Like

What cat lan cable do you use for connection between router?
If you are using below cat 5e, then you will only get 100Mbps speed.

Make sure you're using minumum cat 5e or use Cat 6 for all LAN cable.

The test I did between routers directly gives me over 500Mbps. The negotiated speed between them at the ethernet level is 1000Mbps.

OK, I figured out something that can lead to the solution.

On the wifi AP, there is also a ooma device connected to one of the ethernet ports. The ooma device is a 100Mbps ethernet connection as reported by openwrt. As soon as I disconnected the Ooma, I was able to get consistently between 300-400Mbps to the internet in the wifi devices.

So, in summary, it seems like if the 100Mbps in the Ooma device was forcing the openwrt bridge to 100Mbps traffic, but only affecting traffic with IPs that were not in the same subnet (towards the Internet). Traffic within the same subnet, crossing the wifi ap into the main router to wired computers was giving a good throughput > 300Mbps.

I don't understand why such behavior.

This is the output of ip link. I wonder if it has to do with the queuing discipline setup.

ip link

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether da:89:ff:08:10:d2 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 16:23:82:9d:7e:44 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
5: lan1@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
6: lan2@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
7: lan3@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
8: lan4@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
9: wan@eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether 78:d2:94:0e:04:c2 brd ff:ff:ff:ff:ff:ff
10: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff
11: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP qlen 1000
    link/ether 78:d2:94:0e:04:c0 brd ff:ff:ff:ff:ff:ff
12: wlan2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br-lan state UP qlen 1000
    link/ether 78:d2:94:0e:04:bf brd ff:ff:ff:ff:ff:ff
15: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 78:d2:94:0e:04:c1 brd ff:ff:ff:ff:ff:ff

This is the ip link output of my main router:

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 64:62:66:21:cb:eb brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 64:62:66:21:cb:ec brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 64:62:66:21:cb:ed brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP qlen 1000
    link/ether 64:62:66:21:cb:ee brd ff:ff:ff:ff:ff:ff
6: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 64:62:66:21:cb:ec brd ff:ff:ff:ff:ff:ff

All ethX devices have a qdisc set, and it is mq.

However, in the wifi ap, the lan1-4 do not have any qdisc, but eth2 has one.

You can check LAN speed on br-lan interface

Or go to Network -> Switch

Thank you @alphamatic for the feedback, but that’s not the problem. Please see my previous posts.
I have updated the title of this thread to clarify the issue I am seeing at this point.

1 Like

I'm starting to think there is a bug in the switch driver. This should not be happening. That 100BASE device shouldn't be downgrading the entire bridge speed to 100Mbps even for the wifi devices.

cat /etc/config/wireless
cat /etc/config/network
  • Is Packet Steering enabled?

Are you saying local tests where >300 Mbps, and tests via the Internet were 100 Mbps?

I notice you never tell us the links speed of ports:

cat /sys/class/net/eth0/speed 
cat /sys/class/net/eth1/speed 
cat /sys/class/net/eth2/speed 
cat /sys/class/net/lan1/speed 
cat /sys/class/net/lan2/speed 
cat /sys/class/net/lan3/speed 
cat /sys/class/net/lan4/speed 
cat /sys/class/net/wan/speed 
cat /sys/class/net/br_lan/speed

I don't see any steering option setup in the wireless file, but I do see it in the network file:

config globals 'globals'
	option packet_steering '1'
	option ula_prefix 'fdc6:15c1:ebac::/48'

That is correct. The br-lan has the switch (lan1-4) and also had the wan port. The wan port was the one connected to the main router until last night. Last night I removed wan from the bridge and connected lan4 to the main router to see if it would do anything new, but I'm still seeing the same weird behavior: local testing crossing the wifi ap gives me 300-400Mbps, ... wifi device internet speed testing, 100Mbps, all wired computers 940Mpbs. I remove the ooma, and the wifi device internet speed testing goes back to 300-400Mbps (or even 500Mbps if I'm right beside the wifi ap).

# cat /sys/class/net/eth0/speed 
cat: read error: Invalid argument
# cat /sys/class/net/eth1/speed 
cat: read error: Invalid argument
# cat /sys/class/net/eth2/speed 
1000
# cat /sys/class/net/lan1/speed 
100
# cat /sys/class/net/lan2/speed 
-1
# cat /sys/class/net/lan3/speed 
-1
# cat /sys/class/net/lan4/speed 
1000
# cat /sys/class/net/wan/speed 
cat: read error: Invalid argument
# cat /sys/class/net/br-lan/speed
1000

lan1-4 are pointing to the eth2 device. lan1 has the 100BASE ooma device, and lan4 is connected to the main router.

Not sure if relevant but the flow control in lan1 where the ooma is, is off, so the speed is negotiated. The lan4 where the main router is, flow control is on.

# ethtool -a lan1
Pause parameters for lan1:
Autonegotiate:	on
RX:		off
TX:		off
RX negotiated:	off
TX negotiated:	off

Thank you @lleachii for looking into this.