OLSR mesh GUI $400 {awarded}



  • $300.00 {upgraded to $400!} bounty for an OLSR GUI Web Interface integrated into pfSense, easy enough for those relatively new to networking/wireless/mesh to set up a well functioning and generally well tuned olsr wireless network; also add great olsr extensions such as the "Link Quality Extensions", "Dynamic Internet gateway plugin", "Nameserver plugin", & "Secure OLSR plugin" to help secure and control the mesh.  The next two requests are optional niceties we would like if possible: "Dot topology information plugin", also a way to identify the MAC address of other PCs one communicates with over the mesh, and, as in aldo's "failover routing" bounty, it would be nice to use the olsr mesh to draw upon another internet connection automatically when ours goes down.
    Potential Inspirations for GUI, Features & Implementation …
    http://www.oreillynet.com/pub/a/etel/2006/02/10/free-mesh-networking-with-metrix-pebble.html?page=2
    http://www.meshnode.org/

    We need to use pfSense Embedded version on PC Engine WRAP.2C 266MHz 128MB with one LAN port for power+local LAN and/or internet access, and one EMP-8602 400mw 802.11a/g/b wireless mini-pci card, routing in Ad-Hoc mode.  It appears that olsr is capable of handling backhaul & access point duties all on one wireless card.

    Please let me know the procedure for bounty donation.  In addition, if this bounty turns out Very well (beyond expectations), and the pfSense project still needs, we will also donate one of the above mentioned WRAP systems (complete with power adapter, pigtails and antennas) to the pfSense team, plus upgrade one of the mini-pci wireless cards to an EMP-8602 400mw 802.11a/g/b.
    Related discussions:
    http://forum.pfsense.org/index.php?topic=676.msg4166#msg4166
    http://forum.pfsense.org/index.php?topic=657.0

    Thank you,



  • I am interested in this, but please clarify:

    "and user-optional integration with VPN (for Bridging) over the mesh, all done by the pfSense units."

    What exactly do you have in mind?

    Also, here is a screen shot of the early version (there are a few duplicated texts, etc but I'll fix soon).

    http://www.pfsense.com/~sullrich/pics/olsrd.PNG



  • please clarify:
    "and user-optional integration with VPN (for Bridging) over the mesh, all done by the pfSense units."
    What exactly do you have in mind?
    Thank you for your interest sullrich.  Please disregard mention of "VPN", unless you end up finding it a useful tool for this and/or aldo's bounty.  One of our goals is to find way to identify not just the IP address but also the MAC address of PCs I'm communicating with across the olsr mesh.  If you know of a better way to accomplish this, or if this is impossible, no problem.
    Thanks, -Pete



  • nebe the option to alow pfsense to add vpn conections that are made to the pfsense olsrd server to be add to the hna of olsr
    so that when a user makes a conection to the pfsense server by vpn ipsec or ptpp can be reacht from  the whole olsrd mesh
    option to add networks by hand  in the hna so that you can add networks that don't use olsrd but are conected to  the pfsense olsrd server
    so that those can be reacht from any where on the olsrd mesh

    hna before vpn conection:

    local lan network

    10.141.254.0 255.255.255.0

    hna afther pe1roc logs in on ptpp and gets ipadress 10.141.250.226 and netmask 255.255.255.254

    local lan network

    10.141.254.0 255.255.255.0

    vpn ptpp user pe1roc

    10.141.250.226 255.255.255.254



  • I just noticed the latest Beta has an OLSR GUI.  Is the OLSR GUI ready for testing?  Does it also support OLSR "Link Quality Extensions"?  Usually olsr gui's have a check box for it.  If so, I'll make time over the next few weeks to test it, then award the bounty if all goes well.  (post/pm paypal addr).



  • Scott did a GUI for it, but it does not have all the parameters in it, but it should work. Anything you need you should tell scott, and possibly also explain what the config entries looks like and what the different settings are (if any).
    I can also add stuff to it if scott is busy. I worked on olsr in the past, but never got around to implement a propper GUI for it.



  • You can find our paypal address in the donations area.  This is still a work in progress so I hope to have feedback to improve.



  • I just tried to enable olsr and got this error page…

    Warning: fopen(/usr/local/etc/olsrkey.txt): failed to open stream: Read-only file system in /usr/local/www/pkg_edit.php(172) : eval()'d code on line 1 Warning: fwrite(): supplied argument is not a valid stream resource in /usr/local/www/pkg_edit.php(172) : eval()'d code on line 1 Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/pkg_edit.php(172) : eval()'d code on line 1 Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/pkg_edit.php(172) :
    eval()'d code:1) in /usr/local/www/pkg_edit.php on line 186

    Will try again next beta snapshot release. Thanks,-Pete



  • This is already fixed in CVS.



  • explain what the config entries looks like

    I haven't attempted to set OLSR up without a gui yet.
    The OLSR windows version has an easy installer and a decent gui to study.
    Perhaps it also writes config files that are compatible with other platforms?



  • Issues I've noticed so far that are needed to finish up this bounty …

    1. Need a Check box for "Link Quality Extensions".
    x2. Tabs/Check-boxes for capability to enable OLSR on multiple Network Interfaces. {done: use Ctrl key to multi-select}
    3. I tried to enable and view the olsr web stats but it was just an empty page; am I using this correctly?
    4. When olsr is checked enabled, alter the DHCP server/forwarding GUI so that DHCP may be enabled on wan/all interfaces.
    5. For HNA (Dynamic Internet gateway) to function, I read on the olsr-users mailing list that the Wan Gateway should
        be unset, which is currently not possible in the gui.  Is this correct?  Perhaps there is more to making this work.

    Thanks,
    -Pete



  • @pcatiprodotnet:

    2. Tabs/Check-boxes for capability to enable OLSR on multiple Network Interfaces.

    Uhh that works now.  Hold down the CTRL key and select the interfaces you want.  I'll look into the others.



  • Good grief, I'm sorry I had no idea the Ctrl key could be used like that. Thanks, -Pete



  • Sounds like we need to add a blurb under the interface control describing this behavior.



  • @pcatiprodotnet:

    Issues I've noticed so far that are needed to finish up this bounty …

    1. Need a Check box for "Link Quality Extensions".
    x. Tabs/Check-boxes for capability to enable OLSR on multiple Network Interfaces. {done: use Ctrl key to multi-select}
    3. I tried to enable and view the olsr web stats but it was just an empty page; am I using this correctly?
    4. When olsr is checked enabled, alter the DHCP server/forwarding GUI so that DHCP may be enabled on wan/all interfaces.
    5. For HNA (Dynamic Internet gateway) to function, I read on the olsr-users mailing list that the Wan Gateway should
        be unset, which is currently not possible in the gui.  Is this correct?  Perhaps there is more to making this work.

    Thanks,
    -Pete

    All of these with exception of #3 should be resolved.

    Please do a cvs_sync.sh RELENG_1 and test.

    Thanks!



  • Thanks Scott!  We plan to run a small test tomorrow at work with 3 pfSense ad-hoc olsr nodes
    (placing node#1 & node#3 out of range of each other) and several non-olsr wi-fi & lan clients.

    Here are a couple replies I received from the olsr-users mailing list so far regarding olsr configuration…

    Quote: " On OLSR nodes, you'd leave gateway unset, as the HNA announcement
    of 0.0.0.0 sets the default gateway on all nodes that hear it. For DNS, I
    have it manually set, though there's a plugin for this apparently in OLSR. "
    --Me: Is he referring to the "Nameservice" plugin?  Automatically setting DNS to the HNA would be great.

    --Me: I want our olsr nodes to also serve Non-olsr client PCs.
    --Should the node's DHCP server serve the node's own IP address as
    --the Gateway & DNS to the Non-olsr client PCs?
    Quote: " Yes, at least that's how I've setup our network. "

    Quote: " If nodes dont see each other (dont show up in the list), then
    there is propably something wrong with their broadcast addresses. "

    Thank you, -Pete



  • I tried that upgrade command but it gave the following errors:
    (I am running beta3 embedded)

    cvs_sync.sh RELENG_1

    Setting CVS_IP to cvs.pfsense.com
    Cannot find cvsup, pkg_add in progress
    /usr/local/sbin/cvs_sync.sh: /usr/sbin/pkg_add: not found
    Cannot find cvs, fetching static cvs…
    fetch: http://www.pfsense.com/~sullrich/extra/cvs: Temporary Redirect
    chmod: /usr/bin/cvs: No such file or directory
    Syncing with pfSense.com
    Checking out RELENG_1
    mkdir: /root/pfSense: Read-only file system
    cd: can't cd to /root/pfSense//..
    mkdir: /root/pfSenseCO: Read-only file system
    cd: can't cd to /root/pfSenseCO/
    cd: can't cd to /root/pfSenseCO//
    cd: can't cd to /root/pfSenseCO//
    Installing new files...cd: can't cd to /root/pfSenseCO//pfSense
    x .
    x .cshrc: Can't open '.cshrc': File exists
    x .login: Can't open '.login': Read-only file system
    x .profile: Can't open '.profile': File exists
    x .shrc: Can't open '.shrc': Read-only file system
    x .tcshrc: Can't open '.tcshrc': Read-only file system
    x .hushlogin: Can't open '.hushlogin': Read-only file system
    CVS Sync Complete

    Restarting webConfigurator... done.



  • You cannot cvs_sync.sh on embedded.  Wait for the next snapshot or beta4.



  • No problem.  I think we can go ahead with tests today; it seems functional.
    I did get the olsr stats (issue#3) to function; I far as I can recall I don't think I did anything different.
    A couple more issues…
    6. I have noticed that sometimes when I click [Save] on the OLSR configuration page it fails to start OLSR.
        I would check the logs and there would be No listing for "olsrd[4494]: olsr.org - 0.4.10 successfully started".
    7. It also seems OLSR won't start on boot so far; I must open the olsr config page and [Save] to get it running.
    Thanks,-Pete



  • Alright, I've made some monitor adjustments to the start code.  Let's see what happens on next testing image.



  • Another note, I have the feeling that issue#3 may be related to issues#6 & #7.



  • Yep, sure is.

    I just fixed this one as well.



  • " You cannot cvs_sync.sh on embedded.  Wait for the next snapshot or beta4. "
    Will do.  We'll run our final tests after the next snapshot is released.

    I was curious, on the olsr GUI, is the "Enable Secure Mode" referring to the "Secure OLSR Plugin"?
    I haven't tried that feature yet, but it should prove quite useful.

    Are the following plugins in pfSense yet?
    "Nameservice" – we hope to use this to automatically assign DNS to the HNA (gateway), so no need to hard-code dns.
    "Dot topology information plugin" -- for visually rendering the mesh; just icing for now, but would be handy after the mesh grows.

    Thank you, -Pete



  • @pcatiprodotnet:

    " You cannot cvs_sync.sh on embedded.  Wait for the next snapshot or beta4. "
    Will do.  We'll run our final tests after the next snapshot is released.

    I was curious, on the olsr GUI, is the "Enable Secure Mode" referring to the "Secure OLSR Plugin"?
    I haven't tried that feature yet, but it should prove quite useful.

    Are the following plugins in pfSense yet?
    "Nameservice" – we hope to use this to automatically assign DNS to the HNA (gateway), so no need to hard-code dns.
    "Dot topology information plugin" -- for visually rendering the mesh; just icing for now, but would be handy after the mesh grows.

    Thank you, -Pete

    LOL – yes, secure mode is what you wanted?    The other items wheren't mentioned in the original bounty?



  • Back when I posted the bounty I knew too little about olsr "under the hood" so I was
    a bit inspecific "… add great olsr extensions ..." which I realize is really too open ended.
    I figured the dynamic gateway plugin would also set the dns, seemed logical but alas.
    Please, is it going to be too much trouble to add the "Nameserver plugin"?
    Thank you, -Pete



  • Not at all, I'm just giving you grief.    I'll get it rolling this weekend.



  • Issues encountered today while testing (still using beta3 embedded)…
    8. When I "Enable Dynamic Gateway", the node doesn't show up as HNA on the other node's stats.
        I tried to verify that " HNA4 { ... "0.0.0.0 0.0.0.0" } " existed in olsrd.conf but I couldn't find the file.
    9. If I attempt to enable olsr on both Lan and Wan, it starts for a few seconds, both interface's IPs briefly
        appear in the node list of other olsr systems, then the olsr stops or crashes, and they both disappear.
    Thanks,-Pete



  • #8 is fixed.

    #9 should be fixed from yesterdays /etc/inc/interfaces.inc changes.  todays changes where in /etc/inc/services.inc

    http://cvs.pfsense.com/cgi-bin/cvsweb.cgi/pfSense/etc/inc/services.inc?rev=1.72.2.34;content-type=text%2Fplain;only_with_tag=RELENG_1
    http://cvs.pfsense.com/cgi-bin/cvsweb.cgi/pfSense/etc/inc/system.inc?rev=1.79.2.33;content-type=text%2Fplain;only_with_tag=RELENG_1

    You can use the Diagnostics -> Edit File option to change the files.

    Please test, we want to release beta 4 this weekend.



  • I copy/paste/saved those 3 files (interfaces, services, system) into an otherwise unmodified beta3 embedded CF.
    I obtained interfaces.inc from:
    http://cvs.pfsense.com/cgi-bin/cvsweb.cgi/~checkout~/pfSense/etc/inc/interfaces.inc?rev=1.176.2.105;content-type=text%2Fplain;only_with_tag=RELENG_1
    Rebooted.
    Now olsr won't start, here is the last part of the logs.
    I tried to start twice on both ports, then tried to start once on wan.
    It appears to have made two log enteries of "olsrd exit: main" for each interface I attempted to start on.

    Apr 28 17:10:08 php: : RRD restore failed exited with 0, the error is:
    Apr 28 17:10:08 php: : Creating rrd update script
    Apr 28 17:10:08 php: : Creating rrd graph index
    Apr 28 17:10:10 php: : Resyncing configuration for all packages.
    Apr 28 17:10:14 login: login on console as root
    Apr 28 17:18:07 olsrd[1457]: olsrd exit: main
    Apr 28 17:18:07 olsrd[1457]: olsrd exit: main
    Apr 28 17:18:08 olsrd[1489]: olsrd exit: main
    Apr 28 17:18:08 olsrd[1489]: olsrd exit: main
    Apr 28 17:19:18 olsrd[1655]: olsrd exit: main
    Apr 28 17:19:18 olsrd[1655]: olsrd exit: main
    Apr 28 17:19:20 olsrd[1717]: olsrd exit: main
    Apr 28 17:19:20 olsrd[1717]: olsrd exit: main
    Apr 28 17:21:08 olsrd[1910]: olsrd exit: main
    Apr 28 17:21:08 olsrd[1910]: olsrd exit: main



  • The only line I changed was the one requested.  Are you sure that the syntax was correct?



  • I clicked the link and it displayed in the browser (firefox) window.  I selected all and copied.  I pasted into pfSense and copy/pasted the filename into the top and clicked save.  I didn't alter the files as far I know.  Could it have wrapped text or perhaps Adblock altered it?  I'll try again later tonight.  In trouble with the wife for staying late.  Thanks, -Pete





  • Also, I had to recompile a few plugins.  We'll most likely need to wait 'til beta 4 to test correctly.



  • Ok, I'll keep watch for the next imbedded beta or snapshot.
    Thank you, -Pete



  • I've been testing this snapshot most of today:
    http://www.pfsense.com/~sullrich/RELENG_1-SNAPSHOT-05-05-2006/pfSense.img.gz

    I have this snapshot running on two wrap.2c units (tis all I have at home with me this weekend) meshed with one WRT54GL running Freifunk, and a laptop running olsr for windows.  I am unable to test multi-hop relayed mesh communications at home (need more UPSs), but I plan to test this Monday or Tuesday at work.  If the multi-hop relay test works, and pfSense OLSR seems basically functional enough to deploy a test mesh, I'll go ahead and Paypal the first half of the bounty.

    The only issues I encounted thus far:
    10.  When "Enable Dynamic Gateway" is Unchecked it seems like it's still may be on.  The other nodes are listing every pfSense unit in their HNA entries list.
    11.  The "default" route sometimes gets deleted from the route table; perhaps this happens when I enable olsr on two ports or when I change IPs on interfaces.  When I go to the Wan GUI and click save at the bottom it puts the "default" route back.  This unit does have HNA enabled.  When this happened the unit would stop routing mesh traffic to my internet gateway (dsl modem w/ nat & dhcp).  However, if I only enable olsr on the interface of the wireless mesh, I don't think I've seen this problem occur.  Or, perhaps this could be a result of me doing something I'm not suppose too…?
    12.  I have Not been successful in getting the olsr stats web page to display in a browser window.  Before, in issue #3, it would show a blank page; but now, it's as if the port is not functional.
    And, I sometimes encounter miscellaneous quirks after changing configurations, but a reboot normally fixes.

    I didn't see changes yet to these formerly reported issues:
    4. When olsr is checked enabled, alter the DHCP server/forwarding GUI so that DHCP may be enabled on wan/all interfaces.
    5. For HNA (Dynamic Internet gateway) to function, the Wan Gateway should be unset, which is currently not possible in the gui.

    Thank you,

    • Internet Professionals, LLC
    • Pete


  • I will look into 10-12.  However the other items have very much been commited.  WAN should be showing up on the DHCP server tab and there should be an option in OLSR to kill the default route.



  • " WAN should be showing up on the DHCP server tab "
    I just checked again, and didn't see this on either of my test units.  Is it possible that it's only missing in the imbedded version?



  • [from testing 5/6 snapshot] The seemingly random deletion of the default route (with nothing being put back in it's place; it's just gone) is hampering testing. Not being able to turn off HNA announcement on non-gateway nodes is also sometimes causing their their IP to incorrectly replace the default route on other nodes.
    Will test beta4 over the next few days.
    Thank you, -Pete



  • Another minor Issue:
    13.  I need the ability to set the DHCP subnet mask manually on the wireless (olsr) interface.  When a non-olsr dhcp client connects, their subnet mask should to be restricted to the local node's allocated IP range so the node may "relay" their traffic across the olsr network to the internet gateway.
    Thank you,
    -Pete



  • 14. I just tried beta4, olsrd isn't starting when "Enable Dynamic Gateway" is checked.

    10. It still appears that every node is advertising itself as an HNA and overwriting default routes on other nodes, even though enable dynamic gateway unchecked.  I was able to "supersede" this behavior with a kludge by adding the following two static routes on my gateway node (my private IP range is 10/8):
    route 0/1 to 10.0.0.1
    route 128/1 to 10.0.0.1

    -Pete


Locked