2 PATH=/bin:/usr/bin:/sbin:/usr/sbin
5 ETHER_INTERFACE='wlan0'
6 HOSTAP_CONFIG='/etc/mesh/hostapd.conf'
15 /bin/echo "$0 <gate|station> <start|stop> [interface] [mesh_id]"
16 /bin/echo "ex) Mesh Gate :"
17 /bin/echo " $0 gate start"
18 /bin/echo " $0 gate start wlan0 mesh-area"
19 /bin/echo "ex) Mesh Station :"
20 /bin/echo " $0 station start"
21 /bin/echo " $0 station start wlan1 mesh-area"
28 if [ -a "/sys/class/net/$WLAN_INTERFACE" ]
30 /bin/echo "Use interface [$WLAN_INTERFACE]."
32 /bin/echo "Interface [$WLAN_INTERFACE] is not valid."
38 /bin/echo "Setting mesh gate..."
39 /bin/echo " setting mesh interface.."
42 # Add virtual interface
43 @SBIN_DIR@/iw dev $WLAN_INTERFACE set type managed
44 @SBIN_DIR@/ifconfig $WLAN_INTERFACE up
45 @SBIN_DIR@/iw dev $WLAN_INTERFACE interface add $MESH_INTERFACE type mp
46 @SBIN_DIR@/ifconfig $WLAN_INTERFACE down
47 @SBIN_DIR@/ifconfig $MESH_INTERFACE up
49 # Create bridge with mesh network
50 /bin/echo " setting bridge.."
51 @SBIN_DIR@/brctl addbr $BRIDGE_INTERFACE
52 @SBIN_DIR@/brctl stp $BRIDGE_INTERFACE on
53 #@SBIN_DIR@/brctl setfd $BRIDGE_INTERFACE 0
54 @SBIN_DIR@/brctl addif $BRIDGE_INTERFACE $MESH_INTERFACE
55 @SBIN_DIR@/ifconfig $MESH_INTERFACE down
56 @SBIN_DIR@/ifconfig $MESH_INTERFACE 0.0.0.0 up
57 @SBIN_DIR@/ifconfig $BRIDGE_INTERFACE up
60 # Join(create) specific mesh network
61 # NOTICE: [iw dev ## set channel] should be performed before join
62 @SBIN_DIR@/iw dev $MESH_INTERFACE set channel $MESH_CHANNEL
63 @SBIN_DIR@/iw dev $MESH_INTERFACE mesh join $MESH_ID
66 # Add external network into bridge
67 @SBIN_DIR@/brctl addif $BRIDGE_INTERFACE $ETHER_INTERFACE
68 @SBIN_DIR@/ifconfig $ETHER_INTERFACE down
69 @SBIN_DIR@/ifconfig $ETHER_INTERFACE 0.0.0.0 up
72 /bin/echo " announce mesh gate.."
73 @SBIN_DIR@/iw $MESH_INTERFACE set mesh_param mesh_hwmp_rootmode=4
74 @SBIN_DIR@/iw $MESH_INTERFACE set mesh_param mesh_gate_announcements=1
76 # Get MAC address from eth0
77 #ETH_MAC_ADDR=`@SBIN_DIR@/ifconfig $ETHER_INTERFACE | /usr/bin/sed -n '/ether/p' | /usr/bin/awk "{print \\$2}"`
78 #echo "========================"
80 #@SBIN_DIR@/ifconfig $BRIDGE_INTERFACE hw ether $ETH_MAC_ADDR
83 @SBIN_DIR@/iw $MESH_INTERFACE scan > /dev/null
85 # Set IP into bridge interface
86 /bin/echo " Get IP address with DHCP.."
87 #/usr/bin/dhcp -v -i $BRIDGE_INTERFACE
88 DHCP_IP=`/usr/bin/dhcp -i br0 | grep 'obtained' | /usr/bin/awk "{print \\$3}"`
89 /bin/echo " IP [$DHCP_IP] obtained"
90 @SBIN_DIR@/ifconfig $BRIDGE_INTERFACE $DHCP_IP
93 /bin/echo "Setting mesh station..."
94 # Add virtual interface
95 /bin/echo " setting mesh interface.."
96 @SBIN_DIR@/iw dev $WLAN_INTERFACE set type managed
97 @SBIN_DIR@/ifconfig $WLAN_INTERFACE up
98 @SBIN_DIR@/iw dev $WLAN_INTERFACE interface add $MESH_INTERFACE type mp
99 @SBIN_DIR@/ifconfig $WLAN_INTERFACE down
100 @SBIN_DIR@/ifconfig $MESH_INTERFACE up
102 # Create bridge with mesh network
103 /bin/echo " setting bridge.."
104 @SBIN_DIR@/brctl addbr $BRIDGE_INTERFACE
105 @SBIN_DIR@/brctl stp $BRIDGE_INTERFACE on
106 @SBIN_DIR@/brctl setfd $BRIDGE_INTERFACE 0
107 @SBIN_DIR@/brctl addif $BRIDGE_INTERFACE $MESH_INTERFACE
108 @SBIN_DIR@/ifconfig $MESH_INTERFACE down
109 @SBIN_DIR@/ifconfig $MESH_INTERFACE 0.0.0.0 up
110 @SBIN_DIR@/ifconfig $BRIDGE_INTERFACE up
112 # Join(create) specific mesh network
113 # NOTICE: [iw dev ## set channel] should be performed before join
114 @SBIN_DIR@/iw dev $MESH_INTERFACE set channel $MESH_CHANNEL
115 @SBIN_DIR@/iw dev $MESH_INTERFACE mesh join $MESH_ID
117 # Set Soft AP interface
118 if [ "wlan0" == "$WLAN_INTERFACE" ]; then
119 # Use wlan0 as mesh interface
120 sed -i 's/wlan0/wlan1/' $HOSTAP_CONFIG
122 # Use wlan1 as mesh interface
123 sed -i 's/wlan1/wlan0/' $HOSTAP_CONFIG
126 # Change interface mode with wlan script (for artik)
127 if [ -a "/usr/bin/wlan.sh" ]; then
128 if [ "wlan0" == "$WLAN_INTERFACE" ]; then
129 sed -i 's/wlan0/wlan1/' /usr/bin/wlan.sh
131 @BIN_DIR@/wlan.sh stop
132 @BIN_DIR@/wlan.sh softap
133 if [ "wlan0" == "$WLAN_INTERFACE" ]; then
134 sed -i 's/wlan1/wlan0/' /usr/bin/wlan.sh
137 @SBIN_DIR@/iw $MESH_INTERFACE scan > /dev/null
140 /bin/echo " launching soft ap.."
141 @SBIN_DIR@/hostapd -e /opt/var/lib/misc/hostapd.bin $HOSTAP_CONFIG -f /var/log/hostapd_mesh.log -dd &
143 # Set IP into bridge interface
144 /bin/echo " Get IP address with DHCP.."
145 #/usr/bin/dhcp -v -i $BRIDGE_INTERFACE
146 DHCP_IP=`/usr/bin/dhcp -v -i br0 | grep 'obtained' | /usr/bin/awk "{print \\$3}"`
147 /bin/echo " IP [$DHCP_IP] obtained"
148 @SBIN_DIR@/ifconfig $BRIDGE_INTERFACE $DHCP_IP
151 /bin/echo "Role [$ROLE] is not valid."
160 @BIN_DIR@/pkill -x hostapd
165 if [ -a "/sys/class/net/$BRIDGE_INTERFACE" ]
167 @SBIN_DIR@/ifconfig $BRIDGE_INTERFACE down
168 @SBIN_DIR@/brctl delbr $BRIDGE_INTERFACE
171 if [ -a "/sys/class/net/$MESH_INTERFACE" ]
173 @SBIN_DIR@/iw dev $MESH_INTERFACE del
176 # Revert wlan interface
177 @SBIN_DIR@/ifconfig $WLAN_INTERFACE up
180 if [ $# -lt 2 ]; then
186 /bin/echo "Use mesh id [$MESH_ID]"
190 if [ -z "$WLAN_INTERFACE" ]
194 WLAN_INTERFACE='wlan0'
197 WLAN_INTERFACE='wlan1'