On Fri, Apr 26, 2013 at 03:30:35PM -0400, cmsv wrote:
> I have reached a point where i need to start using the uevent
> functionality to work around some network scenarios when the gateways
> lose internet access but i am having a bit of a difficult time
> understanding how to do it since making use of uevents which is
> something new to me.
> 
> The explanation here is not helping much either
> http://www.open-mesh.org/projects/batman-adv/wiki/Uevent
> 
> and i understand that i might need to go to the basics to understand it
> and learn how to code.
> 
> My need to use uevents to change a nodes behaviour is to change a node
> from server to client and vice versa when it loses connectivity to the
> WAN (not for example losing connectivity to the dsl router that is
> actually the gateway but that has the node as a LAN client)

The uevents in batman-adv (as explained in the wiki) are "messages" sent by
the kernel module when a particular event (internal to batman-adv) occurs.

WAN on/off is an event which comes from an external source and so you do not
need to bother the batman-adv's uevents.

> 
> I am assuming that uevents will allow me to work with this physical
> setup correct?
> 

Not uevents from batman-adv. If something else can trigger a uevent for you then
yes. But you will not get any help from the uevents in batman-adv in this case.


> As far as i understand now and if i am not mistaken when a gateway loses
> WAN connectivity the node that is making use of uevents will change  the
> node from "server" to "client" on batman-adv .
> 

This is a mechanism that you have to implement in your firmware. batman-adv
alone cannot do that because it does not know when the connection goes down.

I can say that this is probably a behaviour that you may want, but batman-adv
won't help you in this.

> Now my question is if i can also make it to change the dhcp setup from
> dhcp server to inactive and receive it´s dhcp service from another
> gateway node.
> 
> In theory  something like this would be executed on openwrt when a
> gateway node detects no connectivity to the wan:
> 
> uci set batman-adv.bat0.gw_mode=client ;
> uci commit batman-adv ;
> batman-adv reboot ;
> uci set dhcp.lan.force=0 ;
> uci set dhcp.lan.ignore=1 ;
> uci commit dhcp ;
> /etc/init.d/dnsmasq restart ;
> 
> when it detects wan connectivity it will want to become a server and
> will auto execute:
> 
> uci set batman-adv.bat0.gw_mode=server ;
> uci commit batman-adv ;
> batman-adv reboot ;
> uci set dhcp.lan.force=1 ;
> uci set dhcp.lan.ignore=0 ;
> uci commit dhcp ;
> /etc/init.d/dnsmasq restart ;
> 
> A small script can even be made in order so simplify things either
> automatically or manually and lets call it:
> gateway-mode
> client-mode
> 
> Upon detecting no WAN connectivity the script will be activated.
> 
> Am i on the right track so far (at least in theory) ?
> 

Maybe. All this stuff I guess have to be applied on an OpenWRT system, but I
don't know it enough to answer. Maybe on the Openwrt channel/list somebody will
be able to help you in this direction.

> Now the second part is how to detect WAN connectivity which is different
> from noticing that there is no connectivity to the actual gw router that
> has the node on it's LAN.
> 
> I thought about a ping test to a few address from which after 100% loss
> reply from all; something or Uevent will activate the gateway/client
> mode script but it creates another problem ahead.
> 
> In a quick conversation with ordex on irc i understand that i have to
> invoke the wiki docs uevent functions with the parameters i want at the
> moment i decide.

This is an internal function that can be used by a developer to "add new uevents
to batman-adv". Here you want to play with something totally external and
totally unrelated to batman-adv. So the uevents wikipage can't help you :)


> This can be the gateway/client mode script
> 
> correct ?
> 
> Since uevent is something new to me; can someone recommend some freshman
> tutorial that may take me in the right direction. I have no clue where
> or how to start looking to code it and also when coded; where will it be
> added.
> 
> I also would like to ask anyone that has uevent working how they are
> using it for the same type of need and maybe even share some recipe.
> 
> 
> 


Sometimes I used ifplugd to detect whether an Ethernet link was UP or not..you
may want to look into it as well.

Cheers,



-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

Attachment: signature.asc
Description: Digital signature

Reply via email to