Attention is currently required from: falconia.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 1:
(1 comment)
File src/common/osmux.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/dcfcc077_15f56f7a
PS1, Line 413: /* We have to apply the same checks as in l1sap_rtp_rx_cb(), in case
> Question: the AMR encoding format check done in rtppayload_is_octet_aligned(), is it needed for Osmu […]
osmux implementation always generates octet-aligned AMR RTP.
See libosmo-netif:
./src/osmux.c
./src/osmux_input.c
./src/osmux_output.c
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Comment-Date: Thu, 25 May 2023 09:59:35 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: pespin.
falconia has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 1:
(1 comment)
File src/common/osmux.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/fbb77ce6_fbe05b22
PS1, Line 413: /* We have to apply the same checks as in l1sap_rtp_rx_cb(), in case
> yes, it's AMR only. In case you want to know more on the topic: […]
Question: the AMR encoding format check done in rtppayload_is_octet_aligned(), is it needed for Osmux, or only for plain RTP input? The answer to this question will affect the design of my next patch revision: if this logic is not needed for Osmux, the code can be simplified. If it is still needed, it won't be a big difficulty either, I just need to know which way it is.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 25 May 2023 09:55:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/32693 )
Change subject: pcu_sock: fix PCUIF interface (PCH)
......................................................................
pcu_sock: fix PCUIF interface (PCH)
The PCUIF interface implementation in osmo-bsc provides two ways to
access the paging channel (PCH).
1) Under the SAPI PCU_IF_SAPI_PCH PAGING COMMAND messages are accepted
as whole MAC block but the format is in the style that we are going
to deprecate with PCUIF v.11. Also at the moment those PAGING COMMANDs
are not confirmed towards the PCU. This is also not necessary since
osmo-pcu would silently drop such confirmations. (see pcu_rx_data_cnf
in pcu_l1_if.cpp)
2) Under the SAPI PCU_IF_SAPI_PCH_DT messages are also accepded as
MAC blocks but the SAPI will only accept IMMEDIATE ASSIGNMENT messages.
The messages are encapsulated in a struct that holds IMSI (paging group)
and TLLI (used for confirmation) as separate struct members. The
messages are also confirmed towards the PCU as it should be.
Since we want to depreacete the older V.10 version of PCUIF and there is
not much benefit in maintaining two interfaces we should use
SAPI PCU_IF_SAPI_PCH_DT for both message types. This also requires small
adjustments to osmo-pcu (see Depends).
Depends: osmo-pcu.git I99cfe373fa157cfb32b74c113ad9935347653a71
Related: OS#5927
Change-Id: I82443f2b402aa2416469c8c50b1c050323ef3b8f
---
M include/osmocom/bsc/pcu_if.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/pcu_sock.c
3 files changed, 56 insertions(+), 50 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
dexter: Looks good to me, approved
diff --git a/include/osmocom/bsc/pcu_if.h b/include/osmocom/bsc/pcu_if.h
index 5dc6e37..525b2e4 100644
--- a/include/osmocom/bsc/pcu_if.h
+++ b/include/osmocom/bsc/pcu_if.h
@@ -25,11 +25,7 @@
uint8_t is_11bit, enum ph_burst_type burst_type);
/* Confirm the sending of an immediate assignment to the pcu */
-int pcu_tx_imm_ass_sent(struct gsm_bts *bts, uint32_t tlli);
-
-
-/* Confirm the sending of an immediate assignment to the pcu */
-int pcu_tx_imm_ass_sent(struct gsm_bts *bts, uint32_t tlli);
+int pcu_tx_pch_confirm(struct gsm_bts *bts, uint32_t tlli);
/* Open connection to PCU */
int pcu_sock_init(struct gsm_network *net);
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 72acc85..54357de 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -2398,7 +2398,7 @@
else {
msgb_pull(msg, 1); /* drop previous data to use msg_pull_u32 */
tlli = msgb_pull_u32(msg);
- pcu_tx_imm_ass_sent(sign_link->trx->bts, tlli);
+ pcu_tx_pch_confirm(sign_link->trx->bts, tlli);
}
return 0;
}
diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c
index eb4f265..32307ff 100644
--- a/src/osmo-bsc/pcu_sock.c
+++ b/src/osmo-bsc/pcu_sock.c
@@ -436,7 +436,7 @@
}
/* Confirm the sending of an immediate assignment to the pcu */
-int pcu_tx_imm_ass_sent(struct gsm_bts *bts, uint32_t tlli)
+int pcu_tx_pch_confirm(struct gsm_bts *bts, uint32_t tlli)
{
struct msgb *msg;
struct gsm_pcu_if *pcu_prim;
@@ -459,10 +459,10 @@
/* we need to decode the raw RR paging message (see PCU code
* Encoding::write_paging_request) and extract the mobile identity
* (P-TMSI) from it */
-static int pcu_rx_rr_paging(struct gsm_bts *bts, uint8_t paging_group,
- const uint8_t *raw_rr_msg)
+static int pcu_rx_rr_paging_pch(struct gsm_bts *bts, uint8_t paging_group,
+ const struct gsm_pcu_if_pch_dt *pch_dt)
{
- struct gsm48_paging1 *p1 = (struct gsm48_paging1 *) raw_rr_msg;
+ struct gsm48_paging1 *p1 = (struct gsm48_paging1 *) pch_dt->data;
uint8_t chan_needed;
struct osmo_mobile_identity mi;
int rc;
@@ -505,25 +505,21 @@
return rc;
}
-/* Helper function for pcu_rx_data_req() to extract paging group info (3 byte) */
-static uint8_t extract_paging_group(struct gsm_bts *bts, uint8_t *data)
+static int pcu_rx_rr_imm_ass_pch(struct gsm_bts *bts, uint8_t paging_group,
+ const struct gsm_pcu_if_pch_dt *pch_dt)
{
- char imsi_digit_buf[4];
- uint8_t pag_grp;
+ LOG_BTS(bts, DPCU, LOGL_DEBUG, "PCU Sends immediate assignment via PCH (TLLI=0x%08x, IMSI=%s, Paging group=0x%02x)\n",
+ pch_dt->tlli, pch_dt->imsi, paging_group);
- /* the first three bytes are the last three digits of the IMSI, which we need to compute the paging group */
- imsi_digit_buf[0] = data[0];
- imsi_digit_buf[1] = data[1];
- imsi_digit_buf[2] = data[2];
- imsi_digit_buf[3] = '\0';
+ /* NOTE: Sending an IMMEDIATE ASSIGNMENT via PCH became necessary with GPRS in order to be able to
+ * assign downlink TBFs directly through the paging channel. However, this method never became part
+ * of the RSL specs. This means that each BTS vendor has to come up with a proprietary method. At
+ * the moment we only support Ericsson RBS here. */
+ if (is_ericsson_bts(bts))
+ return rsl_ericsson_imm_assign_cmd(bts, pch_dt->tlli, sizeof(pch_dt->data), pch_dt->data, paging_group);
- pag_grp = gsm0502_calc_paging_group(&bts->si_common.chan_desc,
- str_to_imsi(imsi_digit_buf));
-
- LOG_BTS(bts, DPCU, LOGL_DEBUG, "Calculating paging group: imsi_digit_buf=%s ==> pag_grp=0x%02x\n",
- imsi_digit_buf, pag_grp);
-
- return pag_grp;
+ LOG_BTS(bts, DPCU, LOGL_ERROR, "BTS model does not support sending immediate assignment via PCH!\n");
+ return -ENOTSUP;
}
static int pcu_rx_data_req(struct gsm_bts *bts, uint8_t msg_type,
@@ -532,6 +528,7 @@
uint8_t pag_grp;
int rc = 0;
struct gsm_pcu_if_pch_dt *pch_dt;
+ struct gsm48_imm_ass *gsm48_imm_ass;
LOG_BTS(bts, DPCU, LOGL_DEBUG, "Data request received: sapi=%s arfcn=%d "
"block=%d data=%s\n", sapi_string[data_req->sapi],
@@ -539,18 +536,13 @@
osmo_hexdump(data_req->data, data_req->len));
switch (data_req->sapi) {
- case PCU_IF_SAPI_PCH:
- /* Extract 3 byte paging group */
- pag_grp = extract_paging_group(bts, data_req->data);
- pcu_rx_rr_paging(bts, pag_grp, data_req->data+3);
- break;
case PCU_IF_SAPI_AGCH:
if (rsl_imm_assign_cmd(bts, data_req->len, data_req->data))
rc = -EIO;
break;
case PCU_IF_SAPI_PCH_DT:
/* DT = direct TLLI. A tlli is prefixed so that the BSC/BTS can confirm the sending of the downlink
- * IMMEDIATE ASSIGNMENT towards the PCU using this TLLI as a reference. */
+ * IMMEDIATE ASSIGNMENT or PAGING COMMAND towards the PCU using this TLLI as a reference. */
if (data_req->len < sizeof(struct gsm_pcu_if_pch_dt)) {
LOG_BTS(bts, DPCU, LOGL_ERROR, "Received PCU data request with invalid/small length %d\n",
@@ -561,24 +553,10 @@
pch_dt = (struct gsm_pcu_if_pch_dt *)data_req->data;
pag_grp = gsm0502_calc_paging_group(&bts->si_common.chan_desc, str_to_imsi(pch_dt->imsi));
- LOG_BTS(bts, DPCU, LOGL_DEBUG, "PCU Sends immediate assignment via PCH (TLLI=0x%08x, IMSI=%s, Paging group=0x%02x)\n",
- pch_dt->tlli, pch_dt->imsi, pag_grp);
-
- /* NOTE: Sending an IMMEDIATE ASSIGNMENT via PCH became necessary with GPRS in order to be able to
- * assign downlink TBFs directly through the paging channel. However, this method never became part
- * of the RSL specs. This means that each BTS vendor has to come up with a proprietary method. At
- * the moment we only support Ericsson RBS here. */
- if (is_ericsson_bts(bts)) {
- rc = rsl_ericsson_imm_assign_cmd(bts, pch_dt->tlli, sizeof(pch_dt->data),
- pch_dt->data, pag_grp);
- } else {
- LOG_BTS(bts, DPCU, LOGL_ERROR, "BTS model does not support sending immediate assignment via PCH!\n");
- rc = -ENOTSUP;
- }
-
- if (rc)
- rc = -EIO;
- break;
+ gsm48_imm_ass = (struct gsm48_imm_ass *)pch_dt->data;
+ if (gsm48_imm_ass->msg_type == GSM48_MT_RR_IMM_ASS)
+ return pcu_rx_rr_imm_ass_pch(bts, pag_grp, pch_dt);
+ return pcu_rx_rr_paging_pch(bts, pag_grp, pch_dt);
default:
LOG_BTS(bts, DPCU, LOGL_ERROR, "Received PCU data request with "
"unsupported sapi %d\n", data_req->sapi);
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/32693
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I82443f2b402aa2416469c8c50b1c050323ef3b8f
Gerrit-Change-Number: 32693
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
Attention is currently required from: falconia.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 1:
(3 comments)
Patchset:
PS1:
Ass discussed, this patch needs to be reworked based on osmux being AMR-only.
File src/common/l1sap.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/d6d0d549_867cbbb9
PS1, Line 1237: default:
> I am not removing the logic of suppressing AMR bwe, I simply moved it to the rtp_payload_input_preen […]
Ack
File src/common/osmux.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/eb35ee5d_f41e0d9e
PS1, Line 413: /* We have to apply the same checks as in l1sap_rtp_rx_cb(), in case
> > I understood this extra byte was only appearing in HR? […]
yes, it's AMR only. In case you want to know more on the topic:
https://ftp.osmocom.org/docs/osmo-bsc/master/osmux-reference.pdf
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Comment-Date: Thu, 25 May 2023 09:28:14 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: pespin.
falconia has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 1:
(2 comments)
File src/common/l1sap.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/f0de429a_646eb8d4
PS1, Line 1237: default:
> you are dropping the AMR path here. Why? […]
I am not removing the logic of suppressing AMR bwe, I simply moved it to the rtp_payload_input_preen() function that executes before enqueueing, rather than after dequeueing.
File src/common/osmux.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/d978b405_9b5eee00
PS1, Line 413: /* We have to apply the same checks as in l1sap_rtp_rx_cb(), in case
> I understood this extra byte was only appearing in HR?
Yes, as well as an extended FR/EFR format of my own invention (falconia/rtp_traulike branch) which I will be addressing much later, certainly after discussing it in OsmoDevCall, not before.
> Osmux is AMR always,
I did not know this detail! It was certainly one of those "how am I supposed to know this arcane detail" moments...
> does it really apply here?
The header octet stripping logic is never needed for AMR - so if you say that Osmux is AMR only, then I need to rethink and redesign this patch.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 25 May 2023 09:25:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: fixeria.
Hello Jenkins Builder, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmocom-bb/+/32973
to look at the new patch set (#4).
Change subject: layer23: modem: Forward Paging Request Type 1/2 to rlcmac layer
......................................................................
layer23: modem: Forward Paging Request Type 1/2 to rlcmac layer
Tje RLCMAC layer in libosmo-gprs-rlcmac will decode the messages and if
matching the MS, forward it to GMM, who will see if it requires initiating
a packet access procedure.
Change-Id: Iee4b5ee5e1e5874b550dd8536b095bf0b5eeb8f4
---
M src/host/layer23/src/modem/grr.c
1 file changed, 57 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/73/32973/4
--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/32973
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: Iee4b5ee5e1e5874b550dd8536b095bf0b5eeb8f4
Gerrit-Change-Number: 32973
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
Hello Jenkins Builder, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-gprs/+/32972
to look at the new patch set (#2).
Change subject: rlcmac: Add APIs to decode P1/P2 Rest Octets
......................................................................
rlcmac: Add APIs to decode P1/P2 Rest Octets
Change-Id: I59c6723d969880a4481e3b86a172d59f0edeb1e4
---
M include/osmocom/gprs/rlcmac/csn1_defs.h
M src/rlcmac/csn1_ts_44_018.c
2 files changed, 31 insertions(+), 20 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/72/32972/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/32972
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: I59c6723d969880a4481e3b86a172d59f0edeb1e4
Gerrit-Change-Number: 32972
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset