Eu não fiz isso pessoalmente, mas aqui estão algumas informações para você seguir na direção certa.
Do ponto de vista do protocolo, é definitivamente possível ter um único rádio funcionando como um AP e um cliente STA. Funciona melhor (ou talvez seja quase obrigatório) se o AP que você está criando e o que você está ingressando como cliente estiver no mesmo canal. Ter a placa de rádio tem que manter a mudança de canais para solicitações de serviço é uma receita para quadros perdidos e péssimo desempenho.
Em termos de software, está se tornando possível. Vários drivers de placa 802.11 no Linux suportam o conceito de VAPs (APs virtuais) que permite que uma única placa atue como vários APs (vários SSIDs, até mesmo BSSIDs) ao mesmo tempo. Contraintuitivamente, o termo VAP passou a significar qualquer tipo de interface virtual na mesma placa 802.11, independentemente de a interface virtual estar no modo AP ou não. Então, nesses combos de cartão / driver, você poderia criar dois VAPs - um VAP no modo STA
O driver MadWifi para placas baseadas em Atheros é aquele que suporta VAPs. Se a sua placa 802.11 usa um chipset Atheros e você instala a versão correta do driver MadWifi, você pode configurar sua placa para o modo STA + AP simultâneo da seguinte forma:
wlanconfig ath0 create wlandev wifi0 wlanmode sta
wlanconfig ath1 create wlandev wifi0 wlanmode ap
Observe que essas não são instruções completas para configurar tudo, mas apenas uma tentativa de começar.
Você pode querer o Google por algo como " wifi vap " para mais informações. Copiei os comandos acima de aqui .
Ah, e algumas quebras de mitos: cartões Atheros não são incomuns em máquinas de consumo. Eles são um participante importante dos chipsets 802.11, junto com a Broadcom, Marvell, Intel e Ralink. E só porque eu usei o exemplo do MadWifi / Atheros, não significa que não existam drivers do Linux para os chips dos outros grandes players que podem fazer uma coisa similar. Além disso, o 802.11s não é necessário para isso. Dizer que você precisa fazer 802.11s para fazer isso é como dizer que você tem que suportar o protocolo Spanning Tree apenas para encaminhar quadros de uma interface para outra.