[Commotion-dev] Can't talk between desktop OLSRd and Commotion OpenWRT boxes

Dan Staples danstaples at opentechinstitute.org
Wed Mar 27 23:07:47 UTC 2013


If I remember correctly, your PPA provides a hardened version of olsrd, 
yes?

For our DR1 release of Commotion-OpenWRT, we're using a custom version 
of olsrd v0.6.5.2 with our own dnssd and mdp plugins. It's what we have 
in the OTI github repo. Do you think it would be useful to use that 
version? DR1 meshes that have backhaul security turned on would only be 
able to talk to other nodes running olsrd w/ the mdp plugin enabled.

On Wed 27 Mar 2013 06:08:48 PM EDT, Hans-Christoph Steiner wrote:
>
> I pushed an update to the olsrd package to our Commotion PPA, they should be
> built in about 5 hours.  The only change was including the commit that should
> fix this issue.
>
> If the OTI crew thinks that we should be using a newer version of olsrd, I can
> update the package there.  Right now, I'm just keeping it in sync with the
> effort to get an update into Debian/wheezy.
>
> .hc
>
> On 03/26/2013 10:23 AM, Will Hawkins wrote:
>> Sorry it's taken me so long to pipe up on this thread. I looked at that
>> patch that Ben/HC referenced. The fix that they applied definitely fixes
>> a problem. And, based on Ben's testing, it seems like it is the problem.
>>
>> From my reading, the way the code was written, it was working without
>> this patch only by chance. So, definitely a good one to include :-)
>>
>> Will
>>
>> On 03/19/2013 02:13 AM, Ben West wrote:
>>> I have been able to get a custom-compiled olsrd running now under my own
>>> instances of Ubuntu quantal, by applying this patch to src/net_olsr.c
>>> and then rebuilding the debs:
>>> https://lists.olsr.org/pipermail/olsr-dev/2012-June/005547.html
>>>
>>> This patch was referred to in the thread started by Hans on this topic
>>> in the olsr-dev listserv:
>>> https://lists.olsr.org/pipermail/olsr-dev/2013-March/006725.html
>>>
>>> Interestingly, the original bug was basically that olsrd was not sending
>>> outgoing packets out the wireless interface, instead failing with error
>>> message "sendto(v4): Invalid argument."  The variables that are supposed
>>> to store the destination address for IPv4/6 packets, due to improper
>>> declaration, were being sometimes optimized away, depending on the gcc
>>> version and the optimization flags given.  The patch mentioned above
>>> corrects the variables' declaration.
>>>
>>> It seems this particular bug has been fixed in newer versions of olsrd,
>>> but I'm guessing Canonical isn't going to be especially prompt about
>>> releasing an updated Ubuntu package.
>>>
>>> Could this patch be included in the guardianproject PPA for olsrd?
>>>
>>> On Mon, Mar 18, 2013 at 2:38 PM, Ben West <ben at gowasabi.net
>>> <mailto:ben at gowasabi.net>> wrote:
>>>
>>>     Hi All,
>>>
>>>     I'm having difficulty replicating this solution on my own platform
>>>     (Ubuntu quantal i386 under a VMware host, but with real USB wifi radio).
>>>
>>>     That is, removing the O2 compile option and recompiling olsrd does
>>>     not seem to yield a working olsrd for me.  I'm presently trying this
>>>     out on a real host instead (i.e. no virtualization), but that is
>>>     slowly opening a delightful can of worms w/r/t/ to thge newer
>>>     Ubuntus dropping legacy video driver support and other such
>>>     pleasantness.
>>>
>>>     If the problem's source has been conclusively narrowed down to the
>>>     -O2 (and even -fPIE?) flag added by Hans' patch
>>>     310-hardening-fixes.patch, could Hans just release an updated olsrd
>>>     package in his PPA, with those flags removed, as an interim
>>>     workaround for anyone not able to compile their own?
>>>
>>>     On Sat, Mar 9, 2013 at 12:34 PM, Mikael Nordfeldth <mmn at hethane.se
>>>     <mailto:mmn at hethane.se>> wrote:
>>>
>>>         2013-03-08 19:27, Hans-Christoph Steiner skrev:
>>>         > That would be quite useful if you have the time!  Another
>>>         thing that might the
>>>         > whole process easier is to 'git bisect', if you are familiar
>>>         with that..
>>>         > Right now, Debian squeeze and wheezy have 0.6.2, and Ubuntu
>>>         has 0.6.1 and 0.6.3:
>>>         >
>>>         > http://packages.debian.org/search?keywords=olsrd
>>>         > http://packages.ubuntu.com/search?keywords=olsrd
>>>         >
>>>         > So the idea is to find out which version of these we can rely
>>>         on, and which we
>>>         > need to use replacements.
>>>
>>>         Gah. This seems way more advanced than what I can explain with my
>>>         knowledge. Nevertheless, I did find what caused my error, the
>>>         -O2 gcc
>>>         optimization switch as patched by Debian package "hardening fixes":
>>>
>>>         1. I tried compiling various olsrd versions. All worked.
>>>         2. I tried compiling 0.6.3-5~quantal from 'apt-get source'. It
>>>         didn't work.
>>>         3. I tried compiling the 0.6.3.orig source (same as above, without
>>>         debian patches) It worked.
>>>         4. None of the patches contained any networking code (except the
>>>         json
>>>         plugin, but disabling it didn't have any effect anyway)
>>>         5. I found that removing the -O2 switch on line 227 in
>>>         Makefile.inc, as
>>>         patched by 310-hardening-fixes.patch resolved my invalid argument
>>>         sendto(v4) issue:
>>>
>>>          %.o: %.c
>>>                 @echo "[CC] $<"
>>>         -       $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
>>>         +       $(CC) -O2 $(CFLAGS) $(CPPFLAGS) -fPIE -c -o $@ $<
>>>
>>>
>>>         Reverting this (and even leaving the -fPIE there but removing
>>>         -O2) makes
>>>         the resulting binary functional.
>>>
>>>
>>>         So the specific problem was caused by the -O2 parameter to gcc,
>>>         I guess
>>>         making it a compiling/linking issue. I don't know enough about this
>>>         myself though, so I'm attaching ('O2-opts') the output of what that
>>>         level of optimizations means if anyone is interested (gcc -c -Q -O2
>>>         --help=optimizers)
>>>
>>>         More info on my build environment is below:
>>>
>>>         $ gcc -v
>>>         Using built-in specs.
>>>         COLLECT_GCC=gcc
>>>         COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
>>>         Target: x86_64-linux-gnu
>>>         Configured with: ../src/configure -v
>>>         --with-pkgversion='Ubuntu/Linaro
>>>         4.7.2-2ubuntu1'
>>>         --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
>>>         --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
>>>         --program-suffix=-4.7 --enable-shared --enable-linker-build-id
>>>         --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
>>>         --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
>>>         --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
>>>         --enable-libstdcxx-debug --enable-libstdcxx-time=yes
>>>         --enable-gnu-unique-object --enable-plugin --enable-objc-gc
>>>         --disable-werror --with-arch-32=i686 --with-tune=generic
>>>         --enable-checking=release --build=x86_64-linux-gnu
>>>         --host=x86_64-linux-gnu --target=x86_64-linux-gnu
>>>         Thread model: posix
>>>         gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
>>>
>>>
>>>         $ uname -a
>>>         Linux plexi 3.5.0-25-generic #39-Ubuntu SMP Mon Feb 25 18:26:58
>>>         UTC 2013
>>>         x86_64 x86_64 x86_64 GNU/Linux
>>>
>>>         _______________________________________________
>>>         Commotion-dev mailing list
>>>         Commotion-dev at lists.chambana.net
>>>         <mailto:Commotion-dev at lists.chambana.net>
>>>         https://lists.chambana.net/mailman/listinfo/commotion-dev
>>>
>>>
>>>
>>>
>>>     --
>>>     Ben West
>>>     http://gowasabi.net
>>>     ben at gowasabi.net <mailto:ben at gowasabi.net>
>>>     314-246-9434 <tel:314-246-9434>
>>>
>>>
>>>
>>>
>>> --
>>> Ben West
>>> http://gowasabi.net
>>> ben at gowasabi.net <mailto:ben at gowasabi.net>
>>> 314-246-9434
>>>
>>>
>>> _______________________________________________
>>> Commotion-dev mailing list
>>> Commotion-dev at lists.chambana.net
>>> https://lists.chambana.net/mailman/listinfo/commotion-dev
>>>
>> _______________________________________________
>> Commotion-dev mailing list
>> Commotion-dev at lists.chambana.net
>> https://lists.chambana.net/mailman/listinfo/commotion-dev
>>
> _______________________________________________
> Commotion-dev mailing list
> Commotion-dev at lists.chambana.net
> https://lists.chambana.net/mailman/listinfo/commotion-dev

--
Dan Staples

Open Technology Institute
https://commotionwireless.net


More information about the Commotion-dev mailing list