OpenWrt/LEDE Project

  • Status Unconfirmed
  • Percent Complete
    0%
  • Task Type Bug Report
  • Category Base system
  • Assigned To No-one
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version Trunk
  • Due in Version Undecided
  • Due Date Undecided
  • Private
Attached to Project: OpenWrt/LEDE Project
Opened by Vittorio Gambaletta (VittGam) - 14.03.2017

FS#631 - AR8327 switch link state change check not working on TL-WR1043ND v3 (QCA9558)

Hello,

On my TP-LINK TL-WR1043ND v3 (ar71xx QCA9558) with today’s LEDE snapshot, the AR8327 switch isn’t sending port change interrupt events to the CPU.

The `ar8xxx_check_link_states` function in `target/linux/generic/files/drivers/net/phy/ar8216.c` is not being called at all, since not only the messages about port link status change aren’t printed to the dmesg, but the ARL table isn’t getting cleaned either. I don’t understand why this is happening...

This regression is not present in other routers with the same AR8327 switch chip (but rev. 2 instead of rev. 4), such as TP-LINK TL-WDR4300 v1 (ar71xx) and TP-LINK TL-WDR4900 v1 (mpc85xx).

(Latest LEDE stable release also does exibit the regression.)

Below you can see a session with LEDE; and a session with OpenWrt CC 15.05.1 release, which does not exibit the problem.

(The CC image is for the TL-WR1043ND v2, since v3 images weren’t built yet at that time; v2 and v3 are the same hardware, as it can be seen from the FCC docs, where TP-LINK requested an ID change from v2 to v3.)

Please let me know if there’s anything I can try to help debug this problem!

```
BusyBox v1.26.2 () built-in shell (ash)

   _________
  /        /\      _    ___ ___  ___
 /  LE    /  \    | |  | __|   \| __|
/    DE  /    \   | |__| _|| |) | _|

// LE \ ||_|_/|_| lede-project.org
\ \ DE /
\ LE \ / ———————————————————– \ DE \ / Reboot (SNAPSHOT, r1-2f09a1e)
\
\/ ———————————————————– === WARNING! =====================================
There is no root password defined on this device!
Use the “passwd” command to set up a new password
in order to prevent unauthorized SSH logins.
————————————————– root@LEDE:~# dmesg | grep 8327
[ 0.815273] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
root@LEDE:~# dmesg | grep 8216
[ 2.046658] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
root@LEDE:~# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 4: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr> root@LEDE:~# dmesg | grep 8216
[ 2.046658] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
root@LEDE:~# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 3: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr> root@LEDE:~#
``` ```
BusyBox v1.23.2 (2016-01-02 18:01:44 CET) built-in shell (ash)
_ | |.—–.—–.—–.| | | |.—-.| |_
| - || _ | -
| || | | || _|| _|
|_|| |_||||||| ||
|
| W I R E L E S S F R E E D O M


CHAOS CALMER (15.05.1, r48532)


  • 1 1/2 oz Gin Shake with a glassful
  • 1/4 oz Triple Sec of broken ice and pour
  • 3/4 oz Lime Juice unstrained into a goblet.
  • 1 1/2 oz Orange Juice
  • 1 tsp. Grenadine Syrup

—————————————————– root@OpenWrt:/# dmesg | grep 8327
[ 0.750000] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
root@OpenWrt:/# dmesg | grep 8216
[ 1.440000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[ 24.680000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is up

root@OpenWrt:/# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 4: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr>

root@OpenWrt:/# dmesg | grep 8216
[ 1.440000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[ 24.680000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is up
[ 1306.510000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is down
[ 1310.530000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 3 is up
root@OpenWrt:/# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 3: MAC <my_laptop_macaddr>
Port 6: MAC <router_wan_macaddr>

root@OpenWrt:/# uname -a
Linux OpenWrt 3.18.23 #1 Sun Jan 31 18:39:35 CET 2016 mips GNU/Linux
root@OpenWrt:/#
```

Cheers,
Vittorio

Vittorio Gambaletta (VittGam) commented on 14.03.2017 19:49

Hmmm... Obviously markdown syntax for blocks isn't supported here, but I can't see a way for me to edit the description...

BusyBox v1.26.2 () built-in shell (ash)

     _________
    /        /\      _    ___ ___  ___
   /  LE    /  \    | |  | __|   \| __|
  /    DE  /    \   | |__| _|| |) | _|
 /________/  LE  \  |____|___|___/|___|                      lede-project.org
 \        \   DE /
  \    LE  \    /  -----------------------------------------------------------
   \  DE    \  /    Reboot (SNAPSHOT, r1-2f09a1e)
    \________\/    -----------------------------------------------------------

=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@LEDE:~# dmesg | grep 8327
[    0.815273] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
root@LEDE:~# dmesg | grep 8216
[    2.046658] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
root@LEDE:~# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 4: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr>

root@LEDE:~# dmesg | grep 8216
[    2.046658] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
root@LEDE:~# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 3: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr>

root@LEDE:~# 
BusyBox v1.23.2 (2016-01-02 18:01:44 CET) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (15.05.1, r48532)
 -----------------------------------------------------
  * 1 1/2 oz Gin            Shake with a glassful
  * 1/4 oz Triple Sec       of broken ice and pour
  * 3/4 oz Lime Juice       unstrained into a goblet.
  * 1 1/2 oz Orange Juice
  * 1 tsp. Grenadine Syrup
 -----------------------------------------------------
root@OpenWrt:/# dmesg | grep 8327
[    0.750000] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
root@OpenWrt:/# dmesg | grep 8216
[    1.440000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[   24.680000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is up

root@OpenWrt:/# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 4: MAC <my_laptop_macaddr>
Port 4: MAC <other_macaddr>
Port 6: MAC <router_wan_macaddr>

root@OpenWrt:/# dmesg | grep 8216
[    1.440000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[   24.680000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is up
[ 1306.510000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 4 is down
[ 1310.530000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 3 is up
root@OpenWrt:/# swconfig dev switch0 get arl_table
address resolution table
Port 0: MAC <router_lan_macaddr>
Port 3: MAC <my_laptop_macaddr>
Port 6: MAC <router_wan_macaddr>

root@OpenWrt:/# uname -a
Linux OpenWrt 3.18.23 #1 Sun Jan 31 18:39:35 CET 2016 mips GNU/Linux
root@OpenWrt:/# 
c. storch commented on 17.03.2017 09:22

same problem: #604
polling solution: http://centaur.sch.bme.hu/~leait/projects/openwrt/ seems included in CC
regards
cs

Vittorio Gambaletta (VittGam) commented on 17.03.2017 12:48

Hmmm, I should re-test with my WDR3600 and WDR4300 then. I might have messed up with my tests on those routers, since I observed that it didn't happen on WDR4300...

By the way, polling is not the solution here, since the switch sends the change notifications as IRQs, and the kernel picked them up correctly with OpenWrt CC 15.05.1 release (which does not seem to have that polling patch you linked)...

Vittorio Gambaletta (VittGam) commented on 17.03.2017 12:49

Oh and by the way, this problem does not happen on a TL-WR1043ND v4, which has a QCA956x SoC and an AR8337 rev 2 switch chip.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing