Wpad 2015-03-25 (mips_74kc_dsp2): ath10k and dynamic VLANs

I've compiled an old version of wpad (2015-03-25) to be able to use dynamic VLAN tagging with an ath10k card (see FS#488 - dynamic VLAN doesn't work on ath10k.) I'm sharing this version here in the hope that some people might find it useful. This older version appears to work, but it is unfortunately unavailable on LEDE (and while there are OpenWRT binaries for it, they are not ABI-compatible with LEDE.)

This old version compiled for the MIPS 74kc DSP2 architecture, which my Archer C7 uses.

The hostapd source was modified only slightly so that it doesn't exit when some of the new option switches are passed to it by LEDE. (I believe this was a -s switch.) Since this is an old version and an unofficial binary, use at your own risk. You may need to add 74kc_dsp2 as an architecture to opkg.conf before you may install it.

I try to get dynamic VLANs running on my Archer C7 v2.0. Unfortunately I can't install your wpad-version. How do I have to modify my opkg.conf for not getting the incompatible with the architectures configured message?
Used firmware is LEDE Reboot 17.01.2 r3435-65eec8bd5f

Would be great if you can help me out!

You need to add mips_74kc_dsp2 as an architecture. For example, this is my /etc/opkg.conf file:

dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
option check_signature 1
arch all 1
arch noarch 1
arch mips_24kc 10
arch mips_74kc_dsp2 5

Thanks for replying.. I changed my opkg.conf but it's still not working.

When I install wpad via ssh the url is also mips_24kc

opkg install wpad
Installing wpad (2016-12-19-ad02e79d-4) to root...
Downloading http://downloads.lede-project.org/releases/17.01.2/packages/mips_24kc/base/wpad_2016-12-19-ad02e79d-4_mips_24kc.ipk
Configuring wpad.

But opkg install wpad_2015-03-25-1_ar71xx.ipk is not working. I stored the ipk locally on the router, but still no success.

Unknown package 'wpad'.
Collected errors:
 * pkg_hash_fetch_best_installation_candidate: Packages for wpad found, but incompatible with the architectures configured
 * opkg_install_cmd: Cannot install package wpad.

Do you have any ideas to solve this problem?

Ok, the issue in this case is that the package reports its architecture as ar71xx, so that's what you need to add to your architecture file instead of mips_74kc_dsp2. The name of this package's architecture comes from the old OpenWRT denominations.

Disclaimer: This ar71xx package works for me, but I was unfamiliar with the build system when I made it, so I suggest you try the 74kc package instead, which is the vanilla OpenWRT (older) version of the package. You may even try both, and see with which one you have the best performance.

Second disclaimer: I don't know how important IPv6 or multicast are in your deployment, but be advised that what causes the issue this package is "solving" is related to the establishment of GTKs, namely that hostapd doesn't set them properly in this earlier version, which by accident raises no error with the ath10k driver (this I've come to learn after trying to dig deeper into why this specific wpad version is needed, and after trying to diagnose some network issues). This means that you will most likely have either of two outcomes depending on the ath10k driver and firmware you are using (for more information see my post here on that, or the related GitHub issue related to this on the ath10k-ct repository):

  1. IPv6, multicast and client-to-client doesn't work for wireless clients. This happens with the default driver and the default firmware.
  2. IPv6, multicast and client-to-client work, but the VLANs are not isolated from each other regarding these packages. Besides leaking data, this is especially akward with IPv6, as your interfaces will get IPv6 addresses for all active VLANs. To trigger this scenario you need to use the ath10k-ct firmware and possibly also the ath10k-ct driver.

Unfortunately, there doesn't seem to be an easy fix for this problem (I'm still looking, but at the moment this is not high up in my list of priorities). If your network uses only IPv4, no multicast, and you consider wireless clients not being able to talk to each other a feature (or, alternatively, situation 2 above), this issue won't affect you.

Thank you so much!!
The mips_74ks_dsp2 worked for me. With iperf3 I get Transfer of ~ 370MBits/s. That's not perfect but a lot better than only the 2.4 Ghz Wifi.
Actually I don't need IPv6 so it doesn't affect my configuration.

Hello again
I'm very happy with this configuration and it's still working. I only have a problem with my AirPrint Printer. I can't find it via bonjour, when I'm connected via the 5GHz. At 2,4GHz it's no problem..
Any ideas how to fix this?

Two notes:

  1. I'm no longer maintaining this build because of the KRACK vulnerability. Retrofitting the patches to an old hostapd version would take too much of my time. The last configuration I tried that seems to resolve the GTK issue is using the ath10k-ct (but ath10k might also work) with the latest ath10k (not ath10-ct) firmware and raw mode enabled.

  2. The issue you are experiencing with your printer is most likely caused by the GTK not being properly set. If Bonjour uses anything that remotely resembles broadcast packets (I'm not familiar with the protocol details, but this seems most likely knowing what it does), then the packets will be dropped. You have a few options (unfortunately, not very good ones):

    1. Not using Bonjour (you can use static IP addresses, for example)
    2. Using Bonjour only on 2.4GHz.
    3. Attempting the setup as described above (latest hostapd + raw mode). I believe this should work, but your (5GHz) network throughput may suffer.

If anyone was using this build or was searching for a build with ath10k working with dynamic vlans, please let us know that you are affected in the following post:

We need your support to make this issue known.

Thanks,
Hernán.-