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 <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to