I took a look at your scripts and it seems we both have the same kind of idea.
On 04/26/2013 04:40 PM, Gui Iribarren wrote: > On 04/26/2013 09:30 PM, 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) >> >> I am assuming that uevents will allow me to work with this physical >> setup correct? >> >> 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 . > > That won't happen automatically, you need some userspace script to > handle the event and change batman-adv gw mode > correct. > Please check > > https://colectivo.altermundi.net/projects/altermesh-packages/repository/show/batman-adv-auto-gw-mode > > > which in turn depends on > > https://colectivo.altermundi.net/projects/altermesh-packages/repository/show/watchping > > > you should read the source code of batman-adv-auto-gw-mode (just a few > lines / files) and i'll comment a bit about it along this email, The code is very much what i am looking for in terms of functionality > you can grab the "binaries" (actually ipk-packaged bash scripts) and try > them right away > > http://chef.mesh.altermundi.net/downloads/r36139/ar71xx/packages/batman-adv-auto-gw-mode_2013-04-11-237-1_ar71xx.ipk > > http://chef.mesh.altermundi.net/downloads/r36139/ar71xx/packages/watchping_2013-04-11-237-1_ar71xx.ipk > I installed both and all files were installed in their proper directories but for some reason it did not work : # /etc/init.d/watchping start uci: Entry not found and : # cat /etc/uci-defaults/watchping #!/bin/sh uci -q get system.@watchping[0] || { uci batch <<EOF add system watchping set system.@watchping[0].interface=wan set system.@watchping[0].timeout=2m set system.@watchping[0].pinghosts=8.8.8.8 set system.@watchping[0].pinginterval=20s commit system EOF } /etc/uci-defaults# ./watchping cfg0a252a inserted the code into /etc/config/system . that was the only way it got there. Was it suppose to be auto-configured after the installation of the package ? > > > mind you, the default behaviour of sending the hostname in dhcp requests > has changed in recent trunk builds, so this feature might not work > reliable; but on the other hand, that might not make any difference in > your scenario :) (you don't seem to care about hostnames) > I am currently using: DISTRIB_ID="OpenWrt" DISTRIB_RELEASE="Attitude Adjustment" DISTRIB_REVISION="r35153" DISTRIB_CODENAME="attitude_adjustment" DISTRIB_TARGET="ar71xx/generic" DISTRIB_DESCRIPTION="OpenWrt Attitude Adjustment 12.09-rc1" and will stay with AA for a while. > > >> 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 > > this would equiv to > > /etc/watchping/wan-ok.d/batman-gw > /etc/watchping/wan-fail.d/batman-gw I do see that inside these directories i have only a README file. Are these directories to have my own scripts or other scripts that come with your package ? > >> > >> Upon detecting no WAN connectivity the script will be activated. >> >> Am i on the right track so far (at least in theory) ? >> >> 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 can be the gateway/client mode script > > Yes, in my case /etc/hotplug.d/net/99-batman-gw The only file i have there is /etc/hotplug.d/net/99-batman-adv id you rename me ? your link to batman-adv-auto-gw-mode/files/etc/hotplug.d/net/99-batman-gw is empty. > >> >> 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. >> >> >> >> >> > >
0x782BF73E.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
