osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/32366 )
Change subject: abis_rsl: fix encoding RSL_IE_IPAC_RTP_CSD_FORMAT
......................................................................
abis_rsl: fix encoding RSL_IE_IPAC_RTP_CSD_FORMAT
The A-bis/IP RTP CSD Format IR Values need to be shifted by 4 bits
instead of 5. See OsmoBTS Abis Protocol Specification § 5.8.14
RSL_IE_IPAC_RTP_CSD_FORMAT.
Related: https://ftp.osmocom.org/docs/osmo-bts/master/osmobts-abis.pdf
Related: OS#4393
Change-Id: I9ce0b2d9b77eef61a6d4dce417efe4e853217dc5
---
M src/osmo-bsc/abis_rsl.c
1 file changed, 22 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/32366/1
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index dfe7da9..6370942 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -2590,18 +2590,18 @@
switch (ch_mode_rate->data_rate.t) {
case RSL_CMOD_CSD_T_32k0:
case RSL_CMOD_CSD_T_29k0:
- ret |= RSL_IPAC_RTP_CSD_IR_32k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_32k << 4;
break;
case RSL_CMOD_CSD_T_14k4:
case RSL_CMOD_CSD_T_9k6:
- ret |= RSL_IPAC_RTP_CSD_IR_16k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_16k << 4;
break;
case RSL_CMOD_CSD_T_4k8:
case RSL_CMOD_CSD_T_2k4:
case RSL_CMOD_CSD_T_1k2:
case RSL_CMOD_CSD_T_600:
case RSL_CMOD_CSD_T_1200_75:
- ret |= RSL_IPAC_RTP_CSD_IR_8k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_8k << 4;
break;
default:
return -EINVAL;
@@ -2622,19 +2622,19 @@
case RSL_CMOD_CSD_NTA_14k5_43k5:
case RSL_CMOD_CSD_NTA_29k0_43k5:
case RSL_CMOD_CSD_NT_43k5:
- ret |= RSL_IPAC_RTP_CSD_IR_64k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_64k << 4;
break;
case RSL_CMOD_CSD_NTA_29k0_14k5:
case RSL_CMOD_CSD_NTA_14k5_29k0:
case RSL_CMOD_CSD_NT_28k8:
- ret |= RSL_IPAC_RTP_CSD_IR_32k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_32k << 4;
break;
case RSL_CMOD_CSD_NT_14k5:
case RSL_CMOD_CSD_NT_12k0:
- ret |= RSL_IPAC_RTP_CSD_IR_16k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_16k << 4;
break;
case RSL_CMOD_CSD_NT_6k0:
- ret |= RSL_IPAC_RTP_CSD_IR_8k << 5;
+ ret |= RSL_IPAC_RTP_CSD_IR_8k << 4;
break;
default:
return -EINVAL;
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/32366
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I9ce0b2d9b77eef61a6d4dce417efe4e853217dc5
Gerrit-Change-Number: 32366
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/32367 )
Change subject: CSD: support 29k0, 32k0 transp data
......................................................................
CSD: support 29k0, 32k0 transp data
Related: OS#4393
Change-Id: I03fd3ca19b08d5cff8748ba9cf2f21d4befaf338
---
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/assignment_fsm.c
M src/osmo-bsc/data_rate_pref.c
M src/osmo-bsc/gsm_data.c
M src/osmo-bsc/lchan_rtp_fsm.c
M src/osmo-bsc/lchan_select.c
6 files changed, 28 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/32367/1
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 6370942..37f0e81 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -456,6 +456,8 @@
case GSM48_CMODE_SPEECH_AMR:
cm->chan_rate = RSL_CMOD_SP_GSM3;
break;
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
@@ -2695,6 +2697,8 @@
int ipacc_payload_type(enum gsm48_chan_mode tch_mode, enum gsm_chan_t type)
{
switch (gsm48_chan_mode_to_non_vamos(tch_mode)) {
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c
index 02ca29c..b631767 100644
--- a/src/osmo-bsc/assignment_fsm.c
+++ b/src/osmo-bsc/assignment_fsm.c
@@ -361,6 +361,8 @@
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_14k5:
+ case GSM48_CMODE_DATA_29k0:
+ case GSM48_CMODE_DATA_32k0:
case GSM48_CMODE_SPEECH_EFR:
/* these services all explicitly require a TCH/F */
return type == GSM_LCHAN_TCH_F;
@@ -378,6 +380,8 @@
static int chan_mode_to_ch_indctr(enum gsm48_chan_mode chan_mode)
{
switch (gsm48_chan_mode_to_non_vamos(chan_mode)) {
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
diff --git a/src/osmo-bsc/data_rate_pref.c b/src/osmo-bsc/data_rate_pref.c
index 443fea7..2c98169 100644
--- a/src/osmo-bsc/data_rate_pref.c
+++ b/src/osmo-bsc/data_rate_pref.c
@@ -55,6 +55,10 @@
static int gsm0808_data_rate_transp_to_gsm0408(enum gsm0808_data_rate_transp rate)
{
switch (rate) {
+ case GSM0808_DATA_RATE_TRANSP_32k0:
+ return GSM48_CMODE_DATA_32k0;
+ case GSM0808_DATA_RATE_TRANSP_28k8:
+ return GSM48_CMODE_DATA_29k0;
case GSM0808_DATA_RATE_TRANSP_14k4:
return GSM48_CMODE_DATA_14k5;
case GSM0808_DATA_RATE_TRANSP_9k6:
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index 012149a..1e132f4 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -1034,6 +1034,8 @@
case GSM48_CMODE_SPEECH_EFR:
case GSM48_CMODE_SPEECH_AMR:
return RSL_CMOD_SPD_SPEECH;
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c
index 7e9c31f..8b6faad 100644
--- a/src/osmo-bsc/lchan_rtp_fsm.c
+++ b/src/osmo-bsc/lchan_rtp_fsm.c
@@ -871,6 +871,8 @@
static enum mgcp_codecs chan_mode_to_mgcp_codec(enum gsm48_chan_mode chan_mode, bool full_rate)
{
switch (gsm48_chan_mode_to_non_vamos(chan_mode)) {
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c
index 1e12d96..9e0da86 100644
--- a/src/osmo-bsc/lchan_select.c
+++ b/src/osmo-bsc/lchan_select.c
@@ -184,6 +184,8 @@
/* fall through */
case GSM48_CMODE_SPEECH_V1:
case GSM48_CMODE_SPEECH_AMR:
+ case GSM48_CMODE_DATA_32k0:
+ case GSM48_CMODE_DATA_29k0:
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/32367
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I03fd3ca19b08d5cff8748ba9cf2f21d4befaf338
Gerrit-Change-Number: 32367
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: arehbein, pespin.
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32354 )
Change subject: gsm_objclass2obj(): Change signature/set NACK cause
......................................................................
Patch Set 2:
(1 comment)
File src/common/oml.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32354/comment/5816d636_fde453c6
PS2, Line 1106: gsm_objclass2obj
This call may overwrite the cause previously set by `gsm_objclass2mo()`.
We may want two checks here instead of a combined one, i.e.
```
if ((mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst, &c)) == NULL)
return oml_fom_ack_nack(msg, c);
if ((obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst, &c)) == NULL)
return oml_fom_ack_nack(msg, c);
```
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32354
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: If734ea2c8cae4c1f99b02520dffa4e3862a67745
Gerrit-Change-Number: 32354
Gerrit-PatchSet: 2
Gerrit-Owner: arehbein <arehbein(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: arehbein <arehbein(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 19 Apr 2023 01:06:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: laforge, pespin.
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/32320 )
Change subject: sccp_scoc.c: fix infinite loop on conn ID exhaustion
......................................................................
Patch Set 1:
(1 comment)
Commit Message:
https://gerrit.osmocom.org/c/libosmo-sccp/+/32320/comment/55004c17_3a0e5a67
PS1, Line 17: entire SCCP conn id number space before exiting in failure.
> I don't think it should be configurable. […]
In some programs we have sanity counters to limit iterations to find an unused ID, I think like 1000 or 10000 or some such, so I thought it might be a good idea. AFAICT not for SCCP though, more the other protocols...
I've been hitting this issue of finding an unused ID a lot, and it is in theory a pretty hard problem to make this always O(1). But I've been thinking on-and-off about a general API that will in "all" practical situations be O(1), completely avoiding a lookup whether an ID is used. So yes, ok, if the way to find an unused ID changes and does not require a max_iterations argument at all, then you're probably right and we shouldn't put that parameter there at all.
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/32320
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Change-Id: Ib64e0cb1ae0cc8b7bebcb2a352d4068b496b304a
Gerrit-Change-Number: 32320
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 19 Apr 2023 00:00:31 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: comment