lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

October 2023

  • 1 participants
  • 1843 discussions
[M] Change in osmocom-bb[master]: firmware/layer1: clean up l1s_tch_resp()
by Jenkins Builder 16 Oct '23

16 Oct '23
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34753?usp=email ) Change subject: firmware/layer1: clean up l1s_tch_resp() ...................................................................... Patch Set 1: (1 comment) File src/target/firmware/layer1/prim_tch.c: Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11816): https://gerrit.osmocom.org/c/osmocom-bb/+/34753/comment/68531df1_80588aa8 PS1, Line 330: skip_rx_traffic: labels should not be indented -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34753?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ie4faf386f54720888e73171bee26f93dfa0562d5 Gerrit-Change-Number: 34753 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 16 Oct 2023 05:23:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmocom-bb[master]: firmware/layer1: handle CSD related channel modes
by fixeria 16 Oct '23

16 Oct '23
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34694?usp=email ) Change subject: firmware/layer1: handle CSD related channel modes ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34694?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ib73210b273826ded56d42c41ffeb835eef96dd2b Gerrit-Change-Number: 34694 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 16 Oct 2023 05:22:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmocom-bb[master]: mobile: separate 'call MS_NAME NUMBER' command
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34760?usp=email ) Change subject: mobile: separate 'call MS_NAME NUMBER' command ...................................................................... mobile: separate 'call MS_NAME NUMBER' command This will allow us adding an optional switch for data calls. Change-Id: I5d2332df09a81cb0747ecd9d95351ab59f99358e Related: OS#4396 --- M src/host/layer23/src/mobile/vty_interface.c 1 file changed, 55 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/60/34760/1 diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index ea355b3..b8f2692 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -488,15 +488,51 @@ return CMD_SUCCESS; } -DEFUN(call, call_cmd, "call MS_NAME (NUMBER|emergency|answer|hangup|hold)", - "Make a call\nName of MS (see \"show ms\")\nPhone number to call " - "(Use digits '0123456789*#abc', and '+' to dial international)\n" +DEFUN(call_num, call_num_cmd, "call MS_NAME NUMBER", + "Make a call\nName of MS (see \"show ms\")\n" + "Phone number to call " + "(Use digits '0123456789*#abc', and '+' to dial international)\n") +{ + struct osmocom_ms *ms; + struct gsm_settings *set; + struct gsm_settings_abbrev *abbrev; + const char *number; + + ms = l23_vty_get_ms(argv[0], vty); + if (!ms) + return CMD_WARNING; + set = &ms->settings; + + if (set->ch_cap == GSM_CAP_SDCCH) { + vty_out(vty, "Basic call is not supported for SDCCH only " + "mobile%s", VTY_NEWLINE); + return CMD_WARNING; + } + + number = argv[1]; + llist_for_each_entry(abbrev, &set->abbrev, list) { + if (!strcmp(number, abbrev->abbrev)) { + number = abbrev->number; + vty_out(vty, "Dialing number '%s'%s", number, + VTY_NEWLINE); + break; + } + } + + if (vty_check_number(vty, number)) + return CMD_WARNING; + mncc_call(ms, number); + + return CMD_SUCCESS; +} + +DEFUN(call, call_cmd, "call MS_NAME (emergency|answer|hangup|hold)", + "Make a call\nName of MS (see \"show ms\")\n" "Make an emergency call\nAnswer an incoming call\nHangup a call\n" "Hold current active call\n") { struct osmocom_ms *ms; struct gsm_settings *set; - struct gsm_settings_abbrev *abbrev; const char *number; ms = l23_vty_get_ms(argv[0], vty); @@ -519,19 +555,8 @@ mncc_hangup(ms); else if (!strcmp(number, "hold")) mncc_hold(ms); - else { - llist_for_each_entry(abbrev, &set->abbrev, list) { - if (!strcmp(number, abbrev->abbrev)) { - number = abbrev->number; - vty_out(vty, "Dialing number '%s'%s", number, - VTY_NEWLINE); - break; - } - } - if (vty_check_number(vty, number)) - return CMD_WARNING; - mncc_call(ms, number); - } + else /* shall not happen */ + OSMO_ASSERT(0); return CMD_SUCCESS; } @@ -2506,6 +2531,7 @@ install_element(ENABLE_NODE, &network_search_cmd); install_element(ENABLE_NODE, &network_show_cmd); install_element(ENABLE_NODE, &network_select_cmd); + install_element(ENABLE_NODE, &call_num_cmd); install_element(ENABLE_NODE, &call_cmd); install_element(ENABLE_NODE, &call_retr_cmd); install_element(ENABLE_NODE, &call_dtmf_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34760?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I5d2332df09a81cb0747ecd9d95351ab59f99358e Gerrit-Change-Number: 34760 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmocom-bb[master]: mobile: clean up call related VTY commands
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34761?usp=email ) Change subject: mobile: clean up call related VTY commands ...................................................................... mobile: clean up call related VTY commands Change-Id: I8bccdf776ad541932ad4a6d6a68426a6ab856e08 Related: OS#4396 --- M src/host/layer23/src/mobile/vty_interface.c 1 file changed, 37 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/61/34761/1 diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index b8f2692..28f8a1b 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -488,10 +488,16 @@ return CMD_SUCCESS; } -DEFUN(call_num, call_num_cmd, "call MS_NAME NUMBER", - "Make a call\nName of MS (see \"show ms\")\n" - "Phone number to call " - "(Use digits '0123456789*#abc', and '+' to dial international)\n") +#define CALL_CMD "call MS_NAME" +#define CALL_CMD_DESC \ + "Call related commands\n" \ + "Name of MS (see \"show ms\")\n" + +DEFUN(call_num, call_num_cmd, + CALL_CMD " NUMBER", + CALL_CMD_DESC + "Phone number to call " + "(Use digits '0123456789*#abc', and '+' to dial international)\n") { struct osmocom_ms *ms; struct gsm_settings *set; @@ -526,10 +532,13 @@ return CMD_SUCCESS; } -DEFUN(call, call_cmd, "call MS_NAME (emergency|answer|hangup|hold)", - "Make a call\nName of MS (see \"show ms\")\n" - "Make an emergency call\nAnswer an incoming call\nHangup a call\n" - "Hold current active call\n") +DEFUN(call, call_cmd, + CALL_CMD " (emergency|answer|hangup|hold)", + CALL_CMD_DESC + "Make an emergency call\n" + "Answer an incoming call\n" + "Hangup a call\n" + "Hold current active call\n") { struct osmocom_ms *ms; struct gsm_settings *set; @@ -561,9 +570,11 @@ return CMD_SUCCESS; } -DEFUN(call_retr, call_retr_cmd, "call MS_NAME retrieve [NUMBER]", - "Make a call\nName of MS (see \"show ms\")\n" - "Retrieve call on hold\nNumber of call to retrieve") +DEFUN(call_retr, call_retr_cmd, + CALL_CMD " retrieve [NUMBER]", + CALL_CMD_DESC + "Retrieve call on hold\n" + "Number of call to retrieve\n") { struct osmocom_ms *ms; @@ -576,9 +587,11 @@ return CMD_SUCCESS; } -DEFUN(call_dtmf, call_dtmf_cmd, "call MS_NAME dtmf DIGITS", - "Make a call\nName of MS (see \"show ms\")\n" - "One or more DTMF digits to transmit") +DEFUN(call_dtmf, call_dtmf_cmd, + CALL_CMD " dtmf DIGITS", + CALL_CMD_DESC + "Send DTMF (Dual-Tone Multi-Frequency) tones\n" + "One or more DTMF digits to transmit\n") { struct osmocom_ms *ms; struct gsm_settings *set; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34761?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I8bccdf776ad541932ad4a6d6a68426a6ab856e08 Gerrit-Change-Number: 34761 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmocom-bb[master]: mobile: add support for Circuit Switched Data calls
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34762?usp=email ) Change subject: mobile: add support for Circuit Switched Data calls ...................................................................... mobile: add support for Circuit Switched Data calls TODO: for now MO calls only, add support for MT calls TODO: add VTY command(s) for changing the Bearer Capability Change-Id: I1995fa0a7a68d9b980852b664d472d4633777ac6 Related: OS#4396 --- M src/host/layer23/include/osmocom/bb/common/settings.h M src/host/layer23/include/osmocom/bb/common/support.h M src/host/layer23/include/osmocom/bb/mobile/mncc_ms.h M src/host/layer23/src/common/settings.c M src/host/layer23/src/common/support.c M src/host/layer23/src/mobile/gsm48_rr.c M src/host/layer23/src/mobile/mnccms.c M src/host/layer23/src/mobile/vty_interface.c 8 files changed, 166 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/62/34762/1 diff --git a/src/host/layer23/include/osmocom/bb/common/settings.h b/src/host/layer23/include/osmocom/bb/common/settings.h index 884578b..d9b055d 100644 --- a/src/host/layer23/include/osmocom/bb/common/settings.h +++ b/src/host/layer23/include/osmocom/bb/common/settings.h @@ -161,6 +161,14 @@ uint8_t ch_cap; /* channel capability */ int8_t min_rxlev_dbm; /* min dBm to access */ + /* CSD modes */ + uint8_t csd_tch_f144; + uint8_t csd_tch_f96; + uint8_t csd_tch_f48; + uint8_t csd_tch_h48; + uint8_t csd_tch_f24; + uint8_t csd_tch_h24; + /* support for ASCI */ bool vgcs; /* support of VGCS */ bool vbs; /* support of VBS */ diff --git a/src/host/layer23/include/osmocom/bb/common/support.h b/src/host/layer23/include/osmocom/bb/common/support.h index 2fae57e..b0c71f5 100644 --- a/src/host/layer23/include/osmocom/bb/common/support.h +++ b/src/host/layer23/include/osmocom/bb/common/support.h @@ -91,6 +91,14 @@ uint8_t half_v1; uint8_t half_v3; + /* CSD modes */ + uint8_t csd_tch_f144; + uint8_t csd_tch_f96; + uint8_t csd_tch_f48; + uint8_t csd_tch_h48; + uint8_t csd_tch_f24; + uint8_t csd_tch_h24; + /* EDGE / UMTS / CDMA */ uint8_t edge_ms_sup; uint8_t edge_psk_sup; diff --git a/src/host/layer23/include/osmocom/bb/mobile/mncc_ms.h b/src/host/layer23/include/osmocom/bb/mobile/mncc_ms.h index 705c681..00b8ec4 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/mncc_ms.h +++ b/src/host/layer23/include/osmocom/bb/mobile/mncc_ms.h @@ -1,6 +1,6 @@ #pragma once -int mncc_call(struct osmocom_ms *ms, const char *number); +int mncc_call(struct osmocom_ms *ms, const char *number, bool data); int mncc_hangup(struct osmocom_ms *ms); int mncc_answer(struct osmocom_ms *ms); int mncc_hold(struct osmocom_ms *ms); diff --git a/src/host/layer23/src/common/settings.c b/src/host/layer23/src/common/settings.c index 395d239..10ae1d9 100644 --- a/src/host/layer23/src/common/settings.c +++ b/src/host/layer23/src/common/settings.c @@ -100,6 +100,14 @@ set->ch_cap = sup->ch_cap; set->min_rxlev_dbm = sup->min_rxlev_dbm; set->dsc_max = sup->dsc_max; + + set->csd_tch_f144 = sup->csd_tch_f144; + set->csd_tch_f96 = sup->csd_tch_f96; + set->csd_tch_f48 = sup->csd_tch_f48; + set->csd_tch_h48 = sup->csd_tch_h48; + set->csd_tch_f24 = sup->csd_tch_f24; + set->csd_tch_h24 = sup->csd_tch_h24; + set->vgcs = sup->vgcs; set->vbs = sup->vbs; diff --git a/src/host/layer23/src/common/support.c b/src/host/layer23/src/common/support.c index 2f93016..ed51465 100644 --- a/src/host/layer23/src/common/support.c +++ b/src/host/layer23/src/common/support.c @@ -97,6 +97,14 @@ sup->full_v3 = 0; sup->half_v1 = 1; sup->half_v3 = 0; + + /* CSD modes */ + sup->csd_tch_f144 = 1; + sup->csd_tch_f96 = 1; + sup->csd_tch_f48 = 1; + sup->csd_tch_h48 = 1; + sup->csd_tch_f24 = 1; + sup->csd_tch_h24 = 1; } /* (3.2.1) maximum channels to scan within each band */ @@ -173,6 +181,14 @@ print(priv, " Full-Rate V3 : %s\n", SUP_SET(full_v3)); print(priv, " Half-Rate V1 : %s\n", SUP_SET(half_v1)); print(priv, " Half-Rate V3 : %s\n", SUP_SET(half_v3)); + + print(priv, " CSD TCH/F14.4: %s\n", SUP_SET(csd_tch_f144)); + print(priv, " CSD TCH/F9.6 : %s\n", SUP_SET(csd_tch_f96)); + print(priv, " CSD TCH/F4.8 : %s\n", SUP_SET(csd_tch_f48)); + print(priv, " CSD TCH/H4.8 : %s\n", SUP_SET(csd_tch_h48)); + print(priv, " CSD TCH/F2.4 : %s\n", SUP_SET(csd_tch_f24)); + print(priv, " CSD TCH/H2.4 : %s\n", SUP_SET(csd_tch_h24)); + print(priv, " Min RXLEV : %d\n", set->min_rxlev_dbm); } diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 3200412..38f3309 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -374,6 +374,62 @@ LOGP(DRR, LOGL_INFO, "Mode: half-rate speech V3\n"); } break; + case GSM48_CMODE_DATA_14k5: + if (ch_type != RSL_CHAN_Bm_ACCHs) { + LOGP(DRR, LOGL_ERROR, + "TCH/F is expected for mode %s\n", + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } else if (!set->csd_tch_f144) { + LOGP(DRR, LOGL_ERROR, + "Not supporting TCH/F14.4 data (%s)\n", + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } + LOGP(DRR, LOGL_INFO, "Mode: TCH/F14.4 data (%s)\n", + gsm48_chan_mode_name(mode)); + break; + case GSM48_CMODE_DATA_12k0: + if (ch_type != RSL_CHAN_Bm_ACCHs) { + LOGP(DRR, LOGL_ERROR, + "TCH/F is expected for mode %s\n", + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } else if (!set->csd_tch_f96) { + LOGP(DRR, LOGL_ERROR, + "Not supporting TCH/F9.6 data (%s)\n", + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } + LOGP(DRR, LOGL_INFO, "Mode: TCH/F9.6 data (%s)\n", + gsm48_chan_mode_name(mode)); + break; + case GSM48_CMODE_DATA_6k0: + if ((ch_type == RSL_CHAN_Bm_ACCHs && !set->csd_tch_f48) + || (ch_type == RSL_CHAN_Lm_ACCHs && !set->csd_tch_h48)) { + LOGP(DRR, LOGL_ERROR, + "Not supporting TCH/%c4.8 data (%s)\n", + ch_type == RSL_CHAN_Bm_ACCHs ? 'F' : 'H', + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } + LOGP(DRR, LOGL_INFO, "Mode: TCH/%c4.8 data (%s)\n", + ch_type == RSL_CHAN_Bm_ACCHs ? 'F' : 'H', + gsm48_chan_mode_name(mode)); + break; + case GSM48_CMODE_DATA_3k6: + if ((ch_type == RSL_CHAN_Bm_ACCHs && !set->csd_tch_f24) + || (ch_type == RSL_CHAN_Lm_ACCHs && !set->csd_tch_h24)) { + LOGP(DRR, LOGL_ERROR, + "Not supporting TCH/%c2.4 data (%s)\n", + ch_type == RSL_CHAN_Bm_ACCHs ? 'F' : 'H', + gsm48_chan_mode_name(mode)); + return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; + } + LOGP(DRR, LOGL_INFO, "Mode: TCH/%c2.4 data (%s)\n", + ch_type == RSL_CHAN_Bm_ACCHs ? 'F' : 'H', + gsm48_chan_mode_name(mode)); + break; default: LOGP(DRR, LOGL_ERROR, "Mode 0x%02x not supported!\n", mode); return GSM48_RR_CAUSE_CHAN_MODE_UNACCT; diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c index c269ab4..7d14625 100644 --- a/src/host/layer23/src/mobile/mnccms.c +++ b/src/host/layer23/src/mobile/mnccms.c @@ -132,10 +132,48 @@ return speech_ver; } -static void mncc_set_bearer(struct osmocom_ms *ms, int8_t speech_ver, - struct gsm_mncc *mncc) +static void mncc_set_bcap_data(struct gsm_mncc *mncc, + const struct gsm_settings *set) { - struct gsm_settings *set = &ms->settings; + struct gsm_mncc_bearer_cap *bcap = &mncc->bearer_cap; + + mncc->fields |= MNCC_F_BEARER_CAP; + + *bcap = (struct gsm_mncc_bearer_cap) { + .transfer = GSM_MNCC_BCAP_UNR_DIG, + .mode = GSM48_BCAP_TMOD_CIRCUIT, + .coding = GSM48_BCAP_CODING_GSM_STD, + /* .radio is set below */ + .data = { + /* TODO: make these fields configurable via *set */ + .rate_adaption = GSM48_BCAP_RA_V110_X30, + .sig_access = GSM48_BCAP_SA_I440_I450, + .async = 1, + .transp = GSM48_BCAP_TR_TRANSP, + .nr_data_bits = 8, + .parity = GSM48_BCAP_PAR_NONE, + .nr_stop_bits = 1, + .user_rate = GSM48_BCAP_UR_9600, + .interm_rate = GSM48_BCAP_IR_16k, + }, + }; + + if (set->ch_cap == GSM_CAP_SDCCH_TCHF_TCHH) { + if (set->half_prefer) + bcap->radio = GSM48_BCAP_RRQ_DUAL_HR; + else + bcap->radio = GSM48_BCAP_RRQ_DUAL_FR; + LOGP(DMNCC, LOGL_INFO, " support TCH/H also\n"); + } else { + bcap->radio = GSM48_BCAP_RRQ_FR_ONLY; + LOGP(DMNCC, LOGL_INFO, " support TCH/F only\n"); + } +} + +static void mncc_set_bcap_speech(struct gsm_mncc *mncc, + const struct gsm_settings *set, + int speech_ver) +{ int i = 0; mncc->fields |= MNCC_F_BEARER_CAP; @@ -461,11 +499,12 @@ * or if not only full rate * or if given codec is unimplemented */ + /* TODO: handle incoming data calls properly */ if (!(data->fields & MNCC_F_BEARER_CAP) || speech_ver < 0) - mncc_set_bearer(ms, -1, &mncc); + mncc_set_bcap_speech(&mncc, &ms->settings, -1); else if (data->bearer_cap.speech_ver[1] >= 0 || speech_ver != 0) - mncc_set_bearer(ms, speech_ver, &mncc); + mncc_set_bcap_speech(&mncc, &ms->settings, speech_ver); /* CC capabilities (optional) */ if (ms->settings.cc_dtmf) { mncc.fields |= MNCC_F_CCCAP; @@ -532,7 +571,7 @@ return 0; } -int mncc_call(struct osmocom_ms *ms, const char *number) +int mncc_call(struct osmocom_ms *ms, const char *number, bool data) { struct gsm_call *call; struct gsm_mncc setup; @@ -563,7 +602,8 @@ /* emergency */ setup.emergency = 1; } else { - LOGP(DMNCC, LOGL_INFO, "Make call to %s\n", number); + LOGP(DMNCC, LOGL_INFO, "Make %s call to %s\n", + data ? "data" : "speech", number); /* called number */ setup.fields |= MNCC_F_CALLED; if (number[0] == '+') { @@ -576,7 +616,10 @@ OSMO_STRLCPY_ARRAY(setup.called.number, number); /* bearer capability (mandatory) */ - mncc_set_bearer(ms, -1, &setup); + if (data) + mncc_set_bcap_data(&setup, &ms->settings); + else + mncc_set_bcap_speech(&setup, &ms->settings, -1); /* CLIR */ if (ms->settings.clir) diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 28f8a1b..4a95e21 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -494,10 +494,11 @@ "Name of MS (see \"show ms\")\n" DEFUN(call_num, call_num_cmd, - CALL_CMD " NUMBER", + CALL_CMD " NUMBER [data]", CALL_CMD_DESC "Phone number to call " - "(Use digits '0123456789*#abc', and '+' to dial international)\n") + "(Use digits '0123456789*#abc', and '+' to dial international)\n" + "Initiate a CSD (Circuit Switched Data) call\n") { struct osmocom_ms *ms; struct gsm_settings *set; @@ -527,7 +528,7 @@ if (vty_check_number(vty, number)) return CMD_WARNING; - mncc_call(ms, number); + mncc_call(ms, number, argc > 2); return CMD_SUCCESS; } @@ -557,7 +558,7 @@ number = argv[1]; if (!strcmp(number, "emergency")) - mncc_call(ms, number); + mncc_call(ms, number, false); else if (!strcmp(number, "answer")) mncc_answer(ms); else if (!strcmp(number, "hangup")) -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34762?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I1995fa0a7a68d9b980852b664d472d4633777ac6 Gerrit-Change-Number: 34762 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmocom-bb[master]: firmware/layer1: clean up l1s_tch_cmd(): reduce nesting
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34752?usp=email ) Change subject: firmware/layer1: clean up l1s_tch_cmd(): reduce nesting ...................................................................... firmware/layer1: clean up l1s_tch_cmd(): reduce nesting Change-Id: If4f0bb37cb3e12e09078027461cd5040524e43b2 Related: OS#4396 --- M src/target/firmware/layer1/prim_tch.c 1 file changed, 21 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/52/34752/1 diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index 1e3ca75..7d5c1f4 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -434,7 +434,6 @@ if (traffic_tx_now) { volatile uint16_t *traffic_buf; struct msgb *msg; - const uint8_t *data; /* Reset play mode */ dsp_api.ndb->d_tch_mode &= ~B_PLAY_UL; @@ -448,30 +447,25 @@ /* Pull Traffic data (if any) */ msg = msgb_dequeue(&l1s.tx_queue[L1S_CHAN_TRAFFIC]); + if (msg == NULL) + goto skip_tx_traffic; /* Copy actual data, skipping the information block [0,1,2] */ - if (msg) { - data = msg->l2h; - dsp_memcpy_to_api(&traffic_buf[3], data, 33, 1); + dsp_memcpy_to_api(&traffic_buf[3], msgb_l2(msg), 33, 1); - traffic_buf[0] = (1 << B_BLUD); /* 1st word: Set B_BLU bit. */ - traffic_buf[1] = 0; /* 2nd word: cleared. */ - traffic_buf[2] = 0; /* 3nd word: cleared. */ - } + traffic_buf[0] = (1 << B_BLUD); /* 1st word: Set B_BLU bit. */ + traffic_buf[1] = 0; /* 2nd word: cleared. */ + traffic_buf[2] = 0; /* 3nd word: cleared. */ - if (msg) - dsp_api.ndb->d_tch_mode |= B_PLAY_UL; + dsp_api.ndb->d_tch_mode |= B_PLAY_UL; /* Indicate completion (FIXME: early but easier this way for now) */ - if (msg) { - last_tx_tch_fn = l1s.next_time.fn; - last_tx_tch_type |= TX_TYPE_TRAFFIC; - l1s_compl_sched(L1_COMPL_TX_TCH); - } + last_tx_tch_fn = l1s.next_time.fn; + last_tx_tch_type |= TX_TYPE_TRAFFIC; + l1s_compl_sched(L1_COMPL_TX_TCH); /* Free msg now that we're done with it */ - if (msg) - msgb_free(msg); + msgb_free(msg); } skip_tx_traffic: -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34752?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If4f0bb37cb3e12e09078027461cd5040524e43b2 Gerrit-Change-Number: 34752 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmocom-bb[master]: firmware/layer1: mute UL/DL vocodec if it's not needed
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34751?usp=email ) Change subject: firmware/layer1: mute UL/DL vocodec if it's not needed ...................................................................... firmware/layer1: mute UL/DL vocodec if it's not needed The upper layers usually request either of the two configurations: * (AUDIO_TX_MICROPHONE | AUDIO_RX_SPEAKER) - in this configuration the phone (PHY) is both the origin and the destination of the TCH frames. DL frames are played via the built-in speaker; UL frames recorded using the built-in microphone. * (AUDIO_TX_TRAFFIC_REQ | AUDIO_RX_TRAFFIC_IND) - in this case the upper layers (host side) become the origin and the destination of the TCH frames. The built-in speaker and microphone are expected to be disabled. However, when using the second configuration, one can still hear DL TCH frames being played by the built-in speaker. The built-in microphone does not seem to be causing any issues, but still we definitely don't want the vocoder to interfere with the host. Change-Id: I390db1889f079dea8112794c3e039a9136b897df Related: OS#4396 --- M src/target/firmware/include/calypso/l1_environment.h M src/target/firmware/layer1/prim_tch.c 2 files changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/51/34751/1 diff --git a/src/target/firmware/include/calypso/l1_environment.h b/src/target/firmware/include/calypso/l1_environment.h index d49866e..476a8a8 100644 --- a/src/target/firmware/include/calypso/l1_environment.h +++ b/src/target/firmware/include/calypso/l1_environment.h @@ -104,6 +104,8 @@ #define B_PLAY_UL (1 << 3) // Play UL #define B_DCO_ON (1 << 4) // DCO ON/OFF #define B_AUDIO_ASYNC (1 << 1) // WCP reserved +#define B_MUTE_VOCODEC_DL (1 << 14) // DL voice decoder +#define B_MUTE_VOCODEC_UL (1 << 15) // UL voice encoder // **************************************************************** // PARAMETER AREA (PARAM) MCU<->DSP COMMUNICATION DEFINITIONS diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index e3cffd1..1e3ca75 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -85,6 +85,18 @@ *tch_mode = SIG_ONLY_MODE; } } + + /* enable/disable the voice decoder (Downlink) */ + if (l1s.audio_mode & AUDIO_RX_SPEAKER) + dsp_api.ndb->d_tch_mode &= ~B_MUTE_VOCODEC_DL; /* unmute */ + else + dsp_api.ndb->d_tch_mode |= B_MUTE_VOCODEC_DL; /* mute */ + + /* enable/disable the voice encoder (Uplink) */ + if (l1s.audio_mode & AUDIO_TX_MICROPHONE) + dsp_api.ndb->d_tch_mode &= ~B_MUTE_VOCODEC_UL; /* unmute */ + else + dsp_api.ndb->d_tch_mode |= B_MUTE_VOCODEC_UL; /* mute */ } -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34751?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I390db1889f079dea8112794c3e039a9136b897df Gerrit-Change-Number: 34751 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmocom-bb[master]: firmware/layer1: clean up l1s_tch_resp()
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34753?usp=email ) Change subject: firmware/layer1: clean up l1s_tch_resp() ...................................................................... firmware/layer1: clean up l1s_tch_resp() * Reset both A_DD_0 and A_DD_1 headers, like in the case of FACCH. * Reduce nesting, fix minor coding style issues. * Add a FIXME for proper B_BFI checking. Change-Id: Ie4faf386f54720888e73171bee26f93dfa0562d5 Related: OS#4396 --- M src/target/firmware/layer1/prim_tch.c 1 file changed, 44 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/53/34753/1 diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index 7d5c1f4..31bf13a 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -296,42 +296,45 @@ if (traffic_rx_now) { volatile uint16_t *traffic_buf; + struct l1ctl_info_dl *dl; + struct l1ctl_traffic_ind *ti; + struct msgb *msg; traffic_buf = tch_sub ? dsp_api.ndb->a_dd_1 : dsp_api.ndb->a_dd_0; - if (traffic_buf[0] & (1<<B_BLUD)) { - /* Send the data to upper layers (if interested and good frame) */ - if ((l1s.audio_mode & AUDIO_RX_TRAFFIC_IND) && - !(dsp_api.ndb->a_dd_0[0] & (1<<B_BFI))) { - struct msgb *msg; - struct l1ctl_info_dl *dl; - struct l1ctl_traffic_ind *ti; - uint8_t *payload; + /* Send the data to upper layers (if interested and good frame) */ + if (~l1s.audio_mode & AUDIO_RX_TRAFFIC_IND) + goto skip_rx_traffic; + if (~traffic_buf[0] & (1 << B_BLUD)) + goto skip_rx_traffic; + if (~dsp_api.ndb->a_dd_0[0] & (1 << B_BFI)) /* FIXME: use traffic_buf[] */ + goto skip_rx_traffic; - /* Allocate msgb */ - /* FIXME: we actually want all allocation out of L1S! */ - msg = l1ctl_msgb_alloc(L1CTL_TRAFFIC_IND); - if(!msg) { - printf("TCH traffic: unable to allocate msgb\n"); - goto skip_rx_traffic; - } + /* Allocate msgb */ + /* FIXME: we actually want all allocation out of L1S! */ + msg = l1ctl_msgb_alloc(L1CTL_TRAFFIC_IND); + if (!msg) { + printf("TCH traffic: unable to allocate msgb\n"); + goto skip_rx_traffic; + } - dl = (struct l1ctl_info_dl *) msgb_put(msg, sizeof(*dl)); - ti = (struct l1ctl_traffic_ind *) msgb_put(msg, sizeof(*ti)); - payload = (uint8_t *) msgb_put(msg, 33); + dl = (struct l1ctl_info_dl *) msgb_put(msg, sizeof(*dl)); + ti = (struct l1ctl_traffic_ind *) msgb_put(msg, sizeof(*ti)); - /* Copy actual data, skipping the information block [0,1,2] */ - dsp_memcpy_from_api(payload, &traffic_buf[3], 33, 1); + /* Copy actual data, skipping the information block [0,1,2] */ + dsp_memcpy_from_api(msgb_put(msg, 33), &traffic_buf[3], 33, 1); - /* Give message to up layer */ - l1_queue_for_l2(msg); - } + /* Give message to up layer */ + l1_queue_for_l2(msg); skip_rx_traffic: - /* Reset traffic buffer header in NDB (needed by DSP) */ - traffic_buf[0] = 0; - traffic_buf[2] = 0xffff; - } + /* Reset A_DD_0 header in NDB (needed by DSP) */ + dsp_api.ndb->a_dd_0[0] = 0; + dsp_api.ndb->a_dd_0[2] = 0xffff; + + /* Reset A_DD_1 header in NDB (needed by DSP) */ + dsp_api.ndb->a_dd_1[0] = 0; + dsp_api.ndb->a_dd_1[2] = 0xffff; } /* mark READ page as being used */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34753?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ie4faf386f54720888e73171bee26f93dfa0562d5 Gerrit-Change-Number: 34753 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmocom-bb[master]: firmware/layer1: emit TRAFFIC.ind even if B_BFI is set
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34756?usp=email ) Change subject: firmware/layer1: emit TRAFFIC.ind even if B_BFI is set ...................................................................... firmware/layer1: emit TRAFFIC.ind even if B_BFI is set Even if the DSP marks a traffic frame as bad (B_BFI), we still want to deliver something to the upper layers, just like we do for FACCH. Change-Id: I559793a3506089b1c1758ee7022cceb7753afb30 Related: OS#4396 --- M src/target/firmware/layer1/prim_tch.c 1 file changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/56/34756/1 diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index 71ec077..ae60de9 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -313,8 +313,6 @@ goto skip_rx_traffic; if (~traffic_buf[0] & (1 << B_BLUD)) goto skip_rx_traffic; - if (~traffic_buf[0] & (1 << B_BFI)) - goto skip_rx_traffic; /* Allocate msgb */ /* FIXME: we actually want all allocation out of L1S! */ @@ -341,6 +339,8 @@ else dl->num_biterr = num_biterr; + dl->fire_crc = ((traffic_buf[0] & 0xffff) & ((1 << B_FIRE1) | (1 << B_FIRE0))) >> B_FIRE0; + /* Update rx level for pm report */ pu_update_rx_level(dl->rx_level); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34756?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I559793a3506089b1c1758ee7022cceb7753afb30 Gerrit-Change-Number: 34756 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmocom-bb[master]: firmware/layer1: fix l1s_tch_resp(): use the right A_DD header
by fixeria 16 Oct '23

16 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34754?usp=email ) Change subject: firmware/layer1: fix l1s_tch_resp(): use the right A_DD header ...................................................................... firmware/layer1: fix l1s_tch_resp(): use the right A_DD header Change-Id: Idd48438e47ac3ef1172621e77688d094cdcdbf34 Related: OS#4396 --- M src/target/firmware/layer1/prim_tch.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/54/34754/1 diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index 31bf13a..337b37a 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -307,7 +307,7 @@ goto skip_rx_traffic; if (~traffic_buf[0] & (1 << B_BLUD)) goto skip_rx_traffic; - if (~dsp_api.ndb->a_dd_0[0] & (1 << B_BFI)) /* FIXME: use traffic_buf[] */ + if (~traffic_buf[0] & (1 << B_BFI)) goto skip_rx_traffic; /* Allocate msgb */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34754?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Idd48438e47ac3ef1172621e77688d094cdcdbf34 Gerrit-Change-Number: 34754 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • ...
  • 185
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.