Developing lightweight computation at the DSG edge

qmp_control.sh 3.79 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#    The full GNU General Public License is included in this distribution in
#    the file called "COPYING".
#
# Contributors:
#	Pau Escrich <p4u@dabax.net>
#	Simó Albert i Beltran
#

QMP_PATH="/etc/qmp"

. $QMP_PATH/qmp_common.sh
. $QMP_PATH/qmp_functions.sh
. $QMP_PATH/qmp_gw.sh
. $QMP_PATH/qmp_wireless.sh
. $QMP_PATH/qmp_network.sh
. $QMP_PATH/qmp_update.sh

offer_default_gw() {
35
	qmp_gw_default offer $1
36
37
38
39
	qmp_gw_apply
}

search_default_gw() {
40
	qmp_gw_default search $1
41
42
43
44
	qmp_gw_apply
}

disable_default_gw() {
45
	qmp_gw_default disable $1
46
	qmp_gw_apply
47
48
}

49
50
51
52
53
reset_wifi() {
	qmp_reset_wifi
	configure_wifi
}

54
55
56
57
58
59
60
configure_wifi() {
	qmp_configure_wifi_initial
	qmp_configure_wifi
	/etc/init.d/network reload
}

apply_netserver() {
61
	[ "$(qmp_uci_get networks.netserver)" == "1" ] && qmp_enable_netserver || qmp_disable_netserver
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
}

configure_network() {
	qmp_configure
	[ -f "/etc/init.d/olsrd" ] && /etc/init.d/olsrd restart
	bmx6 -c --configReload || /etc/init.d/bmx6 restart
	/etc/init.d/network reload
	/etc/init.d/dnsmasq restart
	apply_netserver
}

configure_system() {
	qmp_configure_system
	/etc/init.d/uhttpd restart
}

enable_ns_ppt() {
	echo 8 > /sys/class/gpio/export
	echo out > /sys/class/gpio/gpio8/direction
	echo 1 > /sys/class/gpio/gpio8/value
}

publish_hna() {
	[ -z "$1" ] && help
	qmp_publish_hna_bmx6 $1 $2
}

unpublish_hna() {
	[ -z "$1" ] && help
	qmp_unpublish_hna_bmx6 $1
}

upgrade() {
p4u's avatar
p4u committed
95
	qmp_update_upgrade_system $1 && hard_reboot
96
97
98
99
100
101
102
103
104
105
106
107
}

hard_reboot() {
	echo "System is gonna be rebooted now!"
	echo 1 > /proc/sys/kernel/sysrq
	echo b > /proc/sysrq-trigger 
}

help() {
	echo "Use: $0 <function> [params]"
	echo ""
	echo "Available functions:"
108
109
	echo "  offer_default_gw [ipv4|ipv6]   : Offers default gw to the network IPv4 or IPv6, both versions if no value."
	echo "  search_default_gw [ipv4|ipv6]  : Search for a default gw in the network IPv4 or IPv6, both versions if no value."
110
111
112
113
114
	echo "  disable_default_gw [ipv4|ipv6] : Disables the search/offer of default GW IPv4 and/or IPv6"
	echo "  configure_wifi                 : Configure all WiFi devices"
	echo "  reset_wifi                     : Reset, rescan and configure all the WiFi devices"
	echo "  configure_network              : Configure and apply network settings"
	echo "  configure_system               : Configure and apply system settings (qmp.node section and so on)"
115
116
117
118
119
120
	echo "  publish_hna                    : Publish an IP range (v4 or v6): publish_hna <IP/NETMASK> [ID]"
	echo "  unpublish_hna                  : Unpublish a current HNA: unpublish_hna <ID>"
	echo "  apply_netserver                : Start/stop nerserver depending on qmp configuration"
	echo "  enable_ns_ppt                  : Enable POE passtrought from NanoStation M2/5 devices. Be careful with this"
	echo "  upgrade [URL]                  : Upgrade system. By default to the last version, but image url can be provided to force"
	echo "  hard_reboot                    : Performs a hard reboot (using kernel sysrq)"
121
122
123
124
125
126
127
128
129
130
	echo ""
	exit 1
}


[ -z "$1" ] && help

echo "executing function $1"
$@