fixeria has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40018?usp=email )
Change subject: sctp_{client,server}: make sctp_nodelay configurable
......................................................................
sctp_{client,server}: make sctp_nodelay configurable
Keep the Nagle's algorithm disabled by default, but allow the user
to re-enable it via the environment variables {mme,s1gw}_nodelay.
Change-Id: Ida5418f8590f40414215fc9667fb4ea70e2b1614
Related: SYS#7288
---
M src/osmo_s1gw_sup.erl
M src/sctp_client.erl
M src/sctp_server.erl
3 files changed, 6 insertions(+), 3 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
osmith: Looks good to me, but someone else must approve
laforge: Looks good to me, but someone else must approve
diff --git a/src/osmo_s1gw_sup.erl b/src/osmo_s1gw_sup.erl
index 22a0298..67b6f47 100644
--- a/src/osmo_s1gw_sup.erl
+++ b/src/osmo_s1gw_sup.erl
@@ -42,6 +42,7 @@
-define(SERVER, ?MODULE).
-define(ENV_APP_NAME, osmo_s1gw).
+-define(ENV_DEFAULT_SCTP_NODELAY, true).
-define(ENV_DEFAULT_S1GW_BIND_ADDR, "127.0.1.1").
-define(ENV_DEFAULT_S1GW_BIND_PORT, ?S1AP_PORT).
-define(ENV_DEFAULT_MME_LOC_ADDR, "127.0.2.1").
@@ -88,15 +89,19 @@
-spec client_cfg() -> sctp_client:cfg().
client_cfg() ->
+ SockOpts = #{sctp_nodelay => get_env(mme_nodelay, ?ENV_DEFAULT_SCTP_NODELAY)},
#{laddr => get_env(mme_loc_addr, ?ENV_DEFAULT_MME_LOC_ADDR),
raddr => get_env(mme_rem_addr, ?ENV_DEFAULT_MME_REM_ADDR),
- rport => get_env(mme_rem_port, ?ENV_DEFAULT_MME_REM_PORT)}.
+ rport => get_env(mme_rem_port, ?ENV_DEFAULT_MME_REM_PORT),
+ sockopts => maps:to_list(SockOpts)}.
-spec server_cfg() -> sctp_server:cfg().
server_cfg() ->
+ SockOpts = #{sctp_nodelay => get_env(s1gw_nodelay, ?ENV_DEFAULT_SCTP_NODELAY)},
#{laddr => get_env(s1gw_bind_addr, ?ENV_DEFAULT_S1GW_BIND_ADDR),
lport => get_env(s1gw_bind_port, ?ENV_DEFAULT_S1GW_BIND_PORT),
+ sockopts => maps:to_list(SockOpts),
handler => sctp_proxy,
priv => client_cfg()}.
diff --git a/src/sctp_client.erl b/src/sctp_client.erl
index 0396109..bea3c16 100644
--- a/src/sctp_client.erl
+++ b/src/sctp_client.erl
@@ -86,7 +86,6 @@
RPort = maps:get(rport, Cfg),
{ok, Sock} = gen_sctp:open([{ip, LAddr},
{type, seqpacket},
- {sctp_nodelay, true},
{active, true}] ++ SockOpts),
gen_sctp:connect_init(Sock, RAddr, RPort, []),
{ok, Sock}.
diff --git a/src/sctp_server.erl b/src/sctp_server.erl
index 7f12878..34b2381 100644
--- a/src/sctp_server.erl
+++ b/src/sctp_server.erl
@@ -121,7 +121,6 @@
{port, LPort},
{type, seqpacket},
{reuseaddr, true},
- {sctp_nodelay, true},
{active, true}] ++ SockOpts),
?LOG_INFO("SCTP server listening on ~p:~p", [LAddr, LPort]),
ok = gen_sctp:listen(Sock, true),
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40018?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: Ida5418f8590f40414215fc9667fb4ea70e2b1614
Gerrit-Change-Number: 40018
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>