1#! /bin/sh 2# 3# Setup an ap that accepts wds traffic from associated stations. 4# This can be used as the "back end" for setup.extender and/or 5# setup.repeater. Note that the wds vap's are created by the 6# wlanwds program that listens for wds discovery events (to create 7# wds vaps) and for sta leave events (to destroy wds vaps it 8# created). The WDSUP script is invoked for each wds vap that 9# gets created--to add the vap to a bridge. 10# 11# Notes! 12# 13# * If the main AP VAP is running with encryption, the plumbed up 14# WDS VAP needs to have privacy enabled (wepmode mixed, for example) 15# otherwise frames transmitted from the WDS AP to the WDS STA 16# will not be encrypted. 17# 18# * Because wlanwds is running on the physical interface (for now), 19# and NOT the parent VAP, it will create cloned interfaces using 20# the MAC address of the physical interface. So, until that 21# whole setup is fixed, please only associate DWDS to the first 22# VAP on a physical interface, which shares the MAC address of 23# the physical NIC. 24# 25# 26PATH=.:$PATH 27. config 28 29SSID='freebsd+wdsmain' 30WDSUP=$TMPDIR/wdsup$$ 31 32#mwldebug state+node+reset+xmit+recv+beacon+hal+hal2 33WLAN_AP=`ifconfig wlan create wlanmode hostap wlandev $WIRELESS` 34ifconfig $WLAN_AP ssid "$SSID" channel $CHANNEL mtu 1500 35ifconfig $WLAN_AP dwds -apbridge 36wlandebug -i $WLAN_AP state+scan+assoc+auth+wds+11n 37 38BRIDGE=`ifconfig bridge create` 39 40# NB: start wlanwds first to avoid races. 41rm -f $WDSUP 42cat >$WDSUP <<EOF 43#! /bin/sh 44DEV=\$1 45ifconfig $BRIDGE addm \$DEV 46ifconfig \$DEV up 47EOF 48chmod +x $WDSUP 49$WLANWDS -v -s $WDSUP & 50 51ifconfig $BRIDGE addm $WLAN_AP addm $WIRED up 52ifconfig $WIRED up 53ifconfig $WLAN_AP up 54