laforge has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35591?usp=email )
Change subject: diameter: Make diameter_watchdog_config configurable
......................................................................
diameter: Make diameter_watchdog_config configurable
This allows tweaking values in config file of TTCN3 tests to speed up
test setup.
Change-Id: I99b5e02264c2c35a3fbfcd2d6083a07e2cfea566
---
M config/sys.config
M src/aaa_diameter_s6b.erl
M src/epdg_diameter_swx.erl
3 files changed, 30 insertions(+), 6 deletions(-)
Approvals:
daniel: Looks good to me, but someone else must approve
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/config/sys.config b/config/sys.config
index 35e1492..b3ce69f 100755
--- a/config/sys.config
+++ b/config/sys.config
@@ -11,6 +11,9 @@
{diameter_proto, sctp},
{diameter_connect_timer, 30000},
{diameter_watchdog_timer, 30000},
+ {diameter_watchdog_config,
+ [{okay, 3},
+ {suspect, 1}]},
{vendor_id, 0},
{origin_host, "epdg.localdomain"},
{origin_realm, "localdomain"},
@@ -21,6 +24,9 @@
{dia_s6b_proto, sctp},
{dia_s6b_connect_timer, 30000},
{dia_s6b_watchdog_timer, 30000},
+ {dia_s6b_watchdog_config,
+ [{okay, 3},
+ {suspect, 1}]},
{dia_s6b_vendor_id, 0},
{dia_s6b_origin_host, "aaa.localdomain"},
{dia_s6b_origin_realm, "localdomain"},
diff --git a/src/aaa_diameter_s6b.erl b/src/aaa_diameter_s6b.erl
index e4fff31..59b9679 100644
--- a/src/aaa_diameter_s6b.erl
+++ b/src/aaa_diameter_s6b.erl
@@ -69,6 +69,7 @@
-define(ENV_DEFAULT_DIAMETER_REMOTE_PORT, 3868).
-define(ENV_DEFAULT_DIAMETER_CONNECT_TIMER_MS, 30000).
-define(ENV_DEFAULT_DIAMETER_WATCHDOG_TIMER_MS, 30000).
+-define(ENV_DEFAULT_DIAMETER_WATCHDOG_CFG, [{okay, 3}, {suspect, 1}]).
-define(VENDOR_ID_3GPP, 10415).
-define(VENDOR_ID_3GPP2, 5535).
@@ -125,9 +126,10 @@
Port = application:get_env(?ENV_APP_NAME, dia_s6b_local_port,
?ENV_DEFAULT_DIAMETER_REMOTE_PORT),
ConnectTimer = application:get_env(?ENV_APP_NAME, dia_s6b_connect_timer,
?ENV_DEFAULT_DIAMETER_CONNECT_TIMER_MS),
WatchdogTimer = application:get_env(?ENV_APP_NAME, dia_s6b_watchdog_timer,
?ENV_DEFAULT_DIAMETER_WATCHDOG_TIMER_MS),
+ WatchdogConfig = application:get_env(?ENV_APP_NAME, diameter_watchdog_config,
?ENV_DEFAULT_DIAMETER_WATCHDOG_CFG),
ok = diameter:start_service(?MODULE, ?SERVICE),
% lager:info("DiaServices is ~p~n", [DiaServ]),
- {ok, _} = listen({address, Proto, Ip, Port}, {timer, ConnectTimer, WatchdogTimer}),
+ {ok, _} = listen({address, Proto, Ip, Port}, {timer, ConnectTimer, WatchdogTimer,
WatchdogConfig}),
{ok, State}.
test() ->
@@ -180,7 +182,7 @@
%% Internal Function Definitions
%% ------------------------------------------------------------------
-listen(Name, {address, Protocol, IPAddr, Port}, {timer, ConnectTimer, WatchdogTimer})
->
+listen(Name, {address, Protocol, IPAddr, Port}, {timer, ConnectTimer, WatchdogTimer,
WatchdogConfig}) ->
lager:notice("~s Listening on IP ~s port ~p~n", [Name, IPAddr, Port]),
{ok, IP} = inet_parse:address(IPAddr),
TransportOpts =
@@ -193,7 +195,8 @@
%%{rport, Port}
]},
{connect_timer, ConnectTimer},
- {watchdog_timer, WatchdogTimer}],
+ {watchdog_timer, WatchdogTimer},
+ {watchdog_config, WatchdogConfig}],
diameter:add_transport(Name, {listen, TransportOpts}).
listen(Address, Timers) ->
diff --git a/src/epdg_diameter_swx.erl b/src/epdg_diameter_swx.erl
index ada8555..a2a040c 100644
--- a/src/epdg_diameter_swx.erl
+++ b/src/epdg_diameter_swx.erl
@@ -69,6 +69,7 @@
-define(ENV_DEFAULT_DIAMETER_REMOTE_PORT, 3868).
-define(ENV_DEFAULT_DIAMETER_CONNECT_TIMER_MS, 30000).
-define(ENV_DEFAULT_DIAMETER_WATCHDOG_TIMER_MS, 30000).
+-define(ENV_DEFAULT_DIAMETER_WATCHDOG_CFG, [{okay, 3}, {suspect, 1}]).
-define(VENDOR_ID_3GPP, 10415).
-define(VENDOR_ID_3GPP2, 5535).
@@ -125,9 +126,10 @@
Port = application:get_env(?ENV_APP_NAME, diameter_remote_port,
?ENV_DEFAULT_DIAMETER_REMOTE_PORT),
ConnectTimer = application:get_env(?ENV_APP_NAME, diameter_connect_timer,
?ENV_DEFAULT_DIAMETER_CONNECT_TIMER_MS),
WatchdogTimer = application:get_env(?ENV_APP_NAME, diameter_watchdog_timer,
?ENV_DEFAULT_DIAMETER_WATCHDOG_TIMER_MS),
+ WatchdogConfig = application:get_env(?ENV_APP_NAME, diameter_watchdog_config,
?ENV_DEFAULT_DIAMETER_WATCHDOG_CFG),
ok = diameter:start_service(?MODULE, ?SERVICE),
% lager:info("DiaServices is ~p~n", [DiaServ]),
- {ok, _} = connect({address, Proto, Ip, Port}, {timer, ConnectTimer, WatchdogTimer}),
+ {ok, _} = connect({address, Proto, Ip, Port}, {timer, ConnectTimer, WatchdogTimer,
WatchdogConfig}),
{ok, State}.
test() ->
@@ -261,7 +263,7 @@
%% ------------------------------------------------------------------
%% connect/3
-connect(Name, {address, Protocol, IPAddr, Port}, {timer, ConnectTimer, WatchdogTimer})
->
+connect(Name, {address, Protocol, IPAddr, Port}, {timer, ConnectTimer, WatchdogTimer,
WatchdogConfig}) ->
lager:notice("~s connecting to IP ~s port ~p~n", [Name, IPAddr, Port]),
{ok, IP} = inet_parse:address(IPAddr),
TransportOpts =
@@ -271,7 +273,8 @@
{raddr, IP},
{rport, Port}]},
{connect_timer, ConnectTimer},
- {watchdog_timer, WatchdogTimer}],
+ {watchdog_timer, WatchdogTimer},
+ {watchdog_config, WatchdogConfig}],
diameter:add_transport(Name, {connect, TransportOpts}).
connect(Address, Timers) ->
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35591?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I99b5e02264c2c35a3fbfcd2d6083a07e2cfea566
Gerrit-Change-Number: 35591
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: merged