A wifi AP with a single NIC

Actually, the mysterious sentence

STA/AP BI must match

seems to have nothing to do with my setup not working. It turns out instead that

 #channels <= 1

was the key to make it work. I eventually understood it means I can use only one channel when I have two vif's on the same physical device (my Intel Centrino, at any rate), one in AP, the other in Station mode. So I switched the channel in the hostapd conf file, to the same I was trying to connect to, and I had no error messages.

At this point I configured iptables, started dnsmasq, then hostapd by means of

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
dnsmasq 
/usr/local/bin/hostapd /etc/hostapd/hostapd.conf

and then I had it, a single wifi card working symultaneously as Access Point and client to a network connected to the Internet.


In case anyone comes here to identify "STA/AP BI must match":

The kernel source in include/net/cfg80211.h, in particular struct ieee80211_iface_combination, says

 * @beacon_int_infra_match: In this combination, the beacon intervals
 *  between infrastructure and AP types must match. This is required
 *  only in special cases.

So BI is the beacon interval, and getting that to match shouldn't be a big problem.