aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/olsrd.inc296
-rw-r--r--config/olsrd.xml141
-rw-r--r--pkg_config.8.xml13
-rw-r--r--pkg_config.8.xml.amd6413
-rw-r--r--pkg_config.xml16
5 files changed, 479 insertions, 0 deletions
diff --git a/config/olsrd.inc b/config/olsrd.inc
new file mode 100644
index 00000000..9db79f1f
--- /dev/null
+++ b/config/olsrd.inc
@@ -0,0 +1,296 @@
+<?php
+/* COPYRIGHT */
+
+require_once("config.inc");
+
+function setup_wireless_olsr() {
+ global $config, $g;
+
+ if ($g['platform'] == 'jail' || !$config['installedpackages']['olsrd'] || !$config['installedpackages'])
+ return;
+ if(isset($config['system']['developerspew'])) {
+ $mt = microtime();
+ echo "setup_wireless_olsr($interface) being called $mt\n";
+ }
+ conf_mount_rw();
+
+ foreach($config['installedpackages']['olsrd']['config'] as $olsrd) {
+ $olsr_enable = $olsrd['enable'];
+ if ($olsr_enable <> "on") {
+ if (is_process_running("olsrd"))
+ mwexec("/usr/bin/killall olsrd", true);
+ return;
+ }
+ $fd = fopen("{$g['varetc_path']}/olsr.conf", "w");
+
+ if($olsrd['announcedynamicroute'] or $olsrd['enableannounce'] == "on") {
+ $enableannounce .= "\nHna4\n";
+ $enableannounce .= "{\n";
+ if($olsrd['announcedynamicroute'])
+ $enableannounce .= "\t{$olsrd['announcedynamicroute']}\n";
+ if($olsrd['enableannounce'] == "on")
+ $enableannounce .= "0.0.0.0 0.0.0.0";
+ $enableannounce .= "\n}\n";
+ } else {
+ $enableannounce = "";
+ }
+
+ $olsr .= <<<EODA
+#
+# olsr.org OLSR daemon config file
+#
+# Lines starting with a # are discarded
+#
+# This file was generated by setup_wireless_olsr() in services.inc
+#
+
+# This file is an example of a typical
+# configuration for a mostly static
+# network(regarding mobility) using
+# the LQ extention
+
+# Debug level(0-9)
+# If set to 0 the daemon runs in the background
+
+DebugLevel 2
+
+# IP version to use (4 or 6)
+
+IpVersion 4
+
+# Clear the screen each time the internal state changes
+
+ClearScreen yes
+
+{$enableannounce}
+
+# Should olsrd keep on running even if there are
+# no interfaces available? This is a good idea
+# for a PCMCIA/USB hotswap environment.
+# "yes" OR "no"
+
+AllowNoInt yes
+
+# TOS(type of service) value for
+# the IP header of control traffic.
+# If not set it will default to 16
+
+#TosValue 16
+
+# The fixed willingness to use(0-7)
+# If not set willingness will be calculated
+# dynamically based on battery/power status
+# if such information is available
+
+#Willingness 4
+
+# Allow processes like the GUI front-end
+# to connect to the daemon.
+
+IpcConnect
+{
+ # Determines how many simultaneously
+ # IPC connections that will be allowed
+ # Setting this to 0 disables IPC
+
+ MaxConnections 0
+
+ # By default only 127.0.0.1 is allowed
+ # to connect. Here allowed hosts can
+ # be added
+
+ Host 127.0.0.1
+ #Host 10.0.0.5
+
+ # You can also specify entire net-ranges
+ # that are allowed to connect. Multiple
+ # entries are allowed
+
+ #Net 192.168.1.0 255.255.255.0
+}
+
+# Wether to use hysteresis or not
+# Hysteresis adds more robustness to the
+# link sensing but delays neighbor registration.
+# Used by default. 'yes' or 'no'
+
+UseHysteresis no
+
+# Hysteresis parameters
+# Do not alter these unless you know
+# what you are doing!
+# Set to auto by default. Allowed
+# values are floating point values
+# in the interval 0,1
+# THR_LOW must always be lower than
+# THR_HIGH.
+
+#HystScaling 0.50
+#HystThrHigh 0.80
+#HystThrLow 0.30
+
+
+# Link quality level
+# 0 = do not use link quality
+# 1 = use link quality for MPR selection
+# 2 = use link quality for MPR selection and routing
+# Defaults to 0
+
+LinkQualityLevel {$olsrd['enablelqe']}
+
+# Link quality window size
+# Defaults to 10
+
+LinkQualityWinSize 10
+
+# Polling rate in seconds(float).
+# Default value 0.05 sec
+
+Pollrate 0.05
+
+
+# TC redundancy
+# Specifies how much neighbor info should
+# be sent in TC messages
+# Possible values are:
+# 0 - only send MPR selectors
+# 1 - send MPR selectors and MPRs
+# 2 - send all neighbors
+#
+# defaults to 0
+
+TcRedundancy 2
+
+#
+# MPR coverage
+# Specifies how many MPRs a node should
+# try select to reach every 2 hop neighbor
+#
+# Can be set to any integer >0
+#
+# defaults to 1
+
+MprCoverage 3
+
+# Example plugin entry with parameters:
+
+EODA;
+
+if($olsrd['enablehttpinfo'] == "on") {
+ $olsr .= <<<EODB
+
+LoadPlugin "/usr/local/lib/olsrd_httpinfo.so.0.1"
+{
+ PlParam "port" "{$olsrd['port']}"
+ PlParam "Net" "{$olsrd['allowedhttpinfohost']} {$olsrd['allowedhttpinfosubnet']}"
+}
+
+EODB;
+
+}
+
+if($olsrd['enabledsecure'] == "on") {
+ @file_put_contents("{$g['tmp_path']}/olsrkey.txt", $olsrd['securekey']);
+ $olsr .= <<<EODC
+
+LoadPlugin "/usr/local/lib/olsrd_secure.so.0.5"
+{
+ PlParam "Keyfile" "{$g['tmp_path']}/olsrkey.txt"
+}
+
+EODC;
+
+}
+
+if($olsrd['enabledyngw'] == "on") {
+
+ /* unset default route, olsr auto negotiates */
+ mwexec("/sbin/route delete default");
+
+ $olsr .= <<<EODE
+
+LoadPlugin "/usr/local/lib/olsrd_dyn_gw.so.0.4"
+{
+ # how often to look for a inet gw, in seconds
+ # defaults to 5 secs, if commented out
+ PlParam "Interval" "{$olsrd['polling']}"
+
+ # if one or more IPv4 addresses are given, do a ping on these in
+ # descending order to validate that there is not only an entry in
+ # routing table, but also a real internet connection. If any of
+ # these addresses could be pinged successfully, the test was
+ # succesful, i.e. if the ping on the 1st address was successful,the
+ # 2nd won't be pinged
+ PlParam "Ping" "{$olsrd['ping']}"
+ #PlParam "HNA" "192.168.81.0 255.255.255.0"
+}
+
+EODE;
+
+}
+
+foreach($config['installedpackages']['olsrd']['config'] as $conf) {
+ $interfaces = explode(',', $conf['iface_array']);
+ foreach($interfaces as $interface) {
+ $realinterface = convert_friendly_interface_to_real_interface_name($interface);
+$olsr .= <<<EODAD
+Interface "{$realinterface}"
+{
+
+ # Hello interval in seconds(float)
+ HelloInterval 2.0
+
+ # HELLO validity time
+ HelloValidityTime 20.0
+
+ # TC interval in seconds(float)
+ TcInterval 5.0
+
+ # TC validity time
+ TcValidityTime 30.0
+
+ # MID interval in seconds(float)
+ MidInterval 5.0
+
+ # MID validity time
+ MidValidityTime 30.0
+
+ # HNA interval in seconds(float)
+ HnaInterval 5.0
+
+ # HNA validity time
+ HnaValidityTime 30.0
+
+ # When multiple links exist between hosts
+ # the weight of interface is used to determine
+ # the link to use. Normally the weight is
+ # automatically calculated by olsrd based
+ # on the characteristics of the interface,
+ # but here you can specify a fixed value.
+ # Olsrd will choose links with the lowest value.
+
+ # Weight 0
+
+
+}
+
+EODAD;
+
+ }
+ break;
+}
+ fwrite($fd, $olsr);
+ fclose($fd);
+ }
+
+ if (is_process_running("olsrd"))
+ mwexec("/usr/bin/killall olsrd", true);
+
+ sleep(2);
+
+ mwexec_bg("/usr/local/sbin/olsrd -f {$g['varetc_path']}/olsr.conf");
+
+ conf_mount_ro();
+}
+
+?>
diff --git a/config/olsrd.xml b/config/olsrd.xml
new file mode 100644
index 00000000..9709392d
--- /dev/null
+++ b/config/olsrd.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<packagegui>
+ <name>olsrd</name>
+ <version>1.0</version>
+ <title>OLSRD</title>
+ <include_file>/usr/local/pkg/olsrd.inc</include_file>
+ <!-- Menu is where this packages menu will appear -->
+ <menu>
+ <name>OLSRD</name>
+ <section>Services</section>
+ <configfile>olsrd.xml</configfile>
+ </menu>
+ <service>
+ <name>OLSRD</name>
+ <rcfile>/usr/local/sbin/olsrd -f /var/etc/olsr.conf</rcfile>
+ </service>
+ <tabs>
+ <tab>
+ <text>OLSRD Settings</text>
+ <url>/pkg_edit.php?xml=olsrd.xml&amp;id=0</url>
+ <active/>
+ </tab>
+ </tabs>
+ <additional_files_needed>
+ <prefix>/usr/local/pkg/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.com/packages/config/olsrd.inc</item>
+ </additional_files_needed>
+ <!-- configpath gets expanded out automatically and config items will be
+ stored in that location -->
+ <configpath>['installedpackages']['OLSRD']['config']</configpath>
+ <!-- fields gets invoked when the user adds or edits a item. the following items
+ will be parsed and rendered for the user as a gui with input, and selectboxes. -->
+ <fields>
+ <field>
+ <fielddescr>Enable OLSR</fielddescr>
+ <fieldname>enable</fieldname>
+ <description>Enables the dynamic mesh linking daemon</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Link Quality Level</fielddescr>
+ <fieldname>enablelqe</fieldname>
+ <type>select</type>
+ <size>1</size>
+ <options>
+ <option><value>2</value><name>2</name></option>
+ <option><value>0</value><name>0</name></option>
+ <option><value>1</value><name>1</name></option>
+ </options>
+ </field>
+ <field>
+ <fielddescr>Interfaces</fielddescr>
+ <fieldname>iface_array</fieldname>
+ <value>lan</value>
+ <multiple>true</multiple>
+ <size>3</size>
+ <type>interfaces_selection</type>
+ <description>Select the interfaces that OLSR will bind to. You can use the CTRL or COMMAND key to select multiple interfaces.</description>
+ </field>
+ <field>
+ <fielddescr>Enable HTTPInfo Plugin</fielddescr>
+ <fieldname>enablehttpinfo</fieldname>
+ <description>Enables the OLSR stats web server</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>HTTPInfo Port</fielddescr>
+ <fieldname>port</fieldname>
+ <description>Port that HTTPInfo will listen on</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Allowed host(s)</fielddescr>
+ <fieldname>allowedhttpinfohost</fieldname>
+ <description>Hosts that are allowed to access the HTTPInfo web service.</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Allowed host(s) subnet</fielddescr>
+ <fieldname>allowedhttpinfosubnet</fieldname>
+ <description>Enter the subnet mask in form 255.255.255.0</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Enable Dynamic Gateway</fielddescr>
+ <fieldname>enabledyngw</fieldname>
+ <description>Enables the OLSR Dynamic Gateways feature</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Announce self as Dynamic Gateway</fielddescr>
+ <fieldname>enableannounce</fieldname>
+ <description>Enables the OLSR Dynamic Gateways Announcing feature</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Announce Dynamic local route</fielddescr>
+ <fieldname>announcedynamicroute</fieldname>
+ <description>Enter the IP/Netmask</description>
+ <type>textarea</type>
+ <rows>3</rows>
+ <cols>50</cols>
+ </field>
+ <field>
+ <fielddescr>Ping</fielddescr>
+ <fieldname>ping</fieldname>
+ <description>Pings this host to ensure connectivity</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Poll</fielddescr>
+ <fieldname>polling</fieldname>
+ <description>How often to look for a inet gw, in seconds.</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Enable Secure Mode</fielddescr>
+ <fieldname>enabledsecure</fieldname>
+ <description>Enables the secure mode</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Key</fielddescr>
+ <fieldname>securekey</fieldname>
+ <description>Paste the secure key information here.</description>
+ <type>textarea</type>
+ <rows>5</rows>
+ <cols>50</cols>
+ </field>
+ </fields>
+ <custom_delete_php_command>
+ </custom_delete_php_command>
+ <custom_php_resync_config_command>
+ setup_wireless_olsr($if);
+ </custom_php_resync_config_command>
+ <custom_php_install_command>
+ </custom_php_install_command>
+ <custom_php_deinstall_command>
+ </custom_php_deinstall_command>
+</packagegui>
diff --git a/pkg_config.8.xml b/pkg_config.8.xml
index e1d4defd..7ca6a134 100644
--- a/pkg_config.8.xml
+++ b/pkg_config.8.xml
@@ -399,6 +399,19 @@
<after_install_info>Please visit the Snort settings tab and enter your oinkid code. Afterwards visit the update rules tab to download the snort rules.</after_install_info>
</package>
<package>
+ <name>olsrd</name>
+ <website>http://www.olsr.org/</website>
+ <descr>The olsr.org OLSR daemon is an implementation of the Optimized Link State Routing protocol. OLSR is a routing protocol for mobile ad-hoc networks. The protocol is pro-active, table driven and utilizes a technique called multipoint relaying for message flooding.</descr>
+ <category>Services</category>
+ <config_file>http://www.pfsense.com/packages/config/olsrd.xml</config_file>
+ <depends_on_package_base_url>http://files.pfsense.org/packages/All/</depends_on_package_base_url>
+ <depends_on_package>olsrd-0.6.2.tbz</depends_on_package>
+ <version>1.0</version>
+ <status>Stable</status>
+ <required_version>2.1</required_version>
+ <configurationfile>olsrd.xml</configurationfile>
+ </package>
+ <package>
<name>spamd</name>
<website>http://www.openbsd.org/spamd/</website>
<descr>Tarpits like spamd are fake SMTP servers, which accept connections but don't deliver mail. Instead, they keep the connections open and reply very slowly. If the peer is patient enough to actually complete the SMTP dialogue (which will take ten minutes or more), the tarpit returns a 'temporary error' code (4xx), which indicates that the mail could not be delivered successfully and that the sender should keep the mail in their queue and retry again later.</descr>
diff --git a/pkg_config.8.xml.amd64 b/pkg_config.8.xml.amd64
index b2ba6ed5..339c15be 100644
--- a/pkg_config.8.xml.amd64
+++ b/pkg_config.8.xml.amd64
@@ -480,6 +480,19 @@
<after_install_info>Please visit the Snort settings tab and enter your oinkid code. Afterwards visit the update rules tab to download the snort rules.</after_install_info>
</package>
<package>
+ <name>olsrd</name>
+ <website>http://www.olsr.org/</website>
+ <descr>The olsr.org OLSR daemon is an implementation of the Optimized Link State Routing protocol. OLSR is a routing protocol for mobile ad-hoc networks. The protocol is pro-active, table driven and utilizes a technique called multipoint relaying for message flooding.</descr>
+ <category>Services</category>
+ <config_file>http://www.pfsense.com/packages/config/olsrd.xml</config_file>
+ <depends_on_package_base_url>http://files.pfsense.org/packages/All/</depends_on_package_base_url>
+ <depends_on_package>olsrd-0.6.2.tbz</depends_on_package>
+ <version>1.0</version>
+ <status>Stable</status>
+ <required_version>2.1</required_version>
+ <configurationfile>olsrd.xml</configurationfile>
+ </package>
+ <package>
<name>spamd</name>
<website>http://www.openbsd.org/spamd/</website>
<descr>Tarpits like spamd are fake SMTP servers, which accept connections but don't deliver mail. Instead, they keep the connections open and reply very slowly. If the peer is patient enough to actually complete the SMTP dialogue (which will take ten minutes or more), the tarpit returns a 'temporary error' code (4xx), which indicates that the mail could not be delivered successfully and that the sender should keep the mail in their queue and retry again later.</descr>
diff --git a/pkg_config.xml b/pkg_config.xml
index 32e50524..270bbf3a 100644
--- a/pkg_config.xml
+++ b/pkg_config.xml
@@ -26,6 +26,22 @@
<configurationfile>autoconfigbackup.xml</configurationfile>
</package>
<package>
+ <name>olsrd</name>
+ <website>http://www.olsr.org/</website>
+ <descr>The olsr.org OLSR daemon is an implementation of the Optimized Link
+State Routing protocol. OLSR is a routing protocol for mobile ad-hoc
+networks. The protocol is pro-active, table driven and utilizes a
+technique called multipoint relaying for message flooding.</descr>
+ <category>Services</category>
+ <config_file>http://www.pfsense.com/packages/config/olsrd.xml</config_file>
+ <depends_on_package_base_url>http://files.pfsense.org/packages/All/</depends_on_package_base_url>
+ <depends_on_package>olsrd-0.6.2.tbz</depends_on_package>
+ <version>1.0</version>
+ <status>Stable</status>
+ <required_version>2.1</required_version>
+ <configurationfile>olsrd.xml</configurationfile>
+ </package>
+ <package>
<name>spamd</name>
<website>http://www.openbsd.org/spamd/</website>
<descr>Tarpits like spamd are fake SMTP servers, which accept connections but don't deliver mail. Instead, they keep the connections open and reply very slowly. If the peer is patient enough to actually complete the SMTP dialogue (which will take ten minutes or more), the tarpit returns a 'temporary error' code (4xx), which indicates that the mail could not be delivered successfully and that the sender should keep the mail in their queue and retry again later.</descr>