lists.osmocom.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
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
List overview
Download
gerrit-log
November 2022
----- 2025 -----
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
gerrit-log@lists.osmocom.org
2 participants
2503 discussions
Start a n
N
ew thread
Change in osmocom-bb[master]: mobile: voice.h: add missing forward declarations
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30335
) Change subject: mobile: voice.h: add missing forward declarations ...................................................................... mobile: voice.h: add missing forward declarations Change-Id: I854abdcde5bc324f6d0cf309792b36fc64601070 Related: OS#5599 --- M src/host/layer23/include/osmocom/bb/mobile/voice.h 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/host/layer23/include/osmocom/bb/mobile/voice.h b/src/host/layer23/include/osmocom/bb/mobile/voice.h index b9817f8..623f6c8 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/voice.h +++ b/src/host/layer23/include/osmocom/bb/mobile/voice.h @@ -1,4 +1,7 @@ #pragma once +struct osmocom_ms; +struct gsm_data_frame; + int gsm_voice_init(struct osmocom_ms *ms); int gsm_send_voice(struct osmocom_ms *ms, struct gsm_data_frame *data); 1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30335
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I854abdcde5bc324f6d0cf309792b36fc64601070 Gerrit-Change-Number: 30335 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: split gsm_send_voice() -> gsm_send_voice_{msg,frame}()
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30336
) Change subject: mobile: split gsm_send_voice() -> gsm_send_voice_{msg,frame}() ...................................................................... mobile: split gsm_send_voice() -> gsm_send_voice_{msg,frame}() This is needed to avoid sending voice frames to the L1PHY without having to use MNCC specific struct gsm_data_frame. Change-Id: I37241555cd648a8e2b57fa072c708f93cd1ba5a9 Related: OS#5599 --- M src/host/layer23/include/osmocom/bb/mobile/voice.h M src/host/layer23/src/mobile/gsm48_cc.c M src/host/layer23/src/mobile/voice.c 3 files changed, 16 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/host/layer23/include/osmocom/bb/mobile/voice.h b/src/host/layer23/include/osmocom/bb/mobile/voice.h index 623f6c8..8c4c5b6 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/voice.h +++ b/src/host/layer23/include/osmocom/bb/mobile/voice.h @@ -2,6 +2,8 @@ struct osmocom_ms; struct gsm_data_frame; +struct msgb; int gsm_voice_init(struct osmocom_ms *ms); -int gsm_send_voice(struct osmocom_ms *ms, struct gsm_data_frame *data); +int gsm_send_voice_msg(struct osmocom_ms *ms, struct msgb *msg); +int gsm_send_voice_frame(struct osmocom_ms *ms, const struct gsm_data_frame *frame); diff --git a/src/host/layer23/src/mobile/gsm48_cc.c b/src/host/layer23/src/mobile/gsm48_cc.c index a8d7a65..503c9fd 100644 --- a/src/host/layer23/src/mobile/gsm48_cc.c +++ b/src/host/layer23/src/mobile/gsm48_cc.c @@ -1966,7 +1966,7 @@ switch (msg_type) { case GSM_TCHF_FRAME: - return gsm_send_voice(ms, arg); + return gsm_send_voice_frame(ms, arg); case MNCC_LCHAN_MODIFY: return 0; case MNCC_FRAME_RECV: diff --git a/src/host/layer23/src/mobile/voice.c b/src/host/layer23/src/mobile/voice.c index 7bcf8a6..4b5f792 100644 --- a/src/host/layer23/src/mobile/voice.c +++ b/src/host/layer23/src/mobile/voice.c @@ -56,7 +56,7 @@ /* send voice frame back, if appropriate */ if (ms->settings.audio.io_handler == AUDIO_IOH_LOOPBACK) - gsm_send_voice(ms, mncc); + gsm_send_voice_frame(ms, mncc); /* distribute and then free */ if (ms->mncc_entity.mncc_recv && ms->mncc_entity.ref) { @@ -71,7 +71,13 @@ /* * send voice */ -int gsm_send_voice(struct osmocom_ms *ms, struct gsm_data_frame *data) +int gsm_send_voice_msg(struct osmocom_ms *ms, struct msgb *msg) +{ + /* Forward to RR */ + return gsm48_rr_tx_voice(ms, msg); +} + +int gsm_send_voice_frame(struct osmocom_ms *ms, const struct gsm_data_frame *frame) { struct msgb *nmsg; int len; @@ -85,7 +91,8 @@ len = GSM_EFR_BYTES; break; default: - LOGP(DL1C, LOGL_ERROR, "gsm_send_voice, msg_type=0x%02x: not implemented\n", data->msg_type); + LOGP(DL1C, LOGL_ERROR, "%s(): msg_type=0x%02x: not implemented\n", + __func__, frame->msg_type); return -EINVAL; } @@ -93,9 +100,9 @@ if (!nmsg) return -ENOMEM; nmsg->l2h = msgb_put(nmsg, len); - memcpy(nmsg->l2h, data->data, len); + memcpy(nmsg->l2h, frame->data, len); - return gsm48_rr_tx_voice(ms, nmsg); + return gsm_send_voice_msg(ms, nmsg); } /* -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30336
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I37241555cd648a8e2b57fa072c708f93cd1ba5a9 Gerrit-Change-Number: 30336 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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-CC: msuraev <msuraev(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: split gsm_send_voice() -> gsm_send_voice_{msg,frame}()
by fixeria
Attention is currently required from: msuraev. fixeria has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30336
) Change subject: mobile: split gsm_send_voice() -> gsm_send_voice_{msg,frame}() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30336
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I37241555cd648a8e2b57fa072c708f93cd1ba5a9 Gerrit-Change-Number: 30336 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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-CC: msuraev <msuraev(a)sysmocom.de> Gerrit-Attention: msuraev <msuraev(a)sysmocom.de> Gerrit-Comment-Date: Mon, 28 Nov 2022 20:54:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: gsm48_rr_tx_voice(): also permit TCH/H frames
by fixeria
Attention is currently required from: pespin. fixeria has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30333
) Change subject: mobile: gsm48_rr_tx_voice(): also permit TCH/H frames ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30333
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I06e84ad47bafd4676af0e136b825e77471587b23 Gerrit-Change-Number: 30333 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Mon, 28 Nov 2022 20:53:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: properly handle RR CHANNEL MODE MODIFY message
by fixeria
fixeria has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30332
) Change subject: mobile: properly handle RR CHANNEL MODE MODIFY message ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30332
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I952436ec796273e56341f9d3492b4a3b3a5dc410 Gerrit-Change-Number: 30332 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de> Gerrit-CC: fixeria <axilirator(a)gmail.com> Gerrit-Comment-Date: Mon, 28 Nov 2022 20:53:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: gsm48_rr_tx_voice(): also permit TCH/H frames
by msuraev
Attention is currently required from: fixeria, pespin. msuraev has posted comments on this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30333
) Change subject: mobile: gsm48_rr_tx_voice(): also permit TCH/H frames ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30333
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I06e84ad47bafd4676af0e136b825e77471587b23 Gerrit-Change-Number: 30333 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Mon, 28 Nov 2022 20:51:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: gsm48_rr_set_mode(): fix copy-paste in comment
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30331
) Change subject: mobile: gsm48_rr_set_mode(): fix copy-paste in comment ...................................................................... mobile: gsm48_rr_set_mode(): fix copy-paste in comment Change-Id: I45212cd02ac50d0d363918709720e997500e45a9 Related: OS#5599 --- M src/host/layer23/src/mobile/gsm48_rr.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 0eade5f..236dbbe 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -3469,7 +3469,7 @@ && ch_type != RSL_CHAN_Lm_ACCHs) return -ENOTSUP; - /* setting (new) timing advance */ + /* Apply indicated channel mode */ LOGP(DRR, LOGL_INFO, "setting TCH mode to %s, audio mode to %d\n", get_value_string(gsm48_chan_mode_names, mode), rr->audio_mode); l1ctl_tx_tch_mode_req(ms, mode, rr->audio_mode, rr->tch_loop_mode); 1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30331
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I45212cd02ac50d0d363918709720e997500e45a9 Gerrit-Change-Number: 30331 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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-CC: fixeria <axilirator(a)gmail.com> Gerrit-MessageType: merged
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: gsm48_rr_set_mode(): print name of channel mode
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30328
) Change subject: mobile: gsm48_rr_set_mode(): print name of channel mode ...................................................................... mobile: gsm48_rr_set_mode(): print name of channel mode Change-Id: I615e89bdd7e1cc01b3258fefa26f7ab5705ae8cc Related: OS#5599 --- M src/host/layer23/src/mobile/gsm48_rr.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve msuraev: Looks good to me, approved diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 8b4c123..0eade5f 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -3470,8 +3470,8 @@ return -ENOTSUP; /* setting (new) timing advance */ - LOGP(DRR, LOGL_INFO, "setting TCH mode to %d, audio mode to %d\n", - mode, rr->audio_mode); + LOGP(DRR, LOGL_INFO, "setting TCH mode to %s, audio mode to %d\n", + get_value_string(gsm48_chan_mode_names, mode), rr->audio_mode); l1ctl_tx_tch_mode_req(ms, mode, rr->audio_mode, rr->tch_loop_mode); return 0; 1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30328
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I615e89bdd7e1cc01b3258fefa26f7ab5705ae8cc Gerrit-Change-Number: 30328 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de> Gerrit-CC: fixeria <axilirator(a)gmail.com> Gerrit-MessageType: merged
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: allow enabling/disabling handling of voice in the L1PHY
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30327
) Change subject: mobile: allow enabling/disabling handling of voice in the L1PHY ...................................................................... mobile: allow enabling/disabling handling of voice in the L1PHY Some L1PHY targets (e.g. Calypso based Mot C1xx phones) have built in microphone and speaker. Some targets do not have them. Currently we unconditionally instruct the L1PHY to handle TCH frames internally. Make this behavior configurable via the VTY interface. Change-Id: I131f213ef7c2736f7310f0183b83f3bc3064cd98 Related: OS#5599 --- M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/gsm48_rr.c M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 4 files changed, 19 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index d5620ff..8edde53 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -17,6 +17,8 @@ enum audio_io_handler { /* No handler, drop frames */ AUDIO_IOH_NONE = 0, + /* L1 PHY (e.g. Calypso DSP) */ + AUDIO_IOH_L1PHY, /* Return to sender */ AUDIO_IOH_LOOPBACK, }; diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 1c7036c..8b4c123 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -5593,9 +5593,20 @@ start_rr_t_meas(rr, 1, 0); - rr->audio_mode = AUDIO_TX_MICROPHONE | AUDIO_RX_SPEAKER; rr->tch_loop_mode = L1CTL_TCH_LOOP_OPEN; + /* Configure audio handling in the L1PHY */ + switch (ms->settings.audio.io_handler) { + case AUDIO_IOH_L1PHY: + rr->audio_mode = AUDIO_RX_SPEAKER | AUDIO_TX_MICROPHONE; + break; + case AUDIO_IOH_LOOPBACK: + rr->audio_mode = AUDIO_RX_TRAFFIC_IND | AUDIO_TX_TRAFFIC_REQ; + break; + case AUDIO_IOH_NONE: + rr->audio_mode = 0x00; + } + return 0; } diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 3444d66..10e9984 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -203,6 +203,7 @@ const struct value_string audio_io_handler_names[] = { { AUDIO_IOH_NONE, "none" }, + { AUDIO_IOH_L1PHY, "l1phy" }, { AUDIO_IOH_LOOPBACK, "loopback" }, { 0x00, NULL} }; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 9c3e429..e3005ca 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -2831,10 +2831,11 @@ } DEFUN(cfg_ms_audio_io_handler, cfg_ms_audio_io_handler_cmd, - "io-handler (loopback|none)", + "io-handler (none|l1phy|loopback)", "Set TCH frame I/O handler\n" - "Return TCH frame payload back to sender\n" - "No handler, drop TCH frames (default)") + "No handler, drop TCH frames (default)\n" + "L1 PHY (e.g. Calypso DSP in Motorola C1xx phones)\n" + "Return TCH frame payload back to sender\n") { int val = get_string_value(audio_io_handler_names, argv[0]); return set_audio_io_handler(vty, val); -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30327
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I131f213ef7c2736f7310f0183b83f3bc3064cd98 Gerrit-Change-Number: 30327 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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-CC: msuraev <msuraev(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 6 months
1
0
0
0
Change in osmocom-bb[master]: mobile: add MNCC handler selection to settings
by fixeria
fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30326
) Change subject: mobile: add MNCC handler selection to settings ...................................................................... mobile: add MNCC handler selection to settings Since the mobile application is potentially able to maintain multiple MS instances, it's better to have a possibility to choose an MNCC (Call Control) handler per each MS separately. This change removes the command-line option '-m', which was used for enabling the external MNCC. Now it's possible configure the MNCC handler for each MS via the VTY interface and settings. The following MNCC-handlers are available: - internal - built-in MNCC-handler (default); - external - external MNCC-handler via UNIX-socket (e.g. LCR); - dummy - dummy handler without CC support. Change-Id: I2df91c7a79ba5c39bc6ceae900ef649129dd0346 Related: OS#3400 --- M doc/examples/mobile/default.cfg M doc/examples/mobile/multi_ms.cfg M src/host/layer23/include/osmocom/bb/mobile/app_mobile.h M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/app_mobile.c M src/host/layer23/src/mobile/main.c M src/host/layer23/src/mobile/mnccms.c M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 9 files changed, 112 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/doc/examples/mobile/default.cfg b/doc/examples/mobile/default.cfg index d78bef5..e24e07f 100644 --- a/doc/examples/mobile/default.cfg +++ b/doc/examples/mobile/default.cfg @@ -15,6 +15,7 @@ layer2-socket /tmp/osmocom_l2 sap-socket /tmp/osmocom_sap mncc-socket /tmp/ms_mncc_1 + mncc-handler internal sim reader network-selection-mode auto imei 000000000000000 0 diff --git a/doc/examples/mobile/multi_ms.cfg b/doc/examples/mobile/multi_ms.cfg index 4ccdb10..86a9840 100644 --- a/doc/examples/mobile/multi_ms.cfg +++ b/doc/examples/mobile/multi_ms.cfg @@ -15,6 +15,7 @@ layer2-socket /tmp/osmocom_l2.one sap-socket /tmp/osmocom_sap.one mncc-socket /tmp/ms_mncc_one + mncc-handler internal sim reader network-selection-mode auto imei 000000000000000 0 @@ -68,6 +69,7 @@ layer2-socket /tmp/osmocom_l2.two sap-socket /tmp/osmocom_sap.two mncc-socket /tmp/ms_mncc_two + mncc-handler internal sim reader network-selection-mode auto imei 000000000000000 0 diff --git a/src/host/layer23/include/osmocom/bb/mobile/app_mobile.h b/src/host/layer23/include/osmocom/bb/mobile/app_mobile.h index 191f4ba..7a3669d 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/app_mobile.h +++ b/src/host/layer23/include/osmocom/bb/mobile/app_mobile.h @@ -8,8 +8,7 @@ struct osmocom_ms; struct vty; -int l23_app_init(int (*mncc_recv)(struct osmocom_ms *ms, int, void *), - const char *config_file); +int l23_app_init(const char *config_file); int l23_app_exit(void); int l23_app_work(int *quit); int mobile_delete(struct osmocom_ms *ms, int force); diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index 6f4f59c..d5620ff 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -3,6 +3,16 @@ #define MOB_C7_DEFLT_ANY_TIMEOUT 30 +/* CC (Call Control) message handling entity */ +enum mncc_handler_t { + /* Built-in mobile's MNCC */ + MNCC_HANDLER_INTERNAL, + /* External MNCC application via UNIX-socket */ + MNCC_HANDLER_EXTERNAL, + /* No call support */ + MNCC_HANDLER_DUMMY, +}; + /* TCH frame I/O handler */ enum audio_io_handler { /* No handler, drop frames */ @@ -24,6 +34,9 @@ char sap_socket_path[128]; char mncc_socket_path[128]; + /* MNCC handler */ + enum mncc_handler_t mncc_handler; + /* Audio settings */ struct audio_settings audio; diff --git a/src/host/layer23/src/mobile/app_mobile.c b/src/host/layer23/src/mobile/app_mobile.c index 5016582..dd67e70 100644 --- a/src/host/layer23/src/mobile/app_mobile.c +++ b/src/host/layer23/src/mobile/app_mobile.c @@ -51,9 +51,9 @@ extern struct llist_head ms_list; extern int vty_reading; -int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg); +int mncc_recv_internal(struct osmocom_ms *ms, int msg_type, void *arg); +int mncc_recv_external(struct osmocom_ms *ms, int msg_type, void *arg); int mncc_recv_dummy(struct osmocom_ms *ms, int msg_type, void *arg); -int (*mncc_recv_app)(struct osmocom_ms *ms, int, void *); static int quit; /* handle ms instance */ @@ -237,6 +237,24 @@ "default IMEI.\n***\n"); } + switch (ms->settings.mncc_handler) { + case MNCC_HANDLER_INTERNAL: + LOGP(DMOB, LOGL_INFO, "Using the built-in MNCC-handler for MS '%s'\n", ms->name); + ms->mncc_entity.mncc_recv = &mncc_recv_internal; + break; + case MNCC_HANDLER_EXTERNAL: + LOGP(DMOB, LOGL_INFO, "Using external MNCC-handler (socket '%s') for MS '%s'\n", + ms->settings.mncc_socket_path, ms->name); + ms->mncc_entity.mncc_recv = &mncc_recv_external; + ms->mncc_entity.sock_state = mncc_sock_init(ms, ms->settings.mncc_socket_path); + break; + case MNCC_HANDLER_DUMMY: + default: + LOGP(DMOB, LOGL_INFO, "Using dummy MNCC-handler (no call support) " + "for MS '%s'\n", ms->name); + ms->mncc_entity.mncc_recv = &mncc_recv_dummy; + } + l1ctl_tx_reset_req(ms, L1CTL_RES_T_FULL); LOGP(DMOB, LOGL_NOTICE, "Mobile '%s' initialized, please start phone now!\n", ms->name); return 0; @@ -319,15 +337,6 @@ mobile_set_shutdown(ms, MS_SHUTDOWN_COMPL); - if (mncc_recv_app) { - ms->mncc_entity.mncc_recv = mncc_recv_app; - ms->mncc_entity.sock_state = mncc_sock_init(ms, ms->settings.mncc_socket_path); - } else if (ms->settings.ch_cap == GSM_CAP_SDCCH) - ms->mncc_entity.mncc_recv = mncc_recv_dummy; - else - ms->mncc_entity.mncc_recv = mncc_recv_mobile; - - return ms; } @@ -338,7 +347,7 @@ ms->deleting = true; - if (mncc_recv_app) { + if (ms->settings.mncc_handler == MNCC_HANDLER_EXTERNAL) { mncc_sock_exit(ms->mncc_entity.sock_state); ms->mncc_entity.sock_state = NULL; } @@ -432,14 +441,11 @@ }; /* global init */ -int l23_app_init(int (*mncc_recv)(struct osmocom_ms *ms, int, void *), - const char *config_file) +int l23_app_init(const char *config_file) { struct telnet_connection dummy_conn; int rc = 0; - mncc_recv_app = mncc_recv; - osmo_gps_init(); vty_info.tall_ctx = l23_ctx; diff --git a/src/host/layer23/src/mobile/main.c b/src/host/layer23/src/mobile/main.c index 9533553..926358e 100644 --- a/src/host/layer23/src/mobile/main.c +++ b/src/host/layer23/src/mobile/main.c @@ -48,11 +48,8 @@ static const char *custom_cfg_file = NULL; struct gsmtap_inst *gsmtap_inst = NULL; char *config_dir = NULL; -int use_mncc_sock = 0; int daemonize = 0; -int mncc_recv_socket(struct osmocom_ms *ms, int msg_type, void *arg); - int mobile_delete(struct osmocom_ms *ms, int force); int mobile_signal_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data); @@ -85,8 +82,6 @@ debug_default); printf(" -D --daemonize Run as daemon\n"); printf(" -c --config-file filename The config file to use.\n"); - printf(" -m --mncc-sock Disable built-in MNCC handler and " - "offer socket\n"); } static int handle_options(int argc, char **argv) @@ -99,8 +94,8 @@ {"debug", 1, 0, 'd'}, {"daemonize", 0, 0, 'D'}, {"config-file", 1, 0, 'c'}, - {"mncc-sock", 0, 0, 'm'}, /* DEPRECATED options, to be removed */ + {"mncc-sock", 0, 0, 'm'}, {"vty-ip", 1, 0, 'u'}, {"vty-port", 1, 0, 'v'}, {0, 0, 0, 0}, @@ -129,10 +124,12 @@ case 'D': daemonize = 1; break; - case 'm': - use_mncc_sock = 1; - break; /* DEPRECATED options, to be removed */ + case 'm': + fprintf(stderr, "Option 'm' is deprecated! " + "Please use the configuration file " + "in order to change the MNCC handler.\n"); + return -EINVAL; case 'u': case 'v': fprintf(stderr, "Both 'u' and 'v' options are " @@ -253,10 +250,7 @@ config_dir = talloc_strdup(l23_ctx, config_file); config_dir = dirname(config_dir); - if (use_mncc_sock) - rc = l23_app_init(mncc_recv_socket, config_file); - else - rc = l23_app_init(NULL, config_file); + rc = l23_app_init(config_file); if (rc) exit(rc); diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c index 3fec11e..5accd5e 100644 --- a/src/host/layer23/src/mobile/mnccms.c +++ b/src/host/layer23/src/mobile/mnccms.c @@ -216,7 +216,7 @@ /* * MNCCms call application via socket */ -int mncc_recv_socket(struct osmocom_ms *ms, int msg_type, void *arg) +int mncc_recv_external(struct osmocom_ms *ms, int msg_type, void *arg) { struct mncc_sock_state *state = ms->mncc_entity.sock_state; struct gsm_mncc *mncc = arg; @@ -253,7 +253,7 @@ * MNCCms basic call application */ -int mncc_recv_mobile(struct osmocom_ms *ms, int msg_type, void *arg) +int mncc_recv_internal(struct osmocom_ms *ms, int msg_type, void *arg) { struct gsm_settings *set = &ms->settings; struct gsm_mncc *data = arg; diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 769fad6..3444d66 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -45,6 +45,9 @@ /* Audio settings: drop TCH frames by default */ set->audio.io_handler = AUDIO_IOH_NONE; + /* Built-in MNCC handler */ + set->mncc_handler = MNCC_HANDLER_INTERNAL; + /* network search */ set->plmn_mode = PLMN_MODE_AUTO; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 7c757a6..9c3e429 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1325,6 +1325,16 @@ VTY_NEWLINE); vty_out(vty, " sap-socket %s%s", set->sap_socket_path, VTY_NEWLINE); vty_out(vty, " mncc-socket %s%s", set->mncc_socket_path, VTY_NEWLINE); + switch (set->mncc_handler) { + case MNCC_HANDLER_INTERNAL: + vty_out(vty, " mncc-handler internal%s", VTY_NEWLINE); + break; + case MNCC_HANDLER_EXTERNAL: + vty_out(vty, " mncc-handler external%s", VTY_NEWLINE); + break; + case MNCC_HANDLER_DUMMY: + vty_out(vty, " mncc-handler dummy%s", VTY_NEWLINE); + } switch(set->sim_type) { case GSM_SIM_TYPE_NONE: vty_out(vty, " sim none%s", VTY_NEWLINE); @@ -1605,8 +1615,8 @@ return CMD_SUCCESS; } -DEFUN(cfg_ms_mncc, cfg_ms_mncc_cmd, "mncc-socket PATH", - "Define socket path for the MNCC interface\n" +DEFUN(cfg_ms_mncc_sock, cfg_ms_mncc_sock_cmd, "mncc-socket PATH", + "Define socket path for MNCC interface\n" "UNIX socket path (default '/tmp/ms_mncc_' + MS_NAME)") { struct osmocom_ms *ms = vty->index; @@ -1618,6 +1628,52 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_mncc_handler, cfg_ms_mncc_handler_cmd, + "mncc-handler (internal|external|dummy)", + "Set MNCC (Call Control) handler\n" + "Built-in MNCC handler (default)\n" + "External MNCC application via UNIX-socket (e.g. LCR)\n" + "Dummy MNCC handler (no Call Control)\n") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + switch (argv[0][0]) { + case 'i': + if (set->ch_cap == GSM_CAP_SDCCH) { /* SDCCH only */ + vty_out(vty, "TCH support is disabled, " + "check 'channel-capability' param%s", VTY_NEWLINE); + return CMD_WARNING; + } + set->mncc_handler = MNCC_HANDLER_INTERNAL; + break; + case 'e': + set->mncc_handler = MNCC_HANDLER_EXTERNAL; + break; + case 'd': + set->mncc_handler = MNCC_HANDLER_DUMMY; + break; + default: + /* Shall not happen */ + OSMO_ASSERT(0); + } + + vty_restart_if_started(vty, ms); + return CMD_SUCCESS; +} + +DEFUN(cfg_ms_no_mncc_handler, cfg_ms_no_mncc_handler_cmd, + "no mncc-handler", NO_STR "Disable Call Control") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->mncc_handler = MNCC_HANDLER_DUMMY; + + vty_restart_if_started(vty, ms); + return CMD_SUCCESS; +} + DEFUN(cfg_ms_sim, cfg_ms_sim_cmd, "sim (none|reader|test|sap)", "Set SIM card to attach when powering on\nAttach no SIM\n" "Attach SIM from reader\nAttach build in test SIM\n" @@ -2947,7 +3003,9 @@ install_element(MS_NODE, &cfg_ms_show_this_cmd); install_element(MS_NODE, &cfg_ms_layer2_cmd); install_element(MS_NODE, &cfg_ms_sap_cmd); - install_element(MS_NODE, &cfg_ms_mncc_cmd); + install_element(MS_NODE, &cfg_ms_mncc_sock_cmd); + install_element(MS_NODE, &cfg_ms_mncc_handler_cmd); + install_element(MS_NODE, &cfg_ms_no_mncc_handler_cmd); install_element(MS_NODE, &cfg_ms_sim_cmd); install_element(MS_NODE, &cfg_ms_mode_cmd); install_element(MS_NODE, &cfg_ms_imei_cmd); -- To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30326
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I2df91c7a79ba5c39bc6ceae900ef649129dd0346 Gerrit-Change-Number: 30326 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(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-CC: msuraev <msuraev(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 6 months
1
0
0
0
← Newer
1
...
20
21
22
23
24
25
26
...
251
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Results per page:
10
25
50
100
200