Projects
osmocom:nightly
osmocom-bb
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 89
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.dsc -> osmocom-bb_0.1.0.3623.7849.202406132026.dsc
Changed
@@ -2,7 +2,7 @@ Source: osmocom-bb Binary: osmocom-bb-layer23 Architecture: any -Version: 0.1.0.3622.ecaa.202406122026 +Version: 0.1.0.3623.7849.202406132026 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: https://osmocom.org/projects/baseband/wiki Standards-Version: 4.1.4 @@ -12,8 +12,8 @@ Package-List: osmocom-bb-layer23 deb net optional arch=any Checksums-Sha1: - 41c61d2b7ad3ed99126cab3f48a3a7c2b36d415d 1076620 osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz + c731626b1245106c2a9f4ea200fa3bf5cda12130 1077548 osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz Checksums-Sha256: - 7f3587bf95f2173bbbee5a15d1d2d3da8c7e101d2ae36493080b2d0fe24b8adb 1076620 osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz + 97631ccc245bfd32184a55bf073c727db57d2b9fb106aa23873943e343faff17 1077548 osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz Files: - 8450cc3587549798a5c67abcfaf1fbe7 1076620 osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz + f3a0ea91b17298e58abc98f8751d4d05 1077548 osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz/.tarball-version -> osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -0.1.0.3622-ecaa.202406122026 +0.1.0.3623-7849.202406132026
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz/debian/changelog -> osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmocom-bb (0.1.0.3622.ecaa.202406122026) unstable; urgency=medium +osmocom-bb (0.1.0.3623.7849.202406132026) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom nightly feed - -- Osmocom OBS scripts <info@osmocom.org> Wed, 12 Jun 2024 20:27:09 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Thu, 13 Jun 2024 20:27:09 +0000 osmocom-bb (0.1.0) unstable; urgency=medium
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz/debian/control -> osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz/debian/control
Changed
@@ -25,5 +25,5 @@ Package: osmocom-bb-layer23 Architecture: any Multi-Arch: foreign -Depends: osmocom-nightly (= 202406122026), ${misc:Depends}, ${shlibs:Depends} +Depends: osmocom-nightly (= 202406132026), ${misc:Depends}, ${shlibs:Depends} Description: MS-side implementation of L2 and L3 GSM protocols
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz/src/host/trxcon/src/sched_lchan_tchf.c -> osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz/src/host/trxcon/src/sched_lchan_tchf.c
Changed
@@ -3,7 +3,7 @@ * TDMA scheduler: handlers for DL / UL bursts on logical channels * * (C) 2017-2022 by Vadim Yanitskiy <axilirator@gmail.com> - * (C) 2021-2023 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> + * (C) 2021-2024 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> * * All Rights Reserved * @@ -290,39 +290,49 @@ /* fall-through */ case GSM48_CMODE_SPEECH_V1: case GSM48_CMODE_SPEECH_EFR: - if (msg == NULL) { - /* transmit a dummy speech block with inverted CRC3 */ - gsm0503_tch_fr_encode(bursts_p, NULL, 0, 1); - goto send_burst; - } + /* if msg == NULL, transmit a dummy speech block with inverted CRC3 */ rc = gsm0503_tch_fr_encode(BUFPOS(bursts_p, 0), - msgb_l2(msg), - msgb_l2len(msg), 1); + msg ? msgb_l2(msg) : NULL, + msg ? msgb_l2len(msg) : 0, 1); + /* confirm traffic sending (pass ownership of the msgb/prim) */ + if (OSMO_LIKELY(rc == 0)) + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); + else /* unlikely: encoding failed, drop msgb/prim */ + msgb_free(msg); + /* drop the other msgb/prim */ + msgb_free((msg == msg_facch) ? msg_tch : msg_facch); break; case GSM48_CMODE_SPEECH_AMR: { bool amr_fn_is_cmr = !sched_tchf_ul_amr_cmi_mapbr->fn % 26; - const uint8_t *data = msg ? msgb_l2(msg) : NULL; - size_t data_len = msg ? msgb_l2len(msg) : 0; + unsigned int offset = 0; if (msg != NULL && msg != msg_facch) { /* TCH/AFS: speech */ - if (!l1sched_lchan_amr_prim_is_valid(lchan, msg, amr_fn_is_cmr)) - goto free_bad_msg; + if (!l1sched_lchan_amr_prim_is_valid(lchan, msg, amr_fn_is_cmr)) { + msgb_free(msg); + msg_tch = NULL; + msg = NULL; + } /* pull the AMR header - sizeof(struct amr_hdr) */ - data_len -= 2; - data += 2; + offset = 2; } /* if msg == NULL, transmit a dummy speech block with inverted CRC6 */ rc = gsm0503_tch_afs_encode(BUFPOS(bursts_p, 0), - data, data_len, + msg ? msgb_l2(msg) + offset : NULL, + msg ? msgb_l2len(msg) - offset : 0, amr_fn_is_cmr, lchan->amr.codec, lchan->amr.codecs, lchan->amr.ul_ft, lchan->amr.ul_cmr); - if (msg == NULL) - goto send_burst; + /* confirm traffic sending (pass ownership of the msgb/prim) */ + if (OSMO_LIKELY(rc == 0)) + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); + else /* unlikely: encoding failed, drop prim */ + msgb_free(msg); + /* drop the other primitive */ + msgb_free((msg == msg_facch) ? msg_tch : msg_facch); break; } /* CSD (TCH/F14.4): 14.5 kbit/s radio interface rate */ @@ -342,7 +352,7 @@ /* Confirm FACCH sending (pass ownership of the msgb/prim) */ l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } - goto send_burst; + break; /* CSD (TCH/F9.6): 12.0 kbit/s radio interface rate */ case GSM48_CMODE_DATA_12k0: if ((msg = msg_tch) != NULL) { @@ -360,7 +370,7 @@ /* Confirm FACCH sending (pass ownership of the msgb/prim) */ l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } - goto send_burst; + break; /* CSD (TCH/F4.8): 6.0 kbit/s radio interface rate */ case GSM48_CMODE_DATA_6k0: if ((msg = msg_tch) != NULL) { @@ -378,42 +388,33 @@ /* Confirm FACCH sending (pass ownership of the msgb/prim) */ l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } - goto send_burst; + break; /* CSD (TCH/F2.4): 3.6 kbit/s radio interface rate */ case GSM48_CMODE_DATA_3k6: if ((msg = msg_facch) != NULL) { /* FACCH/F does steal a TCH/F2.4 frame completely */ - rc = gsm0503_tch_fr_facch_encode(BUFPOS(bursts_p, 0), msgb_l2(msg)); + gsm0503_tch_fr_facch_encode(BUFPOS(bursts_p, 0), msgb_l2(msg)); + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); + msgb_free(msg_tch); } else if ((msg = msg_tch) != NULL) { OSMO_ASSERT(msgb_l2len(msg) == 2 * 36); - rc = gsm0503_tch_fr24_encode(BUFPOS(bursts_p, 0), msgb_l2(msg)); + gsm0503_tch_fr24_encode(BUFPOS(bursts_p, 0), msgb_l2(msg)); + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } else { ubit_t idle2 * 36; memset(&idle0, 0x01, sizeof(idle)); gsm0503_tch_fr24_encode(BUFPOS(bursts_p, 0), &idle0); - goto send_burst; } break; default: LOGP_LCHAND(lchan, LOGL_ERROR, "TCH mode %s is unknown or not supported\n", gsm48_chan_mode_name(lchan->tch_mode)); - goto free_bad_msg; - } - - if (rc) { - LOGP_LCHAND(lchan, LOGL_ERROR, "Failed to encode L2 payload (len=%u): %s\n", - msgb_l2len(msg), msgb_hexdump_l2(msg)); -free_bad_msg: msgb_free(msg_facch); msgb_free(msg_tch); - return -EINVAL; + break; } - /* Confirm data / traffic sending (pass ownership of the msgb/prim) */ - l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); - msgb_free((msg == msg_facch) ? msg_tch : msg_facch); - send_burst: /* Determine which burst should be sent */ burst = BUFPOS(bursts_p, br->bid);
View file
osmocom-bb_0.1.0.3622.ecaa.202406122026.tar.xz/src/host/trxcon/src/sched_lchan_tchh.c -> osmocom-bb_0.1.0.3623.7849.202406132026.tar.xz/src/host/trxcon/src/sched_lchan_tchh.c
Changed
@@ -4,7 +4,7 @@ * * (C) 2018-2022 by Vadim Yanitskiy <axilirator@gmail.com> * (C) 2018 by Harald Welte <laforge@gnumonks.org> - * (C) 2020-2023 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> + * (C) 2020-2024 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> * * All Rights Reserved * @@ -497,39 +497,53 @@ msg = l1sched_lchan_prim_dummy_lapdm(lchan); /* fall-through */ case GSM48_CMODE_SPEECH_V1: - if (msg == NULL) { - /* transmit a dummy speech block with inverted CRC3 */ - gsm0503_tch_hr_encode(bursts_p, NULL, 0); - goto send_burst; - } + /* if msg == NULL, transmit a dummy speech block with inverted CRC3 */ rc = gsm0503_tch_hr_encode(BUFPOS(bursts_p, 0), - msgb_l2(msg), - msgb_l2len(msg)); + msg ? msgb_l2(msg) : NULL, + msg ? msgb_l2len(msg) : 0); + /* confirm traffic sending (pass ownership of the msgb/prim) */ + if (OSMO_LIKELY(rc == 0)) { + if (msg && msgb_l2len(msg) == GSM_MACBLOCK_LEN) + lchan->ul_facch_blocks = 6; + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); + } else /* unlikely: encoding failed, drop msgb/prim */ + msgb_free(msg); + /* drop the other msgb/prim */ + msgb_free((msg == msg_facch) ? msg_tch : msg_facch); break; case GSM48_CMODE_SPEECH_AMR: { bool amr_fn_is_cmr = !sched_tchh_ul_amr_cmi_mapbr->fn % 26; - const uint8_t *data = msg ? msgb_l2(msg) : NULL; - size_t data_len = msg ? msgb_l2len(msg) : 0; + unsigned int offset = 0; if (msg != NULL && msg != msg_facch) { /* TCH/AHS: speech */ - if (!l1sched_lchan_amr_prim_is_valid(lchan, msg, amr_fn_is_cmr)) - goto free_bad_msg; + if (!l1sched_lchan_amr_prim_is_valid(lchan, msg, amr_fn_is_cmr)) { + msgb_free(msg); + msg_tch = NULL; + msg = NULL; + } /* pull the AMR header - sizeof(struct amr_hdr) */ - data_len -= 2; - data += 2; + offset = 2; } /* if msg == NULL, transmit a dummy speech block with inverted CRC6 */ rc = gsm0503_tch_ahs_encode(BUFPOS(bursts_p, 0), - data, data_len, + msg ? msgb_l2(msg) + offset : NULL, + msg ? msgb_l2len(msg) - offset : 0, amr_fn_is_cmr, lchan->amr.codec, lchan->amr.codecs, lchan->amr.ul_ft, lchan->amr.ul_cmr); - if (msg == NULL) - goto send_burst; + /* confirm traffic sending (pass ownership of the msgb/prim) */ + if (OSMO_LIKELY(rc == 0)) { + if (msg && msgb_l2len(msg) == GSM_MACBLOCK_LEN) + lchan->ul_facch_blocks = 6; + l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); + } else /* unlikely: encoding failed, drop msgb/prim */ + msgb_free(msg); + /* drop the other msgb/prim */ + msgb_free((msg == msg_facch) ? msg_tch : msg_facch); break; } /* CSD (TCH/H4.8): 6.0 kbit/s radio interface rate */ @@ -549,7 +563,7 @@ /* Confirm FACCH sending (pass ownership of the msgb/prim) */ l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } - goto send_burst; + break; /* CSD (TCH/H2.4): 3.6 kbit/s radio interface rate */ case GSM48_CMODE_DATA_3k6: if ((msg = msg_tch) != NULL) { @@ -567,30 +581,16 @@ /* Confirm FACCH sending (pass ownership of the msgb/prim) */ l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); } - goto send_burst; + break; default: LOGP_LCHAND(lchan, LOGL_ERROR, "TCH mode %s is unknown or not supported\n", gsm48_chan_mode_name(lchan->tch_mode)); - goto free_bad_msg; - } - - if (rc) { - LOGP_LCHAND(lchan, LOGL_ERROR, "Failed to encode L2 payload (len=%u): %s\n", - msgb_l2len(msg), msgb_hexdump_l2(msg)); -free_bad_msg: msgb_free(msg_facch); msgb_free(msg_tch); - return -EINVAL; + break; } - if (msgb_l2len(msg) == GSM_MACBLOCK_LEN) - lchan->ul_facch_blocks = 6; - - /* Confirm data / traffic sending (pass ownership of the msgb/prim) */ - l1sched_lchan_emit_data_cnf(lchan, msg, br->fn); - msgb_free((msg == msg_facch) ? msg_tch : msg_facch); - send_burst: /* Determine which burst should be sent */ burst = BUFPOS(bursts_p, br->bid);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.