pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31811 )
Change subject: bscc_sccp: Small optimiztion in bsc_sccp_inst_next_conn_id()
......................................................................
bscc_sccp: Small optimiztion in bsc_sccp_inst_next_conn_id()
Refactor the double loop to check a code path matching the sccp_instance
once instead of doing so for every subscr_conn.
If for instance let's say we have 1000 concurrent calls in progress,
which means we have 1000 subscr_conn, which means we at least do the
extra check regarding SMLC vs MSC 1000 times (at least, xN times if N
conn_id already used are already found).
That overhead happens every time a new subscr_conn is created (which in
a BSC with already 1000 concurrent calls can potentially happen quite
frequently).
Change-Id: Ic32b1eeb201fc51110e1ee130110824845f81e82
---
M src/osmo-bsc/bsc_sccp.c
1 file changed, 50 insertions(+), 13 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/31811/1
diff --git a/src/osmo-bsc/bsc_sccp.c b/src/osmo-bsc/bsc_sccp.c
index 79a6617..fea3907 100644
--- a/src/osmo-bsc/bsc_sccp.c
+++ b/src/osmo-bsc/bsc_sccp.c
@@ -45,6 +45,32 @@
/* This looks really suboptimal, but in most cases the static next_id should indicate exactly the next unused
* conn_id, and we only iterate all conns once to make super sure that it is not already in use. */
+ /* SCCP towards SMLC: */
+ if (bsc_gsmnet->smlc->sccp == sccp) {
+ for (i = 0; i < 0x00FFFFFE; i++) {
+ struct gsm_subscriber_connection *conn;
+ uint32_t conn_id = next_id;
+ bool conn_id_already_used = false;
+
+ next_id = (next_id + 1) & 0x00FFFFFF;
+ if (next_id == 0x00FFFFFF)
+ next_id = 0;
+
+ llist_for_each_entry(conn, &bsc_gsmnet->subscr_conns, entry) {
+ if (conn->lcs.lb.state != SUBSCR_SCCP_ST_NONE &&
+ conn->lcs.lb.conn_id == conn_id) {
+ conn_id_already_used = true;
+ break;
+ }
+ }
+
+ if (!conn_id_already_used)
+ return conn_id;
+ }
+ return 0xFFFFFFFF;
+ }
+
+ /* SCCP towards MSC: */
for (i = 0; i < 0x00FFFFFE; i++) {
struct gsm_subscriber_connection *conn;
uint32_t conn_id = next_id;
@@ -55,19 +81,10 @@
next_id = 0;
llist_for_each_entry(conn, &bsc_gsmnet->subscr_conns, entry) {
- if (conn->sccp.msc && conn->sccp.msc->a.sccp == sccp) {
- if (conn_id == conn->sccp.conn_id) {
- conn_id_already_used = true;
- break;
- }
- }
-
- if (bsc_gsmnet->smlc->sccp == sccp
- && conn->lcs.lb.state != SUBSCR_SCCP_ST_NONE) {
- if (conn_id == conn->lcs.lb.conn_id) {
- conn_id_already_used = true;
- break;
- }
+ if (conn->sccp.msc && conn->sccp.msc->a.sccp == sccp &&
+ conn->sccp.conn_id == conn_id) {
+ conn_id_already_used = true;
+ break;
}
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31811
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ic32b1eeb201fc51110e1ee130110824845f81e82
Gerrit-Change-Number: 31811
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: pespin.
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/31806 )
Change subject: mgcp_network: Unregister osmo_fd before closing fd
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/31806
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ib937e56be62327f52d9cf03a07d7620080356ee8
Gerrit-Change-Number: 31806
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 09 Mar 2023 18:02:08 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: laforge, pespin.
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/31808 )
Change subject: select: Optimize osmo_fd_get_by_fd
......................................................................
Patch Set 1:
(1 comment)
File src/core/select.c:
https://gerrit.osmocom.org/c/libosmocore/+/31808/comment/2a339be6_669ca42e
PS1, Line 223: if (fd->fd >= 0)
> BTW, the fact that we assert there would also probably mean we can optimize osmo_fd_is_registered() […]
I think using OSMO_ASSERT here is a good idea
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/31808
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I8b71547df8bed84192cb160479fa3debf9b7eade
Gerrit-Change-Number: 31808
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 09 Mar 2023 18:01:46 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/31810 )
Change subject: sndcp: Avoid propagating rc=1
......................................................................
sndcp: Avoid propagating rc=1
Those functions guarantee to the caller that the prim is always freed,
and hence returning 1 has not meaning there.
Fix similar to bab234c2ea13b1ffa81bdb2c19a5864746b21390 in rlcmac layer.
Change-Id: If3c9287d839198dc079993c4d32780fb1c2bc6fd
---
M src/sndcp/sndcp_prim.c
1 file changed, 18 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/10/31810/1
diff --git a/src/sndcp/sndcp_prim.c b/src/sndcp/sndcp_prim.c
index 63591d7..dee7dbe 100644
--- a/src/sndcp/sndcp_prim.c
+++ b/src/sndcp/sndcp_prim.c
@@ -533,6 +533,8 @@
/* Special return value '1' means: do not free */
if (rc != 1)
msgb_free(msg);
+ else
+ rc = 0;
return rc;
}
@@ -676,5 +678,7 @@
/* Special return value '1' means: do not free */
if (rc != 1)
msgb_free(msg);
+ else
+ rc = 0;
return rc;
}
--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/31810
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: If3c9287d839198dc079993c4d32780fb1c2bc6fd
Gerrit-Change-Number: 31810
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/31809 )
Change subject: llc: Avoid propagating rc=1
......................................................................
llc: Avoid propagating rc=1
Those functions guarantee to the caller that the prim is always freed,
and hence returning 1 has not meaning there.
Fix similar to bab234c2ea13b1ffa81bdb2c19a5864746b21390 in rlcmac layer.
Change-Id: Icdee1cac4df970ae2ee7539d72c5a82667016160
---
M src/llc/llc_prim.c
1 file changed, 18 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/09/31809/1
diff --git a/src/llc/llc_prim.c b/src/llc/llc_prim.c
index b5fab8f..fd3578e 100644
--- a/src/llc/llc_prim.c
+++ b/src/llc/llc_prim.c
@@ -183,6 +183,8 @@
/* Special return value '1' means: do not free */
if (rc != 1)
msgb_free(llc_prim->oph.msg);
+ else
+ rc = 0;
return rc;
}
@@ -212,5 +214,7 @@
/* Special return value '1' means: do not free */
if (rc != 1)
msgb_free(msg);
+ else
+ rc = 0;
return rc;
}
--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/31809
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: Icdee1cac4df970ae2ee7539d72c5a82667016160
Gerrit-Change-Number: 31809
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: neels, laforge, fixeria, dexter.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-pcu/+/31176
to look at the new patch set (#30).
Change subject: support for Ericsson RBS E1 CCU
......................................................................
support for Ericsson RBS E1 CCU
Ericsson RBS series BTSs do not have a built in PCU. Rather than having
the PCU on board the PCU is co-located to the BSC in those cases. Just
like the MGW the PCU would connect to the CCU (Channel Coding Unit) via
E1 line. The PCU is connected via an unix domain socket (pcu_sock) to
the BSC to receive RACH requests and to control Paging and TBF assignment.
This patch adds all the required functionality to run an Ercisson RBS in
GPRS/EGPRS mode. It supports 16k I.460 E1 subslots and full 64k E1
timeslots (recommended)
Change-Id: I5c0a76667339ca984a12cbd2052f5d9e5b0f9c4d
Related: OS#5198
---
M configure.ac
M contrib/jenkins.sh
M contrib/osmo-pcu.spec.in
M debian/control
M debian/rules
M src/Makefile.am
A src/ericsson-rbs/er_ccu_descr.h
A src/ericsson-rbs/er_ccu_if.c
A src/ericsson-rbs/er_ccu_if.h
A src/ericsson-rbs/er_ccu_l1_if.c
M src/gprs_debug.c
M src/gprs_debug.h
M src/pcu_l1_if.cpp
M src/pcu_l1_if.h
14 files changed, 1,167 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/76/31176/30
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/31176
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I5c0a76667339ca984a12cbd2052f5d9e5b0f9c4d
Gerrit-Change-Number: 31176
Gerrit-PatchSet: 30
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newpatchset
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/31731 )
Change subject: pcu_sock: Submit all DATA.ind regardless of link quality
......................................................................
pcu_sock: Submit all DATA.ind regardless of link quality
osmo-pcu requires to get DATA.ind for all FN/TS it manages in order to
tick its internal FN clock and trigger timeouts. Without this, some
events are ticked in a delay fashion when osmo-pcu detects FN jumps.
Change-Id: I8f1856dd9061c1bfca8b15be30df7a51760231b0
---
M src/common/pcu_sock.c
1 file changed, 13 insertions(+), 6 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
osmith: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index 7e87f6d..849f3c3 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -475,12 +475,6 @@
LOGP(DPCU, LOGL_DEBUG, "Sending data indication: sapi=%s arfcn=%d block=%d data=%s\n",
sapi_string[sapi], arfcn, block_nr, osmo_hexdump(data, len));
- if (lqual < bts->min_qual_norm) {
- LOGP(DPCU, LOGL_DEBUG, "Link quality %"PRId16" is below threshold %d, dropping packet\n",
- lqual, bts->min_qual_norm);
- return 0;
- }
-
msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_IND, bts->nr);
if (!msg)
return -ENOMEM;
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/31731
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I8f1856dd9061c1bfca8b15be30df7a51760231b0
Gerrit-Change-Number: 31731
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(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>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged