Attention is currently required from: jolly, laforge, neels, osmith.
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35172?usp=email )
Change subject: soft_uart: implement modem status lines and flow control
......................................................................
Patch Set 3:
(5 comments)
File include/osmocom/core/soft_uart.h:
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/7f695941_4b5a2352
PS3, Line 100: gets
> "gets passed" or "gets as an argument" -- I will clarify this.
Done
File src/core/soft_uart.c:
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/2079f190_aa7eae88
PS2, Line 398: if (active) /* assert the given line */
> re: if assert and de-assert is terminology from the matching spec, then of course keep using those t […]
@andreas@eversberg.eu just to confirm, am I using the terminology correctly in this patch? As we agreed in Jabber, in the example case of the RI (Ring Indicator), the modem asserts this line when it's ringing and de-asserts it when it's no more ringing.
File src/core/soft_uart.c:
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/4e00c693_ca74a4f5
PS3, Line 214: OSMO_SUART_STATUS_F_RTS_RTR
> RX must continue. […]
Done
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/dd6fda1d_5deb226e
PS3, Line 324: OSMO_SUART_STATUS_F_CTS
> The current character needs to be finished before the transmitter can stop transmitting.
Ack. Implemented in the new patchset, verified by unit tests.
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/97d7cd7f_b60397f3
PS3, Line 399: else
> If you de-assert DTR, you should reset the transmitter state. […]
What you suggest looks as follows to me:
* "If you de-assert DTR, you should reset the transmitter state" - if we can no longer receive, we de-assert the DTR (Data Terminal Ready) and for some reason reset the transmitter state (`suart->tx.flow_state`)?
* "If you de-assert DSR, you should reset the receiver state" - if we can no longer transmit, we de-assert the DSR (Data Set Ready) and for some reason reset the receiver state (`suart->rx.flow_state`)?
Could you elaborate on this please? I am trying to understand the idea here.
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35172?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I26b93ce76f2f6b6fbf017f2684312007db3c6d48
Gerrit-Change-Number: 35172
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-CC: jolly <andreas(a)eversberg.eu>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Sun, 03 Dec 2023 21:39:08 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: osmith <osmith(a)sysmocom.de>
Comment-In-Reply-To: jolly <andreas(a)eversberg.eu>
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: jolly, laforge, neels, osmith.
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35172?usp=email )
Change subject: soft_uart: implement modem status lines and flow control
......................................................................
Patch Set 3:
(3 comments)
File include/osmocom/core/soft_uart.h:
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/fd7a3d0e_d3e2e209
PS3, Line 54: OSMO_SUART_STATUS_F_CTS = (1 << 5), /*!< Clear To Send */
> (personally i prefer an enum storing just 0, 1, 2, 3, 4, 5, because it is easy to get from 5 to 1<<5 […]
Yes, you already commented on this in another patch (already merged). As I said, I don't see a practical situation in which I would need to get the `x` value back from `(1 << x)`. If you have examples, let me know.
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/d8e7e32d_f89679e9
PS3, Line 61: OSMO_SUART_FLOW_CTRL_M_NONE,
> (apparently it's good practice to set the first item = 0 explicitly)
It's the first time I am hearing about such a good practice :P If this was a protocol definition, I would go further and set each item explicitly. In the particular case we're discussing here, I can't see the practical benefits.
https://gerrit.osmocom.org/c/libosmocore/+/35172/comment/396a5a8c_71906e06
PS3, Line 100: gets
> wdym, "gets". […]
"gets passed" or "gets as an argument" -- I will clarify this.
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35172?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I26b93ce76f2f6b6fbf017f2684312007db3c6d48
Gerrit-Change-Number: 35172
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-CC: jolly <andreas(a)eversberg.eu>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Sun, 03 Dec 2023 17:59:28 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: comment
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/35177?usp=email )
Change subject: systemd,manual: set LimitNOFILE=65536
......................................................................
systemd,manual: set LimitNOFILE=65536
A typical OS imposed limit is 1024 open FD, which is too low when there
are thousands of HNB.
In systemd service file, set a super high limit of 65536.
In osmo-hnbgw's user manual, add section 'Configure limits' describing
this in detail.
Related: OS#6256
Related: osmo-bsc I26c4058484b11ff1d035a919bf88824c3af14e71
Change-Id: I5333765199cf9e3e5a570f85b85d2b7423d34a4d
---
M contrib/systemd/osmo-hnbgw.service
M doc/manuals/chapters/running.adoc
2 files changed, 37 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, approved
laforge: Looks good to me, approved
fixeria: Looks good to me, but someone else must approve
diff --git a/contrib/systemd/osmo-hnbgw.service b/contrib/systemd/osmo-hnbgw.service
index ba41e24..2307bcc 100644
--- a/contrib/systemd/osmo-hnbgw.service
+++ b/contrib/systemd/osmo-hnbgw.service
@@ -6,6 +6,7 @@
[Service]
Type=simple
Restart=always
+LimitNOFILE=65536
StateDirectory=osmocom
WorkingDirectory=%S/osmocom
ExecStart=/usr/bin/osmo-hnbgw -c /etc/osmocom/osmo-hnbgw.cfg
diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc
index 45d9b2f..08e1b87 100644
--- a/doc/manuals/chapters/running.adoc
+++ b/doc/manuals/chapters/running.adoc
@@ -76,6 +76,23 @@
configure a distinct point-code, see <<configure_iucs_iups>>.
+=== Configure limits
+
+When connecting hundreds of HNB to OsmoHNBGW, it may be necessary to adjust the
+operating system's limit on open file descriptors for the osmo-hnbgw process. A
+typical default limit imposed by operating systems is 1024; this would be
+exceeded by, for example, about 1024 HNB on Iuh, sockets for other interfaces
+not considered yet.
+
+It should be ok to set an OS limit on open file descriptors as high as 65536
+for osmo-hnbgw, which practically rules out failure from running out of file
+descriptors anywhere (<50,000 HNB).
+
+When using systemd, the file descriptor limit may be adjusted in the service
+file by the `LimitNOFILE` setting ("Number of Open FILE descriptors").
+OsmoHNBGW ships a systemd service file with a high LimitNOFILE setting.
+
+
=== Configuring Primary Links
[[configure_iucs_iups]]
--
To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/35177?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-hnbgw
Gerrit-Branch: master
Gerrit-Change-Id: I5333765199cf9e3e5a570f85b85d2b7423d34a4d
Gerrit-Change-Number: 35177
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(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>
Gerrit-MessageType: merged
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/35178?usp=email )
Change subject: systemd,manual: set LimitNOFILE=65536
......................................................................
systemd,manual: set LimitNOFILE=65536
A typical OS imposed limit is 1024 open FD, which can bee too low when
there are hundreds of concurrent voice calls.
In systemd service file, set a super high limit of 65536.
In osmo-mgw's user manual, add section 'Configure limits' describing
this in detail.
Related: OS#6256
Related: osmo-bsc I26c4058484b11ff1d035a919bf88824c3af14e71
Change-Id: I46512517bc3b5bb90cac7643e7ac73afba398d36
---
M contrib/systemd/osmo-mgw.service
M doc/manuals/chapters/running.adoc
2 files changed, 37 insertions(+), 0 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
Jenkins Builder: Verified
pespin: Looks good to me, approved
diff --git a/contrib/systemd/osmo-mgw.service b/contrib/systemd/osmo-mgw.service
index b187e1a..03f40ff 100644
--- a/contrib/systemd/osmo-mgw.service
+++ b/contrib/systemd/osmo-mgw.service
@@ -5,6 +5,7 @@
[Service]
Type=simple
+LimitNOFILE=65536
StateDirectory=osmocom
WorkingDirectory=%S/osmocom
Restart=always
diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc
index c178e31..e3bab4d 100644
--- a/doc/manuals/chapters/running.adoc
+++ b/doc/manuals/chapters/running.adoc
@@ -23,3 +23,20 @@
Disable colors for logging to stderr. This has mostly been
deprecated by VTY based logging configuration, see <<logging>>
for more information.
+
+
+=== Configure limits
+
+When servicing hundreds of media endpoints, it may be necessary to adjust the
+operating system's limit on open file descriptors for the osmo-mgw process. A
+typical default limit imposed by operating systems is 1024; this would be
+exceeded by, for example, about 256 active voice calls with 4 RTP/RTPC ports
+each, sockets for other interfaces not considered yet.
+
+It should be ok to set an OS limit on open file descriptors as high as 65536
+for osmo-mgw, which practically rules out failure from running out of file
+descriptors anywhere (<16,000 active calls).
+
+When using systemd, the file descriptor limit may be adjusted in the service
+file by the `LimitNOFILE` setting ("Number of Open FILE descriptors"). OsmoMGW
+ships a systemd service file with a high LimitNOFILE setting.
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35178?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I46512517bc3b5bb90cac7643e7ac73afba398d36
Gerrit-Change-Number: 35178
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(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>
Gerrit-MessageType: merged