summaryrefslogtreecommitdiffhomepage
path: root/contrib/package/olsrd-luci/files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-09-01 23:02:29 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-09-01 23:02:29 +0000
commitf8b5b746aca6a9c49d43a98ebeb4b43b344f91ca (patch)
treef5f3f5a9ba8a9e1756cc158d4eb7608f6f75e54e /contrib/package/olsrd-luci/files
parentc245841b4818075ad9d3fb8bc1f0b3b97b24a2e7 (diff)
* luci/contrib: add fork of openwrt olsrd
Diffstat (limited to 'contrib/package/olsrd-luci/files')
-rw-r--r--contrib/package/olsrd-luci/files/etc/config/olsr42
-rw-r--r--contrib/package/olsrd-luci/files/etc/default/olsrd8
-rwxr-xr-xcontrib/package/olsrd-luci/files/etc/init.d/olsrd37
-rw-r--r--contrib/package/olsrd-luci/files/lib/config/olsr.lua137
4 files changed, 224 insertions, 0 deletions
diff --git a/contrib/package/olsrd-luci/files/etc/config/olsr b/contrib/package/olsrd-luci/files/etc/config/olsr
new file mode 100644
index 0000000000..a1fe65aa7c
--- /dev/null
+++ b/contrib/package/olsrd-luci/files/etc/config/olsr
@@ -0,0 +1,42 @@
+config 'olsr' 'general'
+ option 'DebugLevel' '0'
+ option 'IpVersion' '4'
+ option 'AllowNoInt' 'yes'
+ option 'Pollrate' '0.025'
+ option 'TcRedundancy' '2'
+ option 'MprCoverage' '7'
+ option 'LinkQualityFishEye' '1'
+ option 'LinkQualityWinSize' '100'
+ option 'LinkQualityDijkstraLimit' '0 9.0'
+ option 'LinkQualityLevel' '2'
+ option 'UseHysteresis' 'no'
+
+config 'LoadPlugin' 'dyn_gw'
+ option 'Library' 'olsrd_dyn_gw.so.0.4'
+
+config 'LoadPlugin' 'nameservice'
+ option 'Library' 'olsrd_nameservice.so.0.3'
+ option 'suffix' '.olsr'
+ option 'latlon_infile' '/tmp/latlon.txt'
+ option 'hosts_file' '/var/etc/hosts'
+ option 'name' 'luci-node'
+
+config 'LoadPlugin' 'txtinfo'
+ option 'Library' 'olsrd_txtinfo.so.0.1'
+ option 'Accept' '127.0.0.1'
+
+config 'Interface'
+ option 'HelloInterval' '6.0'
+ option 'MidValidityTime' '324.0'
+ option 'TcInterval' '4.0'
+ option 'HnaValidityTime' '108.0'
+ option 'HelloValidityTime' '108.0'
+ option 'TcValidityTime' '324.0'
+ option 'HnaInterval' '18.0'
+ option 'MidInterval' '18.0'
+ option 'Interface' 'br-ff'
+
+config 'ipc' 'IpcConnect'
+ option 'MaxConnections' '0'
+ option 'Host' '127.0.0.1 10.0.0.5'
+ option 'Net' '192.168.1.0 255.255.255.0 10.0.0.0 255.0.0.0'
diff --git a/contrib/package/olsrd-luci/files/etc/default/olsrd b/contrib/package/olsrd-luci/files/etc/default/olsrd
new file mode 100644
index 0000000000..d89e007bd4
--- /dev/null
+++ b/contrib/package/olsrd-luci/files/etc/default/olsrd
@@ -0,0 +1,8 @@
+# you can override olsrd's startup variables here
+#BIN=/usr/sbin/olsrd
+#CONF=/var/etc/olsrd.conf
+#PID=/var/run/olsrd.pid
+
+# place your custom olsrd parameters here
+OPTIONS=
+
diff --git a/contrib/package/olsrd-luci/files/etc/init.d/olsrd b/contrib/package/olsrd-luci/files/etc/init.d/olsrd
new file mode 100755
index 0000000000..04c3a75787
--- /dev/null
+++ b/contrib/package/olsrd-luci/files/etc/init.d/olsrd
@@ -0,0 +1,37 @@
+#!/bin/sh /etc/rc.common
+START=50
+
+BIN=/usr/sbin/olsrd
+CONF=/var/etc/olsrd.conf
+DEFAULT=/etc/default/olsrd
+PID=/var/run/olsrd.pid
+
+start() {
+ ### load defaults
+ [ -f $DEFAULT ] && . $DEFAULT
+
+ ### generate config
+ mkdir -p ${CONF%/*}
+ lua /lib/config/olsr.lua > $CONF
+
+ ### check for running instance (start-stop-daemon is too stupid to do this)
+ if [ -s $PID ]; then
+ if kill -0 $(cat $PID) 2>&-; then
+ echo "there is already a running instance ($(cat $PID))"
+ exit 1
+ fi
+ fi
+
+ ### start olsrd
+ start-stop-daemon -b -m -p $PID -x $BIN -S -- -f $CONF -nofork $OPTIONS
+}
+
+stop() {
+ ### stop olsrd
+ start-stop-daemon -q -p $PID -a ${BIN##*/} -K
+}
+
+restart() {
+ ### override generic restart because we need some time between stop and start
+ stop; sleep 3; start
+}
diff --git a/contrib/package/olsrd-luci/files/lib/config/olsr.lua b/contrib/package/olsrd-luci/files/lib/config/olsr.lua
new file mode 100644
index 0000000000..d444e4d7c6
--- /dev/null
+++ b/contrib/package/olsrd-luci/files/lib/config/olsr.lua
@@ -0,0 +1,137 @@
+#!/usr/bin/lua
+
+--[[
+
+OLSRd configuration generator
+(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+]]--
+
+require("luci.util")
+require("luci.model.uci")
+
+local conf = luci.model.uci.get_all("olsr")
+
+local function _value(val)
+ if val:match("^[0-9%. \t]+$") or val == "yes" or val == "no" then
+ return val
+ else
+ return string.format( '"%s"', val )
+ end
+end
+
+local function _section(sect,sval,parstr)
+ local rv = ""
+ local pad = ""
+
+ if sval then
+ rv = string.format( '%s "%s"\n{\n', conf[sect][".type"], conf[sect][sval] )
+ pad = "\t"
+ end
+
+ for k, v in luci.util.spairs(conf[sect]) do
+ if k:sub(1,1) ~= '.' and k ~= sval then
+ if parstr then
+ rv = rv .. string.format(
+ '%s%s "%s"\t"%s"\n',
+ pad, parstr,
+ k:gsub( "_", "-" ), -- XXX: find a better solution for this
+ v
+ )
+ else
+ rv = rv .. string.format(
+ '%s%s\t%s\n',
+ pad, k, _value(v)
+ )
+ end
+ end
+ end
+
+ if sval then
+ rv = rv .. "}\n"
+ end
+
+ return rv
+end
+
+local function _hna(sval)
+ local rv = string.format( "%s\n{\n", sval )
+
+ for k, v in luci.util.spairs(conf) do
+ if conf[k][".type"] == sval and conf[k].NetAddr and conf[k].Prefix then
+ rv = rv .. string.format(
+ "\t%s\t%s\n",
+ conf[k].NetAddr,
+ conf[k].Prefix
+ )
+ end
+ end
+
+ return rv .. "}\n"
+end
+
+local function _ipc(sval)
+ local rv = string.format( "%s\n{\n", sval )
+
+ for k, v in luci.util.spairs(conf[sval]) do
+ if k:sub(1,1) ~= "." then
+ local vals = luci.util.split(v, "%s+", nil, true)
+
+ if k == "Net" then
+ for i = 1,#vals,2 do
+ rv = rv .. string.format(
+ "\tNet\t%s\t%s\n",
+ vals[i], vals[i+1]
+ )
+ end
+ elseif k == "Host" then
+ for i, v in ipairs(vals) do
+ rv = rv .. string.format(
+ "\t%s\t%s\n",
+ k, vals[i]
+ )
+ end
+ else
+ rv = rv .. string.format(
+ "\t%s\t%s\n",
+ k, v
+ )
+ end
+ end
+ end
+
+ return rv .. "}\n"
+end
+
+
+-- general config section
+print( _section("general") )
+
+-- plugin config sections
+for k, v in luci.util.spairs(conf) do
+ if conf[k][".type"] == "LoadPlugin" then
+ print( _section( k, "Library", "PlParam" ) )
+ end
+end
+
+-- interface config sections
+for k, v in luci.util.spairs(conf) do
+ if conf[k][".type"] == "Interface" then
+ print( _section( k, "Interface" ) )
+ end
+end
+
+-- write Hna4, Hna6 sections
+print( _hna("Hna4") )
+print( _hna("Hna6") )
+
+-- write IpcConnect section
+print( _ipc("IpcConnect") )