fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/41531?usp=email )


Change subject: sctp_common: gen_sockopts/1: add heartbeat and RTO params
......................................................................

sctp_common: gen_sockopts/1: add heartbeat and RTO params

Change-Id: I081852d2df187ca7c3cb8969686530b8ac3644f3
Co-authored-by: Andreas Eversberg <[email protected]>
Related: SYS#7653
---
M src/sctp_common.erl
1 file changed, 17 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw 
refs/changes/31/41531/1

diff --git a/src/sctp_common.erl b/src/sctp_common.erl
index 9a57798..88be87c 100644
--- a/src/sctp_common.erl
+++ b/src/sctp_common.erl
@@ -49,6 +49,10 @@

 -define(SOCKOPTS_DEFAULT_BUFSZ, 65536).
 -define(SOCKOPTS_DEFAULT_NODELAY, true).
+-define(SOCKOPTS_DEFAULT_HBINTERVAL, 2000).
+-define(SOCKOPTS_DEFAULT_RTO_INIT, 1000).
+-define(SOCKOPTS_DEFAULT_RTO_MIN, 1000).
+-define(SOCKOPTS_DEFAULT_RTO_MAX, 1000).


 -type sock_aid() :: {gen_sctp:sctp_socket(),
@@ -91,9 +95,21 @@

 -spec gen_sockopts(map()) -> [gen_sctp:option()].
 gen_sockopts(SockOptsCfg) ->
+    %% heartbeat parameters
+    HBInterval = maps:get(hbinterval, SockOptsCfg, 
?SOCKOPTS_DEFAULT_HBINTERVAL),
+    PAP = #sctp_paddrparams{assoc_id = 0,
+                            hbinterval = HBInterval,
+                            flags = [hb_enable]},
+    %% retransmission time-out parameters
+    RTO = #sctp_rtoinfo{assoc_id = 0,
+                        initial = maps:get(rto_initial, SockOptsCfg, 
?SOCKOPTS_DEFAULT_RTO_INIT),
+                        min = maps:get(rto_min, SockOptsCfg, 
?SOCKOPTS_DEFAULT_RTO_MIN),
+                        max = maps:get(rto_max, SockOptsCfg, 
?SOCKOPTS_DEFAULT_RTO_MAX)},
     SockOpts = #{recbuf => maps:get(recbuf, SockOptsCfg, 
?SOCKOPTS_DEFAULT_BUFSZ),
                  sndbuf => maps:get(sndbuf, SockOptsCfg, 
?SOCKOPTS_DEFAULT_BUFSZ),
-                 sctp_nodelay => maps:get(nodelay, SockOptsCfg, 
?SOCKOPTS_DEFAULT_NODELAY)},
+                 sctp_nodelay => maps:get(nodelay, SockOptsCfg, 
?SOCKOPTS_DEFAULT_NODELAY),
+                 sctp_peer_addr_params => PAP,
+                 sctp_rtoinfo => RTO},
     maps:to_list(SockOpts).



--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/41531?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I081852d2df187ca7c3cb8969686530b8ac3644f3
Gerrit-Change-Number: 41531
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>

Reply via email to