config_bond0=" 0.0.0.0 " config_eth0="dhcp" config_eth1="dhcp" config_AP1=" 192.168.1.20/24 broadcast 192.168.1.255 " config_AP2=" 192.168.2.20/24 broadcast 192.168.1.255 " routes_AP1=" default via 192.168.1.1 " routes_AP2=" default via 192.168.2.1 " slaves_bond0="eth1 eth0" rc_before_bond0="net.eth1" postup() { echo "Postup: ${IFACE}" if [ "${IFACE}" == "bond0" ]; then wpa_cli -i eth1 reassociate ESSID=$(iwgetid eth1 --raw) STATE=$(wpa_cli -i eth1 status | grep wpa_state=) echo "${STATE} (essid:${ESSID})" TRIES=0 until echo $STATE | grep -q COMPLETED && test -n $ESSID; do echo "No ESSID ($STATE), retrying $TRIES..." sleep 2 ESSID=$(iwgetid eth1 --raw) TRIES=$(($TRIES + 1)) STATE=$(wpa_cli -i eth1 status | grep wpa_state=) if [ "$TRIES" -gt 10 ]; then break; fi; done if test -z "$ESSID"; then echo "Failed to get ESSID" return 1 fi iwgetid -a eth1 echo "ESSID: $ESSID" if [ -z "$(eval echo \${config_${ESSID}})" ] || [ "$(eval echo \${config_${ESSID}})" == "dhcp" ] ; then dhcpcd -t 5 bond0 else echo $(eval echo "\${config_${ESSID}}") ip addr add $(eval echo "\${config_${ESSID}}") dev bond0 (route -n | grep -q "^0.0.0.0") && route del default ip route add $(eval echo "\${routes_${ESSID}}") fi ifconfig eth1 0.0.0.0 fi return 0 } modules="wpa_supplicant essidnet" wpa_supplicant_eth1="-Dwext" # For generic wireless associate_timeout_eth1=60