fixeria has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/40127?usp=email )
Change subject: osmo_dia2gsup: set sndbuf/recbuf explicitly for SCTP
......................................................................
osmo_dia2gsup: set sndbuf/recbuf explicitly for SCTP
When opening an SCTP socket on Linux, Erlang/OTP does set its own
default SO_SNDBUF/SO_RCVBUF values if the respective socket options
(sndbuf and recbuf) are not given to gen_sctp:open/N explicitly.
For some reason, the default RCVBUF size (1024) is much smaller than
the default SNDBUF size (65536), and both are well below modern Linux
defaults. Such a small RCVBUF size becomes problematic when the
remote peer is sending large packets.
Let's explicitly set both sndbuf/recbuf parameters to 65536, allowing
the user to overwrite this default via the environment parameters.
For more details, see
https://github.com/erlang/otp/issues/9722.
Change-Id: I793f1295ab42bfc548511fc5ffbda9070280745f
---
M src/osmo_dia2gsup.erl
1 file changed, 4 insertions(+), 1 deletion(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/src/osmo_dia2gsup.erl b/src/osmo_dia2gsup.erl
index 4f7f21f..cda616b 100644
--- a/src/osmo_dia2gsup.erl
+++ b/src/osmo_dia2gsup.erl
@@ -48,6 +48,7 @@
-define(SERVER, ?MODULE).
-define(ENV_DEFAULT_NODELAY, true).
+-define(ENV_DEFAULT_SCTP_BUFSZ, 65536).
% Diameter application definitions
@@ -162,7 +163,9 @@
tcfg(Cfg, LAddr, LPort);
tcfg(sctp, LAddr, LPort) ->
- Cfg = #{sctp_nodelay => get_env(diameter_nodelay, ?ENV_DEFAULT_NODELAY)},
+ Cfg = #{sctp_nodelay => get_env(diameter_nodelay, ?ENV_DEFAULT_NODELAY),
+ recbuf => get_env(diameter_sctp_recbuf, ?ENV_DEFAULT_SCTP_BUFSZ),
+ sndbuf => get_env(diameter_sctp_sndbuf, ?ENV_DEFAULT_SCTP_BUFSZ)},
tcfg(Cfg, LAddr, LPort);
tcfg(Cfg, LAddr, LPort) when is_map(Cfg) ->
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo_dia2gsup/+/40127?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_dia2gsup
Gerrit-Branch: master
Gerrit-Change-Id: I793f1295ab42bfc548511fc5ffbda9070280745f
Gerrit-Change-Number: 40127
Gerrit-PatchSet: 2
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: pespin <pespin(a)sysmocom.de>