diff -Naur luci-0.10.0.orig/applications/luci-qos/luasrc/model/cbi/qos/qos.lua luci-0.10.0/applications/luci-qos/luasrc/model/cbi/qos/qos.lua
--- luci-0.10.0.orig/applications/luci-qos/luasrc/model/cbi/qos/qos.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/applications/luci-qos/luasrc/model/cbi/qos/qos.lua	2012-04-14 11:00:29.000000000 +0200
@@ -35,6 +35,12 @@
 
 s:option(Flag, "halfduplex", translate("Half-duplex"))
 
+--&&&HAMNET
+s:option(Flag,  "dynamicbw", translate("Dynamic QOS - Enable/Disable"))
+s:option(Value, "dynamicbwip", translate("Dynamic QOS - Remote Link IP"))
+s:option(Value, "dynamicbwcycle", translate("Dynamic QOS - Cycle time (msec)"))
+s:option(Value, "dynamicbwrtt", translate("Dynamic QOS - Max RTT on Link (msec)"))
+
 s:option(Value, "download", translate("Download speed (kbit/s)"))
 
 s:option(Value, "upload", translate("Upload speed (kbit/s)"))
diff -Naur luci-0.10.0.orig/libs/web/htdocs/luci-static/resources/cbi.js luci-0.10.0/libs/web/htdocs/luci-static/resources/cbi.js
--- luci-0.10.0.orig/libs/web/htdocs/luci-static/resources/cbi.js	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/libs/web/htdocs/luci-static/resources/cbi.js	2012-04-19 23:19:24.000000000 +0200
@@ -1003,9 +1003,13 @@
 		var quot_esc = [/"/g, '&#34;', /'/g, '&#39;'];
 
 		function esc(s, r) {
-			for( var i = 0; i < r.length; i += 2 )
-				s = s.replace(r[i], r[i+1]);
-			return s;
+			if (typeof(s) != "undefined"){
+				for( var i = 0; i < r.length; i += 2 )
+					s = s.replace(r[i], r[i+1]);
+				return s;
+			} else {
+				return "";
+			}
 		}
 
 		var str = arguments[0];
diff -Naur luci-0.10.0.orig/libs/web/root/etc/config/luci luci-0.10.0/libs/web/root/etc/config/luci
--- luci-0.10.0.orig/libs/web/root/etc/config/luci	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/libs/web/root/etc/config/luci	2016-07-13 09:42:49.000000000 +0200
@@ -11,6 +11,10 @@
 	option opkg		"/etc/opkg.conf"
 	option firewall	"/etc/firewall.user"
 	option uploads	"/lib/uci/upload/"
+	option quagga	"/etc/quagga/"
+	option ntpd	"/etc/ntp.conf"
+	option rclocal	"/etc/rc.local"
+	option crontab	"/etc/crontabs/"
 	
 config internal languages
 	
diff -Naur luci-0.10.0.orig/modules/admin-full/luasrc/controller/admin/system.lua luci-0.10.0/modules/admin-full/luasrc/controller/admin/system.lua
--- luci-0.10.0.orig/modules/admin-full/luasrc/controller/admin/system.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/modules/admin-full/luasrc/controller/admin/system.lua	2012-04-14 11:15:18.000000000 +0200
@@ -183,7 +183,9 @@
 	local fs  = require "luci.fs"
 
 	local upgrade_avail = nixio.fs.access("/lib/upgrade/platform.sh")
-	local reset_avail   = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
+--&&&HAMNMET no reset to defaults via web I/F
+--&&&	local reset_avail   = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
+	local reset_avail = false
 
 	local restore_cmd = "tar -xzC/ >/dev/null 2>&1"
 	local backup_cmd  = "tar -czT %s 2>/dev/null"
diff -Naur luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
--- luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua	2013-01-02 16:43:18.000000000 +0100
@@ -231,6 +231,104 @@
 end
 
 
+------------------- MAC80211_akh5k Device ------------------
+
+if hwtype == "mac80211_ath5k" then
+
+--&&&HAMNET
+--[[
+	tp = s:taboption("general",
+		(#tx_power_list > 0) and ListValue or Value,
+		"txpower", translate("Transmit Power"), "dBm")
+
+	tp.rmempty = true
+	tp.default = tx_power_cur
+
+	function tp.cfgvalue(...)
+		return txpower_current(Value.cfgvalue(...), tx_power_list)
+	end
+
+	for _, p in ipairs(tx_power_list) do
+		tp:value(p.driver_dbm, "%i dBm (%i mW)"
+			%{ p.display_dbm, p.display_mw })
+	end
+]]--
+	s:taboption("general", Value, "txpower",translate("Transmit Power"), "dBm")
+--&&&HAMNET--
+	mode = s:taboption("advanced", ListValue, "hwmode", translate("Mode"))
+	mode:value("", translate("auto"))
+	if hw_modes.b then mode:value("11b", "802.11b") end
+	if hw_modes.g then mode:value("11g", "802.11g") end
+	if hw_modes.a then mode:value("11a", "802.11a") end
+
+	if htcaps then
+		if hw_modes.g and hw_modes.n then mode:value("11ng", "802.11g+n") end
+		if hw_modes.a and hw_modes.n then mode:value("11na", "802.11a+n") end
+
+		htmode = s:taboption("advanced", ListValue, "htmode", translate("HT mode"))
+		htmode:depends("hwmode", "11na")
+		htmode:depends("hwmode", "11ng")
+		htmode:value("HT20", "20MHz")
+		htmode:value("HT40-", translate("40MHz 2nd channel below"))
+		htmode:value("HT40+", translate("40MHz 2nd channel above"))
+
+		--htcapab = s:taboption("advanced", DynamicList, "ht_capab", translate("HT capabilities"))
+		--htcapab:depends("hwmode", "11na")
+		--htcapab:depends("hwmode", "11ng")
+	end
+
+	local cl = iw and iw.countrylist
+	if cl and #cl > 0 then
+		cc = s:taboption("advanced", ListValue, "country", translate("Country Code"), translate("Use ISO/IEC 3166 alpha2 country codes."))
+		cc.default = tostring(iw and iw.country or "00")
+		for _, c in ipairs(cl) do
+			cc:value(c.alpha2, "%s - %s" %{ c.alpha2, c.name })
+		end
+	else
+		s:taboption("advanced", Value, "country", translate("Country Code"), translate("Use ISO/IEC 3166 alpha2 country codes."))
+	end
+
+	s:taboption("advanced", Value, "distance", translate("Distance Optimization"),
+		translate("Distance to farthest network member in meters."))
+--&&&HAMNET+++
+	channelbw = s:taboption("advanced", ListValue, "channelbw", translate("Channel Bandwidth"),
+	                translate("Channel Bandwidth in MHz (used for Ham Radio links)"))
+	channelbw:value("5",  "5 MHz")
+	channelbw:value("10", "10 MHz")
+	channelbw:value("20", "20 MHz")
+
+	antmode = s:taboption("advanced", ListValue, "ant_mode", translate("Antenna Mode"),
+	                translate("Antenna Mode (use mode 1)"))
+	antmode:value("0",  "0: Default antenna setup")
+	antmode:value("1",  "1: only antenna A (Main) present")
+	antmode:value("2",  "2: only antenna B (Aux) present")
+	antmode:value("3",  "3: STA locked on a single AP")
+	antmode:value("4",  "4: AP with tx antenna set on tx desc")
+	antmode:value("5",  "5: STA with tx antenna set on tx desc")
+	antmode:value("6",  "6: Debug mode: A->Rx, B->Tx")
+
+	noack = s:taboption("advanced", Flag, "use_no_ack", translate("Disable Packet Acknowledge"),
+		translate("Don't use 802.11 ACK packets. Attention: This feature breaks 802.11. Use only for testing!"))
+	noack.optional = true
+	noack.enabled = "1"
+	noack.disabled = "0"
+	noack.rmempty = false
+
+	s:taboption("advanced", Value, "cts_timeout", translate("Clear to send timeout"),
+		translate("CTS timeout in us. Will be calculated automatically by the distance option")).optional = true
+
+	s:taboption("advanced", Value, "ack_timeout", translate("Acknowledge timeout"),
+		translate("ACK timeout in us. Will be calculated automatically by the distance option")).optional = true
+
+	s:taboption("advanced", Value, "slottime", translate("Slot Time"),
+		translate("Slot time in us. Will be calculated automatically by the distance option")).optional = true
+--&&&HAMNET---
+
+	s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold"))
+	s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold"))
+end
+
+
 ------------------- Madwifi Device ------------------
 
 if hwtype == "atheros" then
@@ -474,6 +572,70 @@
 
 
 
+-------------------- MAC80211_ath5k Interface ----------------------
+
+if hwtype == "mac80211_ath5k" then
+	if fs.access("/usr/sbin/iw") then
+		mode:value("mesh", "802.11s")
+	end
+
+	mode:value("ahdemo", translate("Pseudo Ad-Hoc (ahdemo)"))
+	mode:value("monitor", translate("Monitor"))
+	bssid:depends({mode="adhoc"})
+	bssid:depends({mode="sta"})
+	bssid:depends({mode="sta-wds"})
+
+	mp = s:taboption("macfilter", ListValue, "macfilter", translate("MAC-Address Filter"))
+	mp:depends({mode="ap"})
+	mp:depends({mode="ap-wds"})
+	mp:value("", translate("disable"))
+	mp:value("allow", translate("Allow listed only"))
+	mp:value("deny", translate("Allow all except listed"))
+
+	ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List"))
+	ml.datatype = "macaddr"
+	ml:depends({macfilter="allow"})
+	ml:depends({macfilter="deny"})
+
+	mode:value("ap-wds", "%s (%s)" % {translate("Access Point"), translate("WDS")})
+	mode:value("sta-wds", "%s (%s)" % {translate("Client"), translate("WDS")})
+
+	function mode.write(self, section, value)
+		if value == "ap-wds" then
+			ListValue.write(self, section, "ap")
+			m.uci:set("wireless", section, "wds", 1)
+		elseif value == "sta-wds" then
+			ListValue.write(self, section, "sta")
+			m.uci:set("wireless", section, "wds", 1)
+		else
+			ListValue.write(self, section, value)
+			m.uci:delete("wireless", section, "wds")
+		end
+	end
+
+	function mode.cfgvalue(self, section)
+		local mode = ListValue.cfgvalue(self, section)
+		local wds  = m.uci:get("wireless", section, "wds") == "1"
+
+		if mode == "ap" and wds then
+			return "ap-wds"
+		elseif mode == "sta" and wds then
+			return "sta-wds"
+		else
+			return mode
+		end
+	end
+
+	hidden = s:taboption("general", Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
+	hidden:depends({mode="ap"})
+	hidden:depends({mode="ap-wds"})
+--&&&HAMNET+++
+	s:taboption("general", Value, "callsign", translate("HAM Radio Callsign (e.g. HB9XAR-45)")).optional = true
+--&&&HAMNET---
+end
+
+
+
 -------------------- Madwifi Interface ----------------------
 
 if hwtype == "atheros" then
@@ -685,7 +847,7 @@
 encr:value("wep-open",   translate("WEP Open System"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
 encr:value("wep-shared", translate("WEP Shared Key"),  {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
 
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "mac80211_ath5k" or hwtype == "prism2" then
 	local supplicant = fs.access("/usr/sbin/wpa_supplicant")
 	local hostapd = fs.access("/usr/sbin/hostapd")
 
@@ -846,7 +1008,7 @@
 end
 
 
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "mac80211_ath5k" or hwtype == "prism2" then
 	nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"))
 	nasid:depends({mode="ap", encryption="wpa"})
 	nasid:depends({mode="ap", encryption="wpa2"})
diff -Naur luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua
--- luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua	2012-04-14 11:35:58.000000000 +0200
@@ -18,7 +18,8 @@
 local util = require "nixio.util"
 
 local devices = {}
-util.consume((fs.glob("/dev/sd*")), devices)
+--&&&util.consume((fs.glob("/dev/sd*")), devices)
+util.consume((fs.glob("/dev/sd[b-z]*")), devices)
 util.consume((fs.glob("/dev/hd*")), devices)
 util.consume((fs.glob("/dev/scd*")), devices)
 util.consume((fs.glob("/dev/mmc*")), devices)
diff -Naur luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_system/system.lua luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_system/system.lua
--- luci-0.10.0.orig/modules/admin-full/luasrc/model/cbi/admin_system/system.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/modules/admin-full/luasrc/model/cbi/admin_system/system.lua	2012-04-14 11:42:56.000000000 +0200
@@ -21,6 +21,9 @@
 
 local m, s, o
 local has_ntpd = luci.fs.access("/usr/sbin/ntpd")
+--&&& NTPD in /sbin/
+--&&& locat has_ntpd = luci.fs.access("/sbin/ntpd")
+--&&& but this is anothe package & config algo.
 
 m = Map("system", translate("System"), translate("Here you can configure the basic aspects of your device like its hostname or the timezone."))
 m:chain("luci")
diff -Naur luci-0.10.0.orig/modules/admin-mini/luasrc/controller/mini/system.lua luci-0.10.0/modules/admin-mini/luasrc/controller/mini/system.lua
--- luci-0.10.0.orig/modules/admin-mini/luasrc/controller/mini/system.lua	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/modules/admin-mini/luasrc/controller/mini/system.lua	2012-04-14 11:44:36.000000000 +0200
@@ -25,7 +25,8 @@
 end
 
 function action_backup()
-	local reset_avail = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
+--&&&	local reset_avail = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
+	local reset_avail = false
 	local restore_cmd = "gunzip | tar -xC/ >/dev/null 2>&1"
 	local backup_cmd  = "tar -c %s | gzip 2>/dev/null"
 	
diff -Naur luci-0.10.0.orig/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm luci-0.10.0/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm
--- luci-0.10.0.orig/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm	2012-04-14 10:36:14.000000000 +0200
+++ luci-0.10.0/themes/openwrt/luasrc/view/themes/openwrt.org/header.htm	2012-04-19 23:16:00.000000000 +0200
@@ -19,6 +19,9 @@
 
 	local hostname = sys.hostname()
 	local load1, load5, load15 = sys.loadavg()
+--&&&HAMNET+++
+	local uptime   = luci.sys.uptime()
+--&&&HAMNET---
 
 	local request  = disp.context.path
 	local request2 = disp.context.request
@@ -122,6 +125,9 @@
 
 <div class="hostinfo">
 	<%=hostname%> | <%=luci.version.distversion%> |
+<!-- HAMNET +++ -->
+	<%:reboot%>: <%="%s" %  (os.date("%Y-%m-%d %H:%M:%S", os.time()-uptime))%> |
+<!-- HAMNET -->
 	<%:Load%>: <%="%.2f" % load1%> <%="%.2f" % load5%> <%="%.2f" % load15%>
 	<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
 		| <%:Auto Refresh%>:
