Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    OLSR mesh GUI $400 {awarded}

    Scheduled Pinned Locked Moved Completed Bounties
    95 Posts 7 Posters 82.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sullrich
      last edited by

      Okay, I'll look at it soon.  I have a wedding to attend so I will not have much time for the next day.

      1 Reply Last reply Reply Quote 0
      • P
        pcatiprodotnet
        last edited by

        I would copy the file /var/etc/olsrd.conf to /root and then add a script to /usr/local/etc/rc.d/ to copy the file back on bootup.

        Something like this:

        #!/bin/sh
        cp /root/olsrd.conf /var/etc/
        killall olsrd
        olsrd -f /var/etc/olsrd.conf

        Since the OLSR GUI isn't finished and I need to get this running, I copied my olsrd.conf configs from Metrix Pyramid (very easy to set up but Metrix isn't stable and crashes most days, at least for me using wrap.2c and atheros).

        Other helpful shell commands for custom configs:
        make the CF file system writable…
        mount -w /
        make my new boot shell script executable...
        chmod 555 olsr.sh
        make olsr it's own process so shell script may exit...
        olsrd -f /var/etc/olsrd.conf &

        One final hurdle: Metrix Pyramid uses "dnsmasq" to serve dhcp with subset IP ranges and Netmask just like I wanted.
        I examined Metrix's dnsmasq.conf file and found the lines for custom dhcp.  I noticed that pfSense also uses dnsmasq.
        In pfSense, how do I start dnsmasq with my own custom config file?

        Thank you,

        • Pete
        • Internet Professionals, LLC
        • pc@ipro.net
        1 Reply Last reply Reply Quote 0
        • S
          sullrich
          last edited by

          Start it with

          /usr/local/sbin/dnsmasq -l /var/dhcpd/var/db/dhcpd.leases -s domainname.com

          Replace /var/dhcpd/var/db/dhcpd.leases with the leases file

          1 Reply Last reply Reply Quote 0
          • P
            pcatiprodotnet
            last edited by

            Thanks for the help!  I got OLSR and DHCP configured exactly how the should be.
            I unchecked the dhcp in pfsense gui to stop dhcpd, and added a boot script for dnsmasq with your parameters plus -C
            In dnsmasq.conf I copied from Metrix Pyramid and changed eth0 to sis0 on some lines:
            interface=sis0
            interface=ath0
            dhcp-range=10.130.6.10,10.130.6.254,255.255.255.0,2h# ath0
            dhcp-range=10.136.6.10,10.136.6.254,255.255.255.0,2h# sis0
            dhcp-option=119,ipro.net

            So, now OLSR and DHCP are configured perfectly.  I'll post the whole configs here after more testing so they may be integrated into the olsr gui setup.

            Thank you,
            -Pete

            1 Reply Last reply Reply Quote 0
            • S
              sullrich
              last edited by

              Sounds good.  We'll be releasing RC1 soon and as soon as that happens I would like to wrap up the OLSR and get that solid.

              1 Reply Last reply Reply Quote 0
              • P
                pcatiprodotnet
                last edited by

                " We'll be releasing RC1 soon… "
                It's encouraging to see pfSense under active devoted development.  I'm up and running with the
                custom configs and startup scripts so this will certainly keep.  pfSense is performing extremely well
                functioning as olsr nodes.  Stable and fast!  I am well pleased.

                Here are the config files I'm using on every pfSense node in our mesh (although the gateway is
                set up slightly different), and they work great; please modify default config settings to match.
                My olsr.conf is nearly identical to Freifunk's; they run an olsr mesh in Germany with over 150 nodes.
                My dnsmasq.conf is nearly identical to Metrix Pyramid's; dnsmasq completely supersedes dhcpd for me.
                Of course my individual settings (eg IP Netmask <node#>comments etc) should be replaced by gui
                auto-generated configs.  I'll consider this bounty to be finalized when the olsr gui can auto-generate same/
                same-in-function configs thus eliminating the need to upload custom .conf files and boot shell scripts.

                About my olsr network:
                My WAN port IP address block for olsr is: 10.128/13.
                Each node is assigned a Class-C within the above range: .1 for itself and .10 to .254 for dhcp to WAN clients not running olsr.
                Each node is also assigned a Class-C within the 10.136/15 range for dhcp to LAN clients.
                In the following configs, I replace the string "<node#>" with a unique node number between 1 and 254.

                /root/olsr.conf

                DebugLevel 0
                IpVersion 4
                ClearScreen yes
                Hna4
                {
                    10.130.<node#>.0 255.255.255.0    # this node's WAN clients
                    10.136.<node#>.0 255.255.255.0    # this node's LAN clients - Comment out if I am a gateway.
                    #0.0.0.0 0.0.0.0    # Uncomment if I am a gateway.
                }
                AllowNoInt yes
                Willingness 6
                IpcConnect
                {
                    MaxConnections  0
                    Host            127.0.0.1
                }
                UseHysteresis no
                LinkQualityLevel 2
                LinkQualityWinSize 100
                Pollrate 0.1
                TcRedundancy 2
                MprCoverage 7
                LoadPlugin "/usr/local/lib/olsrd_httpinfo.so.0.1"
                {
                    PlParam    "port"  "8080"
                    PlParam    "Net"    "0.0.0.0 0.0.0.0"
                }
                Interface "ath0"
                {
                    HelloInterval 5.0
                    HelloValidityTime 90.0
                    TcInterval 2.0
                    TcValidityTime 270.0
                    MidInterval 15.0
                    MidValidityTime 90.0
                    HnaInterval 15.0
                    HnaValidityTime 90.0
                }

                /root/dnsmasq.conf

                domain-needed
                bogus-priv
                interface=ath0
                interface=sis0
                bind-interfaces
                #addn-hosts=/var/run/hosts_olsr
                expand-hosts
                domain=olsr
                dhcp-range=ath0,10.130.<node#>.10,10.130.<node#>.254,255.255.255.0,2h# ath0
                dhcp-range=sis0,10.136.<node#>.10,10.136.<node#>.254,255.255.255.0,2h# sis0

                Comment out the above line if this node is a gateway and thus likely has No LAN clients.

                dhcp-option=119,olsr
                dhcp-lease-max=254
                no-negcache


                Issue #17: Solved...
                When olsr is enabled, dhcpd process should be stopped, and instead reconfig & restart dnsmasq for dhcp (or, perhaps delete dhcpd from pfSense altogether and use dnsmasq for dhcp full time).

                Issue #18: The vast majority of olsr setups will need two "Announce Dynamic local route" gui fields for two IP & Netmask entries.  One to announce routes back to local wireless clients, and another to announce routes back to local lan clients.  The lan client IP range should be outside of the wan IP range.  (I prefer the interfaces not have overlaping IP ranges.  And, I tried to get around needing two announcements by turning on bridging, but there is an atheros driver bug in freebsd that causes wan to be Extremely slow when bridged and in ad-hoc mode.)

                Issue #19?: Solved...
                I am no longer experiencing intermittent problems with ARP announcements from "barely out of range" neighbor node's MACs overwriting olsr preferred routes in the route table.  This is likely due to timing alterations in olsr.conf; perhaps one of the altered values determines how often olsr updates the route table.  Although I haven't researched the meaning of every config line yet, having tested Freifunk & Metrix and observed how well olsr functions on those systems, I trust their developer's judgement.

                Thank you,

                • Pete
                • Internet Professionals, LLC
                • pc@ipro.net</node#></node#></node#></node#></node#></node#></node#></node#>
                1 Reply Last reply Reply Quote 0
                • S
                  sullrich
                  last edited by

                  Can you do me a favor and test RC1 and let me know what we need to wrap up?  Somewhat unsure what bugs are still lingering…. Thanks!!

                  1 Reply Last reply Reply Quote 0
                  • P
                    pcatiprodotnet
                    last edited by

                    Can you do me a favor and test RC1 and let me know what we need to wrap up?  Somewhat unsure what bugs are still lingering…. Thanks!!

                    I hope to find some free time for testing RC1 within a week.  I must build a spare PC to test it, since all of our WRAP units are currently deployed in production because we're very pleased using pfSense along with the olsr & dnsmasq config files I copy/pasted into this post ( http://forum.pfsense.org/index.php?topic=677.msg8294#msg8294 ).  If the olsr gui was updated just a little more to be capable of auto-generating configs like these, I could do some quick and easy testing on our production mesh.

                    Also, I solved issue #17 by using dnsmasq, instead of dhcpd, to allow a "manually entered Netmask" to function without errors; could the solution be implemented as described in this post http://forum.pfsense.org/index.php?topic=677.msg8294#msg8294

                    @pcatiprodotnet:

                    17. Please allow in the DHCP GUI, a manually entered Netmask, when OLSR is enabled on that interface.
                    (the purpose of this is to force a node's non-olsr ad-hoc wifi clients to route through the current node as a gateway onto olsr, so it may communicate with nodes that are otherwise out-of-range for non-olsr wifi clients when they use the netmask of the interface).

                    @pcatiprodotnet:

                    We'll up the total bounty payout to $400 if the issues directly above can be resolved within a week, and made available in an imbedded snapshot/beta shortly thereafter.

                    Thank you,

                    • Pete
                    • pc@ipro.net
                    • Internet Professionals, LLC
                    1 Reply Last reply Reply Quote 0
                    • S
                      sullrich
                      last edited by

                      Any updates?  I would like to get this sucker sealed and delivered as it is one of the holdupds of release.

                      1 Reply Last reply Reply Quote 0
                      • P
                        pcatiprodotnet
                        last edited by

                        Will test latest snapshot this weekend; we just got a few extra WRAP units.

                        1 Reply Last reply Reply Quote 0
                        • S
                          sullrich
                          last edited by

                          Thanks!!

                          1 Reply Last reply Reply Quote 0
                          • P
                            pcatiprodotnet
                            last edited by

                            Using Embedded Snapshot 7-10-06.  I get this on a blank white page after checking olsr and pressing submit…
                            Warning: Invalid argument supplied for foreach() in /etc/inc/services.inc on line 1134 Warning: Cannot modify header information - headers already sent by (output started at /etc/inc/services.inc:1134) in /usr/local/www/pkg_edit.php on line 35

                            1 Reply Last reply Reply Quote 0
                            • S
                              sullrich
                              last edited by

                              Believe it or not, this bug wasn't my fault  ;D

                              run this from a shell:

                              /etc/rc.conf_mount_rw
                              fetch -o /etc/inc/services.inc http://www.pfsense.com/~sullrich/services.inc
                              /etc/rc.conf_mount_ro

                              Then test again.

                              1 Reply Last reply Reply Quote 0
                              • A
                                Altern
                                last edited by

                                So, the maker of the OLSR GUI was actually awarded $400?

                                1 Reply Last reply Reply Quote 0
                                • B
                                  billm
                                  last edited by

                                  @Altern:

                                  So, the maker of the OLSR GUI was actually awarded $400?

                                  Yes

                                  pfSense core developer
                                  blog - http://www.ucsecurity.com/
                                  twitter - billmarquette

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    thedan
                                    last edited by

                                    @sullrich:

                                    Sounds good.  We'll be releasing RC1 soon and as soon as that happens I would like to wrap up the OLSR and get that solid.

                                    Can someone please clarify whether or not the OLSR gui is "solid" yet? I have been struggling to get a mesh working between two WRAP boards, a linux box and a windows box. One of the WRAP boards is to be a DHCP server for the other nodes. Currently there is no route to the Internet but that may change. Any advice would very much be appreciated…

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pcatiprodotnet
                                      last edited by

                                      " So, the maker of the OLSR GUI was actually awarded $400? "
                                      Hi thedan,
                                      The OLSR GUI is not quite finished yet, but that is mostly my fault for not having free time lately test changes and post debug suggestions to Sullrich.  And, it may be another month or two before I get such free time again.  In the mean time, anyone may feel free to test the current OLSR GUI and post bug reports here.  Rest assured we have not given up on this bounty.
                                      If you need a solid OLSR immediately, please see the following forum post for help setting it up manually (not using the GUI)…
                                      http://forum.pfsense.org/index.php/topic,2353.0.html
                                      Thank you,
                                      -Pete

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        thedan
                                        last edited by

                                        Thanks very much Pete. I can confirm that your OLSR gui appears to be working in that it generates proper configuration files

                                        I managed to get OLSRd working manually, though I still have a few problems with dnsmasq.

                                        I personally would find it useful though if it supported more OLSR options such as HELLO/MID/HNA/TC values, MPR coverage and hysteresis… or at the very least, if it could somehow not overwrite custom configuration changes to such settings.

                                        -Dan

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pcatiprodotnet
                                          last edited by

                                          I personally would find it useful though if it supported more OLSR options such as HELLO/MID/HNA/TC values, MPR coverage and hysteresis… or at the very least, if it could somehow not overwrite custom configuration changes to such settings.

                                          Agreed.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.