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 2024

  • 1 participants
  • 1631 discussions
[S] Change in osmo-bts[master]: csd_v110: set E2 bit correctly for TCH/[FH]4.8 NT
by pespin 28 Oct '24

28 Oct '24
Attention is currently required from: falconia. pespin has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/38554?usp=email ) Change subject: csd_v110: set E2 bit correctly for TCH/[FH]4.8 NT ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38554?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I485af5e01ea87c1721a298a486cd344a17884200 Gerrit-Change-Number: 38554 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Comment-Date: Mon, 28 Oct 2024 09:46:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[L] Change in osmo-bts[master]: CSD: implement half-rate modes correctly
by pespin 28 Oct '24

28 Oct '24
Attention is currently required from: falconia, fixeria. pespin has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email ) Change subject: CSD: implement half-rate modes correctly ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35e910df263743cd243f51fb0bd6551ddfcf4c5 Gerrit-Change-Number: 38553 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Mon, 28 Oct 2024 09:46:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[S] Change in osmo-e1-hardware[master]: doc: Update the icE1usb manual section about LEDs
by tnt 28 Oct '24

28 Oct '24
tnt has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/38560?usp=email ) Change subject: doc: Update the icE1usb manual section about LEDs ...................................................................... doc: Update the icE1usb manual section about LEDs Signed-off-by: Sylvain Munaut <tnt(a)246tNt.com> Change-Id: I557b416c336792db1e6e4ed9f544eceaf6ca9b79 --- M doc/manuals/chapters/icE1usb/firmware.adoc 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/60/38560/1 diff --git a/doc/manuals/chapters/icE1usb/firmware.adoc b/doc/manuals/chapters/icE1usb/firmware.adoc index 3b47206..3d094e4 100644 --- a/doc/manuals/chapters/icE1usb/firmware.adoc +++ b/doc/manuals/chapters/icE1usb/firmware.adoc @@ -138,16 +138,25 @@ [options="header"] |=== -|Color | Pattern | Meaning -|Green | Blinking (slow) | E1 Receiver attempting to align -|Green | On | E1 Receiver fully aligned +| Green LED | Yellow LED | Meaning +| Off | Off | Loss of Signal +| Blink | Off | Loss of Framing +| Blink | On | Loss of Framing, Receiving AIS +| On | Off | Aligned +| On | On | Aligned, Receiving RAI |=== - === Use of the Multi-Color RGB LED -FIXME: describe how it is used. +The led near the USB port is used to indicate general device status. +A blinking blue led indicates that the device is in bootloader mode. + +A slow breathing indicates that at least one of the two port is +active, communicating over USB. The color of the led then indicates +the E1 link status. If all links are without issues, it will be +green, but if at least one of the enabled port has an issue, +it will show up as red. === Firmware <-> USB Host Interface -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/38560?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I557b416c336792db1e6e4ed9f544eceaf6ca9b79 Gerrit-Change-Number: 38560 Gerrit-PatchSet: 1 Gerrit-Owner: tnt <tnt(a)246tNt.com>
1 0
0 0
[L] Change in osmo-bts[master]: CSD NT modes: transmit properly aligned RLP frames on DL
by falconia 28 Oct '24

28 Oct '24
Attention is currently required from: pespin. falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/38557?usp=email ) Change subject: CSD NT modes: transmit properly aligned RLP frames on DL ...................................................................... Patch Set 3: (2 comments) Patchset: PS2: > You could perhaps split this commint into 2: […] Done - the patch has been split. File src/common/l1sap.c: https://gerrit.osmocom.org/c/osmo-bts/+/38557/comment/68f1ce6a_ffe6f157?usp… : PS2, Line 1520: bool good_rlp; > Noted, will do. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38557?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idaebfce6da13b23ba265a197502712d83991873e Gerrit-Change-Number: 38557 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Mon, 28 Oct 2024 00:07:43 +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>
1 0
0 0
[S] Change in osmo-bts[master]: CSD RTP: verify alignment of V.110 frames
by falconia 28 Oct '24

28 Oct '24
Attention is currently required from: fixeria, pespin. falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/38555?usp=email ) Change subject: CSD RTP: verify alignment of V.110 frames ...................................................................... Patch Set 3: (1 comment) File src/common/csd_v110.c: https://gerrit.osmocom.org/c/osmo-bts/+/38555/comment/db43ddb5_55131cc8?usp… : PS2, Line 158: for (i = 0; i < 8; i++) { > We can avoid if-statement in loops to improve performance (in theory): […] I changed the code to incorporate your recommendation. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38555?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd704dc7fa02e60074efc8a29ad7e42ebdf63783 Gerrit-Change-Number: 38555 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(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: Sun, 27 Oct 2024 23:55:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
1 0
0 0
[L] Change in osmo-bts[master]: CSD: implement half-rate modes correctly
by falconia 28 Oct '24

28 Oct '24
Attention is currently required from: fixeria, pespin. falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email ) Change subject: CSD: implement half-rate modes correctly ...................................................................... Patch Set 3: (4 comments) File include/osmo-bts/csd_v110.h: https://gerrit.osmocom.org/c/osmo-bts/+/38553/comment/dd2c453c_c9282eea?usp… : PS2, Line 11: uint8_t ra2_ir; > It is the intermediate rate (8 or 16 kbit/s) to be used in the RA2 packing/unpacking step. I added the comment as requested. File src/common/l1sap.c: https://gerrit.osmocom.org/c/osmo-bts/+/38553/comment/0095f1d4_b2bd47ff?usp… : PS2, Line 1539: 2 > Will do. Done https://gerrit.osmocom.org/c/osmo-bts/+/38553/comment/ee232fef_a6e19a34?usp… : PS2, Line 1556: else > Will do. Done https://gerrit.osmocom.org/c/osmo-bts/+/38553/comment/94ed31f8_43fa1da6?usp… : PS2, Line 2098: switch (lchan->tch_mode) { > Not sure if I agree - let me handle all other feedback first, then I'll get back to this one. I looked into doing what you suggested, but I like my original approach better. In the two code paths in question (one for CSD-HR UL, the other for CSD-HR DL), the only valid modes are 6.0k and 3.6k raw rates, and my code does OSMO_ASSERT on all others. Changing the code to use `csd_v110_lchan_desc[]` would entail allowing invalid modes, or more complicated error checks. Perhaps leave this part as is? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35e910df263743cd243f51fb0bd6551ddfcf4c5 Gerrit-Change-Number: 38553 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Sun, 27 Oct 2024 23:53:16 +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> Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-bts[master]: cosmetic: eliminate else-after-return in gsmtap_csd_rlp_process()
by falconia 28 Oct '24

28 Oct '24
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/38558?usp=email ) Change subject: cosmetic: eliminate else-after-return in gsmtap_csd_rlp_process() ...................................................................... cosmetic: eliminate else-after-return in gsmtap_csd_rlp_process() The code in this function used else-after-return constructs, which are now rejected by the linter for newly committed code. This function needs to be moved to a new source file, which will cause it to be treated as new code by the linter - hence fix this code style issue first. Change-Id: Ide00e819222bb0173eca42ee3714db7f7e1a6d1e --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/38558/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 14befea..b608680 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1983,10 +1983,9 @@ if (e7 == 0) { osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); return; - } else { - osmo_ubit2pbit_ext(rlp_buf, 120, data, 0, data_len, 1); - byte_len = 240/8; } + osmo_ubit2pbit_ext(rlp_buf, 120, data, 0, data_len, 1); + byte_len = 240/8; } else if (lchan->type == GSM_LCHAN_TCH_F && lchan->tch_mode == GSM48_CMODE_DATA_14k5) { /* in this mode we have 290bit MAC blocks containing M1, M2 and 288 data bits; * two of them need to be concatenated to render a @@ -1997,10 +1996,9 @@ if (m1 == 0) { osmo_ubit2pbit_ext(rlp_buf, 0, data, 2, data_len, 1); return; - } else { - osmo_ubit2pbit_ext(rlp_buf, 288, data, 2, data_len, 1); - byte_len = 576/8; } + osmo_ubit2pbit_ext(rlp_buf, 288, data, 2, data_len, 1); + byte_len = 576/8; } else { byte_len = osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38558?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ide00e819222bb0173eca42ee3714db7f7e1a6d1e Gerrit-Change-Number: 38558 Gerrit-PatchSet: 1 Gerrit-Owner: falconia <falcon(a)freecalypso.org>
1 0
0 0
[M] Change in osmo-bts[master]: cosmetic: move gsmtap_csd_rlp_process() to csd_rlp.c
by falconia 28 Oct '24

28 Oct '24
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/38559?usp=email ) Change subject: cosmetic: move gsmtap_csd_rlp_process() to csd_rlp.c ...................................................................... cosmetic: move gsmtap_csd_rlp_process() to csd_rlp.c The next patch in the series will add code for alignment of downlink RLP frames in CSD NT modes; that code will go into new file csd_rlp.c. RLP GSMTAP code logically belongs in the same place - hence move it there in preparation. Change-Id: I824ce6614c8591cccc5f6bcdde767fe49d551378 --- M include/osmo-bts/Makefile.am A include/osmo-bts/csd_rlp.h M src/common/Makefile.am A src/common/csd_rlp.c M src/common/l1sap.c 5 files changed, 137 insertions(+), 76 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/38559/1 diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index cbd0fc3..1922f0d 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -24,6 +24,7 @@ tx_power.h \ control_if.h \ cbch.h \ + csd_rlp.h \ csd_v110.h \ l1sap.h \ lchan.h \ diff --git a/include/osmo-bts/csd_rlp.h b/include/osmo-bts/csd_rlp.h new file mode 100644 index 0000000..fd4c6e7 --- /dev/null +++ b/include/osmo-bts/csd_rlp.h @@ -0,0 +1,16 @@ +/* + * Declarations for functions in csd_rlp.c: alignment of downlink RLP frames + * and RLP GSMTAP mechanism for CSD NT modes. + */ + +#pragma once + +#include <stdint.h> +#include <stdbool.h> +#include <osmocom/core/bits.h> +#include <osmocom/gsm/l1sap.h> +#include <osmo-bts/lchan.h> + +void gsmtap_csd_rlp_process(struct gsm_lchan *lchan, bool is_uplink, + const struct ph_tch_param *tch_ind, + const ubit_t *data, unsigned int data_len); diff --git a/src/common/Makefile.am b/src/common/Makefile.am index d13415d..1a62e8e 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -51,6 +51,7 @@ bts_ctrl_commands.c \ bts_ctrl_lookup.c \ bts_shutdown_fsm.c \ + csd_rlp.c \ csd_v110.c \ l1sap.c \ cbch.c \ diff --git a/src/common/csd_rlp.c b/src/common/csd_rlp.c new file mode 100644 index 0000000..aa4fdd9 --- /dev/null +++ b/src/common/csd_rlp.c @@ -0,0 +1,118 @@ +/* This module has been split from l1sap.c; original header comments preserved: + * + * (C) 2011 by Harald Welte <laforge(a)gnumonks.org> + * (C) 2013 by Andreas Eversberg <jolly(a)eversberg.eu> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <stdint.h> +#include <stdbool.h> +#include <string.h> +#include <errno.h> + +#include <osmocom/core/bits.h> +#include <osmocom/core/msgb.h> +#include <osmocom/gsm/l1sap.h> +#include <osmocom/gsm/gsm_utils.h> +#include <osmocom/gsm/rsl.h> +#include <osmocom/gsm/rlp.h> +#include <osmocom/gsm/rtp_extensions.h> +#include <osmocom/core/gsmtap.h> +#include <osmocom/core/gsmtap_util.h> +#include <osmocom/core/utils.h> + +#include <osmo-bts/logging.h> +#include <osmo-bts/gsm_data.h> +#include <osmo-bts/lchan.h> +#include <osmo-bts/bts.h> +#include <osmo-bts/csd_rlp.h> + +/* process one MAC block of unpacked bits of a non-transparent CSD channel */ +void gsmtap_csd_rlp_process(struct gsm_lchan *lchan, bool is_uplink, + const struct ph_tch_param *tch_ind, + const ubit_t *data, unsigned int data_len) +{ + struct gsm_bts_trx *trx = lchan->ts->trx; + struct gsmtap_inst *inst = trx->bts->gsmtap.inst; + pbit_t *rlp_buf; + uint16_t arfcn; + int byte_len; + + if (!inst || !trx->bts->gsmtap.rlp) + return; + + if (lchan->csd_mode != LCHAN_CSD_M_NT) + return; + + if (is_uplink) + rlp_buf = lchan->tch.csd.rlp_buf_ul; + else + rlp_buf = lchan->tch.csd.rlp_buf_dl; + + /* TCH/F 9.6: 4x60bit block => 240bit RLP frame + * TCH/F 4.8: 2x 2x60bit blocks starting at B0/B2/B4 => 240bit RLP frame + * TCH/H 4.8: 4x60bit block => 240bit RLP frame + * TCH/F 2.4: 2x36bit blocks => transparent only + * TCH/H 2.4: 4x36bit blocks => transparent only + * TCH/F 14.4: 2x 290 bit block (starting with M1=0) => 576-bit RLP frame + */ + + if (lchan->type == GSM_LCHAN_TCH_F && lchan->tch_mode == GSM48_CMODE_DATA_6k0) { + /* in this mode we have 120bit MAC blocks; two of them need to be concatenated + * to render a 240-bit RLP frame. The fist block is present in B0/B2/B4. + * The E7 bit is used to indicate the Frame MF0a */ + OSMO_ASSERT(data_len == 120); + ubit_t e7 = data[4*7+3]; + if (e7 == 0) { + osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); + return; + } + osmo_ubit2pbit_ext(rlp_buf, 120, data, 0, data_len, 1); + byte_len = 240/8; + } else if (lchan->type == GSM_LCHAN_TCH_F && lchan->tch_mode == GSM48_CMODE_DATA_14k5) { + /* in this mode we have 290bit MAC blocks containing M1, M2 and 288 data bits; + * two of them need to be concatenated to render a + * 576-bit RLP frame. The start of a RLP frame is + * denoted by a block with M1-bit set to 0. */ + OSMO_ASSERT(data_len == 290); + ubit_t m1 = data[0]; + if (m1 == 0) { + osmo_ubit2pbit_ext(rlp_buf, 0, data, 2, data_len, 1); + return; + } + osmo_ubit2pbit_ext(rlp_buf, 288, data, 2, data_len, 1); + byte_len = 576/8; + } else { + byte_len = osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); + } + + if (trx->bts->gsmtap.rlp_skip_null) { + struct osmo_rlp_frame_decoded rlpf; + int rc = osmo_rlp_decode(&rlpf, 0, rlp_buf, byte_len); + if (rc == 0 && rlpf.ftype == OSMO_RLP_FT_U && rlpf.u_ftype == OSMO_RLP_U_FT_NULL) + return; + } + + arfcn = trx->arfcn; + if (is_uplink) + arfcn |= GSMTAP_ARFCN_F_UPLINK; + + gsmtap_send_ex(inst, GSMTAP_TYPE_GSM_RLP, arfcn, lchan->ts->nr, + lchan->type == GSM_LCHAN_TCH_H ? GSMTAP_CHANNEL_VOICE_H : GSMTAP_CHANNEL_VOICE_F, + lchan->nr, tch_ind->fn, tch_ind->rssi, 0, rlp_buf, byte_len); + +} diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b608680..7f72cb6 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -60,6 +60,7 @@ #include <osmo-bts/pcuif_proto.h> #include <osmo-bts/cbch.h> #include <osmo-bts/asci.h> +#include <osmo-bts/csd_rlp.h> #include <osmo-bts/csd_v110.h> /* determine the CCCH block number based on the frame number */ @@ -1944,82 +1945,6 @@ return 1; } -/* process one MAC block of unpacked bits of a non-transparent CSD channel */ -static void gsmtap_csd_rlp_process(struct gsm_lchan *lchan, bool is_uplink, - const struct ph_tch_param *tch_ind, - const uint8_t *data, unsigned int data_len) -{ - struct gsm_bts_trx *trx = lchan->ts->trx; - struct gsmtap_inst *inst = trx->bts->gsmtap.inst; - pbit_t *rlp_buf; - uint16_t arfcn; - int byte_len; - - if (!inst || !trx->bts->gsmtap.rlp) - return; - - if (lchan->csd_mode != LCHAN_CSD_M_NT) - return; - - if (is_uplink) - rlp_buf = lchan->tch.csd.rlp_buf_ul; - else - rlp_buf = lchan->tch.csd.rlp_buf_dl; - - /* TCH/F 9.6: 4x60bit block => 240bit RLP frame - * TCH/F 4.8: 2x 2x60bit blocks starting at B0/B2/B4 => 240bit RLP frame - * TCH/H 4.8: 4x60bit block => 240bit RLP frame - * TCH/F 2.4: 2x36bit blocks => transparent only - * TCH/H 2.4: 4x36bit blocks => transparent only - * TCH/F 14.4: 2x 290 bit block (starting with M1=0) => 576-bit RLP frame - */ - - if (lchan->type == GSM_LCHAN_TCH_F && lchan->tch_mode == GSM48_CMODE_DATA_6k0) { - /* in this mode we have 120bit MAC blocks; two of them need to be concatenated - * to render a 240-bit RLP frame. The fist block is present in B0/B2/B4. - * The E7 bit is used to indicate the Frame MF0a */ - OSMO_ASSERT(data_len == 120); - ubit_t e7 = data[4*7+3]; - if (e7 == 0) { - osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); - return; - } - osmo_ubit2pbit_ext(rlp_buf, 120, data, 0, data_len, 1); - byte_len = 240/8; - } else if (lchan->type == GSM_LCHAN_TCH_F && lchan->tch_mode == GSM48_CMODE_DATA_14k5) { - /* in this mode we have 290bit MAC blocks containing M1, M2 and 288 data bits; - * two of them need to be concatenated to render a - * 576-bit RLP frame. The start of a RLP frame is - * denoted by a block with M1-bit set to 0. */ - OSMO_ASSERT(data_len == 290); - ubit_t m1 = data[0]; - if (m1 == 0) { - osmo_ubit2pbit_ext(rlp_buf, 0, data, 2, data_len, 1); - return; - } - osmo_ubit2pbit_ext(rlp_buf, 288, data, 2, data_len, 1); - byte_len = 576/8; - } else { - byte_len = osmo_ubit2pbit_ext(rlp_buf, 0, data, 0, data_len, 1); - } - - if (trx->bts->gsmtap.rlp_skip_null) { - struct osmo_rlp_frame_decoded rlpf; - int rc = osmo_rlp_decode(&rlpf, 0, rlp_buf, byte_len); - if (rc == 0 && rlpf.ftype == OSMO_RLP_FT_U && rlpf.u_ftype == OSMO_RLP_U_FT_NULL) - return; - } - - arfcn = trx->arfcn; - if (is_uplink) - arfcn |= GSMTAP_ARFCN_F_UPLINK; - - gsmtap_send_ex(inst, GSMTAP_TYPE_GSM_RLP, arfcn, lchan->ts->nr, - lchan->type == GSM_LCHAN_TCH_H ? GSMTAP_CHANNEL_VOICE_H : GSMTAP_CHANNEL_VOICE_F, - lchan->nr, tch_ind->fn, tch_ind->rssi, 0, rlp_buf, byte_len); - -} - /* a helper function for the logic in l1sap_tch_ind() */ static void send_ul_rtp_packet(struct gsm_lchan *lchan, uint32_t fn, const uint8_t *rtp_pl, uint16_t rtp_pl_len) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38559?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I824ce6614c8591cccc5f6bcdde767fe49d551378 Gerrit-Change-Number: 38559 Gerrit-PatchSet: 1 Gerrit-Owner: falconia <falcon(a)freecalypso.org>
1 0
0 0
[S] Change in osmo-bts[master]: CSD RTP: verify alignment of V.110 frames
by falconia 28 Oct '24

28 Oct '24
Attention is currently required from: falconia, fixeria, pespin. Hello Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/38555?usp=email to look at the new patch set (#3). The following approvals got outdated and were removed: Code-Review+1 by pespin, Code-Review+2 by fixeria, Verified+1 by Jenkins Builder The change is no longer submittable: Code-Review and Verified are unsatisfied now. Change subject: CSD RTP: verify alignment of V.110 frames ...................................................................... CSD RTP: verify alignment of V.110 frames Since the beginning of CSD implementation, OsmoBTS has operated with an implicit (unstated) policy that V.110 frames must be perfectly aligned within received clearmode RTP packets - a requirement which is NOT set anywhere in TS 48.103 or any of the other specs it references. This design policy is sensible from the standpoint of implementation complexity (both OsmoBTS and osmo_trau2rtp emit such perfectly aligned packets; if someone is building a gateway between an Osmocom GSM network and ISDN-style external networks, that gateway can act as the aligner), but it should be explicit rather than implicit. Check V.110 frame alignment in received clearmode RTP packets, and reject packets that fail this alignment check. Change-Id: Icd704dc7fa02e60074efc8a29ad7e42ebdf63783 --- M src/common/csd_v110.c 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/38555/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38555?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd704dc7fa02e60074efc8a29ad7e42ebdf63783 Gerrit-Change-Number: 38555 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de>
1 0
0 0
[L] Change in osmo-bts[master]: CSD: implement half-rate modes correctly
by falconia 28 Oct '24

28 Oct '24
Attention is currently required from: fixeria, pespin. Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email to look at the new patch set (#3). The following approvals got outdated and were removed: Code-Review+1 by fixeria, Verified+1 by Jenkins Builder Change subject: CSD: implement half-rate modes correctly ...................................................................... CSD: implement half-rate modes correctly TCH/H4.8 and TCH/H2.4 modes are different from all other TCH in that the channel coder runs (statistically) every 40 ms instead of the usual 20 ms. However, the standard RTP interface of TS 48.103 still requires 20 ms packets for all CSD modes; furtherfore, this requirement is not just a matter of 3GPP spec being obstinent, but is highly useful for interoperability, both between FR and HR and between OsmoBTS and E1 BTS. The handling of CSD HR was totally broken in this regard: wrong RA2 packing mode, RTP clock model was violated, and even an internal mismatch with l1sap sending TCH.req prims at twice the rate at which the PHY expects them. With this patch CSD HR handling becomes correct for TCH/H2.4 and for TCH/H4.8 transparent; fully correct handling for TCH/H4.8 NT will appear in a follow-up patch. The packet/frame rate mismatch (40 ms Rx/Tx times while each RTP packet carries 20 ms worth of data) is reconciled by emitting two RTP packets directly back-to-back for UL, and pulling two RTP packets at a time from the Rx jitter buffer at the needed times for DL. Note: due to bug OS#6604, TTCN3 tests for CSD half-rate transparent modes will start failing once this patch is merged; to make them pass again, TTCN3 test code will need to be reworked to fix that bug. Related: OS#6577 Change-Id: Ib35e910df263743cd243f51fb0bd6551ddfcf4c5 --- M include/osmo-bts/csd_v110.h M src/common/csd_v110.c M src/common/l1sap.c M src/osmo-bts-trx/sched_lchan_tchh.c M tests/csd/csd_test.c M tests/csd/csd_test.err 6 files changed, 260 insertions(+), 112 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/53/38553/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/38553?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35e910df263743cd243f51fb0bd6551ddfcf4c5 Gerrit-Change-Number: 38553 Gerrit-PatchSet: 3 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de>
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • ...
  • 164
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.