Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
openwrt-bot opened this issue Mar 14, 2017 · 4 comments
Labels

Comments

@openwrt-bot
Copy link

VittGam:

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

@openwrt-bot
Copy link
Author

VittGam:

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:/#

@openwrt-bot
Copy link
Author

storchi:

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

@openwrt-bot
Copy link
Author

VittGam:

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)...

@openwrt-bot
Copy link
Author

VittGam:

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant