[Olsr-dev] Propagating a default gateway OLSRv2

Henning Rogge (spam-protected)
Fri Jul 8 10:56:25 CEST 2016


On Thu, Jul 7, 2016 at 8:55 PM, Peter Emanuel <(spam-protected)> wrote:
> Hi Henning,
>
> Brilliant! Thanks so much. The Wiki page was extremely informative too. Not sure how I didn't run into it before.
>
> Both methods worked. I had tried
>
>         olsrd2_static --set lan_import.interface=eth0 wlan0 lo &
>
> without success. I am not sure whether the [lan_import=1] in the config file is significant. Regardless, I can move forward using the config file.

Yes, the "=1" makes a difference...

("olsrd2_static --set lan_import[1].interface=eth0 wlan0 lo &" should work too)

why?

2 reasons:

- you might want to have multiple lan_import sections... the name
gives you the way to put them into a config file
- you don't want to have a default value active for lan_import. Think
about sections like "global" or "olsrv2". Both have an effect even if
they are not present in the configuration... lan_import can be
dangerous, so I made it into a named section similar to "interface".

> Which of your 2 methods is preferable since both seemed to work?

Your choice. The lan_import way means you don't have to put your IP
configuration into the olsrd2 config, which makes it easier to handle
for multiple routers.

> On the Android front - there are a number of caveats that I need to point out (even though I am not an Android guru). I ran into these when using olsrdv1.
> Starting with Android release KitKat and onwards, Google started introducing more and more security. From a mesh standpoint, it became more of a pain.
> 1) They introduced secure linux as the only kernel the bootloader would boot.
> 2) They enforced compiling with -fPIE (Program Independent Executables) as well using as -fPIC
> 3) Worse yet, only authorized networks would work. The connection manager inside Android would not allow connecting to an Adhoc network like OLSRD. The connection manager needs to be modified inside Android authorizing the olsrd as a valid network and any application that wants to connect to the network has to register with the network (using Java Reflection or some such method). Local network communications work fine using later releases of Android if you compile with -fPIE when communicating from node to node but not when passing through the connection manager.

Yes, the "no adhoc mode" thing is a pain...

> It's a pain to modify and recompile android. So, I plan to address this issue later but am sticking to my Android development using Jellybean (4.2.2) for now. Olsrd2 seems to work just fine with this Android release. That said, I targeted my Android build to platform android-18 even though the latest build is android-24 so I cannot vouch for any android platform after android-18. Using kitkat, the updated Chromium browser doesn't work nor does YouTube even on Jelly Bean. Opera and the built in browser works fine. YouTube from the browser works fine.

> Two other thing I ran into with the olsrd2 sources is that epoll_create1 is only supported by later kernels that came into existence with android-21 so I had to modify your sources to use the prior epoll_create call rather than epoll_create1. I also had to pull in a separately compiled version of the netlink library to support linking the nl80211 listener.

epoll_create1 was introduced in kernel 2.6.27... that is too new for
android 4.x *sigh*

Is there a good feature request macro to test for it?

Henning Rogge



More information about the Olsr-dev mailing list