mDNS: Implemented Host Filtering for ipv4 and ipv6, writing in the config file which...
[olsrd.git] / files / olsrd-adhoc-setup
1 #!/bin/sh
2
3 if [ -z "$1" ]; then
4     wlan=`/sbin/iwconfig 2>&1 | grep 'IEEE 802.11' | head -1 | cut -d ' ' -f 1`
5 else
6     wlan=$1
7 fi
8
9 if [ "$wlan" = "" ]; then
10     echo "No wifi network interface found! Perhaps you need to modprobe?"
11     exit
12 fi
13
14 if [ -z "$2" ]; then
15     channel=5
16 else
17     channel=$2
18 fi
19
20 if [ -z "$3" ]; then
21     essid=commotionwireless.net
22 else
23     essid="$3"
24 fi
25
26 if [ -z "$4" ]; then
27     bssid=00:00:00:00:00:00
28 else
29     bssid="$4"
30 fi
31
32 echo "Setting mesh on '$wlan' to channel $channel:"
33 echo "    attaching to '$essid' with BSSID '$bssid'"
34
35 if [ -x /usr/bin/nmcli ]; then
36         echo -n "Turning off NetworkManager wifi control: "
37     /usr/bin/nmcli dev disconnect iface $wlan
38     echo "done"
39 fi
40
41 echo -n "Setting up ad-hoc networking: "
42
43 # ifconfig down before setting ad-hoc mode because some chips require that
44 /sbin/ifconfig $wlan down
45
46 # disassociate from current BSSID in case an ad-hoc BSSID already stuck there
47 /sbin/iwconfig $wlan ap $bssid
48
49 sleep 1
50
51 /sbin/iwconfig $wlan mode ad-hoc
52 /sbin/iwconfig $wlan channel $channel
53 /sbin/iwconfig $wlan essid $essid
54 /sbin/iwconfig $wlan key off
55 /sbin/iwconfig $wlan rate auto
56 /sbin/iwconfig $wlan txpower auto
57 # many devices don't support the follow options so hide the errors
58 /sbin/iwconfig $wlan modu auto  > /dev/null 2>&1
59 /sbin/iwconfig $wlan commit     > /dev/null 2>&1
60
61 /sbin/ifconfig $wlan up
62
63 # some cards want to be configured after the interface is up
64 sleep 5
65 mode=`iwgetid --mode --raw`
66 if [ "$mode" != "1" ]; then
67     /sbin/iwconfig $wlan mode ad-hoc
68     /sbin/iwconfig $wlan channel $channel
69     /sbin/iwconfig $wlan essid $essid
70     /sbin/iwconfig $wlan commit     > /dev/null 2>&1
71 fi
72
73 # Wait for things to settle before trying the next step
74 sleep 2
75 echo "done"
76
77 echo -n "Setting up IP address: "
78 # get MAC to generate hopefully unique IP address with, by using the last two
79 # hex pairs as the last two hex pairs for the IP address, converting the hex
80 # to decimal first.
81 MAC=`/sbin/ifconfig | grep $wlan | sed 's|.*HWaddr ||'`
82 MAC5=`echo $MAC | cut -d : -f 5`
83 MAC6=`echo $MAC | cut -d : -f 6`
84 ip3=`printf %d 0x$MAC5`
85 ip4=`printf %d 0x$MAC6`
86 net=172.29
87 ip=$net.$ip3.$ip4
88
89 /sbin/ifconfig $wlan inet $ip broadcast $net.255.255
90 echo "done"
91
92 echo "OLSR ad-hoc setup on $wlan using $essid on channel $channel with IP $ip"
93 echo "    ad-hoc Cell BSSID: `iwgetid --ap --raw`"