Possible PHY issue on hAP ax S - ports 2–5 require forced 10BASE-T

After 4 hours of debugging, replacing cables, playing with configs, I can conclude that:

  1. When I connect a Samsung TV (2020) to ether2, 3, 4, 5 on my hAP ax S, the connection works only if I force it on 10M-baseT-full from the router’s config. 10M-baseT-half also works, but with lots of warnings.
  2. When I connect the same TV with the same cable on ether1, it works as expected on 100M-baseT-full.

Looking at the block diagram of hAP ax S, it is clear that ports 2-5 are connected to the CPU via x4 Gigabit PHY, while port 1 is directly connected to the CPU.

Guys, can you advice what might be the problem? Should I file a bug?

Yes, definitely file a bug report. Preferably with supout.rif made when TV is connected to ether2-5.

This is a new device but it surprises me how much issues there are being reported since it has been released ... I'm sure the wrinkles will be ironed out but this could have been done better.

If you have a moment (and haven't already tried) can you configure one of the ports 2-5 to auto-negotiate and leave only 100M-baseT-* in the advertised speed/duplex and check if your TV connects?

Thank you, yes, I’ve tested that. The port says “Connected”, the auto negotiation says “Done”, the port even receives DHCP requests from the TV, but the DHCP replies (apparently) never reach the TV and the DHCP lease remains in status “Offered”. Setting a static IP doesn’t work.

Do the rx/tx counters on the interface (mikrotik side) increase? Can you post your config?

/interface ethernet
set [ find default-name=ether1 ] advertise=10M-baseT-half,10M-baseT-full,100M-baseT-half,100M-baseT-full,1G-baseT-half,1G-baseT-full arp=enabled arp-timeout=auto
auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no l2mtu=1600 loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=
04:F4:1C:__:__:_A mtu=1500 name=ether1 orig-mac-address=04:F4:1C:__:__:_A rx-flow-control=off tx-flow-control=off

Above is the working config on ether1.
Below is the non working config on ether4.

set [ find default-name=ether4 ] advertise=10M-baseT-half,10M-baseT-full,100M-baseT-half,100M-baseT-full,1G-baseT-half,1G-baseT-full arp=enabled arp-timeout=auto
auto-negotiation=yes bandwidth=unlimited/unlimited disabled=no l2mtu=1600 loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=
04:F4:1C:__:__:_D mtu=1500 name=ether4 orig-mac-address=04:F4:1C:__:__:_D rx-flow-control=off tx-flow-control=off

And here is what works on ether4:

set [ find default-name=ether4 ] advertise=10M-baseT-half,10M-baseT-full,1G-baseT-half,1G-baseT-full arp=enabled arp-timeout=auto auto-negotiation=yes bandwidth=
unlimited/unlimited disabled=no l2mtu=1600 loop-protect=default loop-protect-disable-time=5m loop-protect-send-interval=5s mac-address=04:F4:1C:__:__:_D mtu=1500 name=
ether4 orig-mac-address=04:F4:1C:__:__:_D rx-flow-control=off tx-flow-control=off

The TV has 100Mbps port.

Both ether1 and ether4 are not in a bridge and when testing each one I use:

/ip address
add address=192.168.1.1/24 interface=ether1 network=192.168.1.0
or
add address=192.168.1.1/24 interface=ether4 network=192.168.1.0

The configuration that works on ether4 actually removes 100M-baseT-* from the advertised speed. Can you try the following? This will set the advertised speed and duplex to 10/100Mb, half/full.

/interface/ethernet/set [find default-name=ether4] advertise=10M-baseT-half,10M-baseT-full,100M-baseT-half,100M-baseT-full

The problem of the interface coming up but DHCP responses getting lost is interesting: the last time I saw such a behavior was when a port was defined both as switch member and as an L3 interface (with an IP address), but that contradicts your statement that the port is removed from the switch prior to the test - can you try again (remove the port, add the IP address/DHCP pool-network-server)? If that still doesn't work, can you post the configuration minus the sensitive parts?

Alternatively, if you have vlan-filtering set to yes on your switch, you can add a VLAN on the bridge, set ether4's pvid to that new VLAN, add a VLAN interface with an IP address and attach the DHCP server to that interface.

I’m experiencing what’s probably the same issue. In my case it’s with connecting the hAP ax S to an A95X set top box (android TV box from China, MAC address starts with 68:1d:ef).

Normally, like when I plug it into a hAP ax 2, it autonegotiates to 100M-full and works perfectly.

I was able to connect the box with WiFi simultaneously so I could SSH into it. With it connected (RJ45) to a hAP ax S, here’s what I can observe from the tests I’ve done:

  • It quickly autonegotiates to 100M-full, and both sides report that properly (“/interface/ethernet/monitor ether4” on the hAP, dmesg on the box).
  • Packets going from the box to the hAP arrive just fine.
  • Packets from the hAP to the box are lost for the most part (98% loss with minimum size pings).
  • If I force “set … advertise=10M-baseT-full” on the hAP, then the packet loss reduces to zero with small pings. Though with 1400-1500 bytes packets it goes back up to around 25%-30% loss. (And even without loss, 10 Mbps wouldn’t be enough for the sports channels.)
  • It’s always outgoing traffic (from the hAP’s POV) that is lost.

I’ve tried it with different cables, even shielded cat 6’s, and a dozen other TV boxes of the same model (which all work properly if I use a hAP ax 2 instead).

I’ve had this problem on three hAP ax S so far. The problem may not affect them all, I’ve got a few others installed and haven’t received complaints; not sure if those have TV boxes plugged in though.

Yes, it seems that the lost packets are those from the hAP ax S to the device that is connected.