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
signature.asc
Description: Digital signature
