diff options
author | Hans Dedecker <dedeckeh@gmail.com> | 2016-07-14 10:35:40 +0200 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2016-08-18 09:49:18 +0200 |
commit | d7c249fa1c8d64315264850fce2cbfbfb1fd186c (patch) | |
tree | 871b92ef73849ee83f28aaa775f68355bbb32519 /package | |
parent | f478fba663d3ea1bf919137277b9a81344006173 (diff) | |
download | upstream-d7c249fa1c8d64315264850fce2cbfbfb1fd186c.tar.gz upstream-d7c249fa1c8d64315264850fce2cbfbfb1fd186c.tar.bz2 upstream-d7c249fa1c8d64315264850fce2cbfbfb1fd186c.zip |
ppp: Extend uci datamodel with persistency sypport
PPP daemon can be put into persist mode meaning the
daemon will not exit after a connection gets terminated
but will instead try to reopen the connection.
The re-initiation after the link has been terminated
can be controlled via holdoff; this is helpfull in
scenarios where a BRAS is in denial of service mode
due to link setup requests after a BRAS has gone down
Following uci parameters have been added :
persist (boolean) : Puts the ppp daemon in persist mode
maxfail (integer) : Number of consecutive fail attempts which
puts the PPP daemon in exit mode
holdoff (interget) : Specifies how many seconds to wait
before re-initiating link setup after it has been terminated
Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'package')
-rw-r--r-- | package/network/services/ppp/Makefile | 2 | ||||
-rwxr-xr-x | package/network/services/ppp/files/ppp.sh | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/package/network/services/ppp/Makefile b/package/network/services/ppp/Makefile index e3492ac55f..177950f2c7 100644 --- a/package/network/services/ppp/Makefile +++ b/package/network/services/ppp/Makefile @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ppp PKG_VERSION:=2.4.7 -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://download.samba.org/pub/ppp/ diff --git a/package/network/services/ppp/files/ppp.sh b/package/network/services/ppp/files/ppp.sh index 2a7e76b7fe..f8b04dec9f 100755 --- a/package/network/services/ppp/files/ppp.sh +++ b/package/network/services/ppp/files/ppp.sh @@ -79,13 +79,16 @@ ppp_generic_init_config() { proto_config_add_int mtu proto_config_add_string pppname proto_config_add_string unnumbered + proto_config_add_boolean persist + proto_config_add_int maxfail + proto_config_add_int holdoff } ppp_generic_setup() { local config="$1"; shift local localip - json_get_vars ipv6 demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered + json_get_vars ipv6 demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff if [ "$ipv6" = 0 ]; then ipv6="" elif [ -z "$ipv6" -o "$ipv6" = auto ]; then @@ -98,6 +101,12 @@ ppp_generic_setup() { else demand="" fi + if [ -n "$persist" ]; then + [ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist" + fi + if [ -z "$maxfail" ]; then + [ "$persist" = "persist" ] && maxfail=0 || maxfail=1 + fi [ -n "$mtu" ] || json_get_var mtu mtu [ -n "$pppname" ] || pppname="${proto:-ppp}-$config" [ -n "$unnumbered" ] && { @@ -129,7 +138,8 @@ ppp_generic_setup() { ${autoipv6:+set AUTOIPV6=1} \ nodefaultroute \ usepeerdns \ - $demand maxfail 1 \ + $demand $persist maxfail $maxfail \ + ${holdoff:+holdoff "$holdoff"} \ ${username:+user "$username" password "$password"} \ ${connect:+connect "$connect"} \ ${disconnect:+disconnect "$disconnect"} \ |