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

June 2023

  • 1 participants
  • 2480 discussions
[S] Change in osmo-bsc[master]: contrib/jenkins.sh: remove unrecognized --enable-vty-tests
by laforge 11 Jun '23

11 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/33167 ) Change subject: contrib/jenkins.sh: remove unrecognized --enable-vty-tests ...................................................................... contrib/jenkins.sh: remove unrecognized --enable-vty-tests There is no such option in the configure.ac: configure: WARNING: unrecognized options: --enable-vty-tests Change-Id: I04421af0b250651a598a7aeb5bed55dbacec2f7c --- M contrib/jenkins.sh 1 file changed, 14 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ba453e9..695af3a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -80,7 +80,7 @@ LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || exit_tar_workspace LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="--enable-vty-tests --enable-external-tests --enable-werror $CONFIG" \ + DISTCHECK_CONFIGURE_FLAGS="--enable-external-tests --enable-werror $CONFIG" \ $MAKE $PARALLEL_MAKE distcheck \ || exit_tar_workspace -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/33167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I04421af0b250651a598a7aeb5bed55dbacec2f7c Gerrit-Change-Number: 33167 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmo-bsc[master]: contrib/jenkins.sh: remove unrecognized --enable-vty-tests
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/33167 ) Change subject: contrib/jenkins.sh: remove unrecognized --enable-vty-tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/33167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I04421af0b250651a598a7aeb5bed55dbacec2f7c Gerrit-Change-Number: 33167 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Sun, 11 Jun 2023 19:25:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmocom-bb[master]: fake_trx.py: remove SETSLOT based burst filtering
by laforge 11 Jun '23

11 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33165 ) Change subject: fake_trx.py: remove SETSLOT based burst filtering ...................................................................... fake_trx.py: remove SETSLOT based burst filtering For the sake of simplicity and due to some performance limitations, fake_trx.py does not generate TRXD NOPE indications for osmo-bts-trx on its own. It's actually trxcon sending NOPE.req (empty Tx PDUs) when it has nothing to send, and fake_trx.py simply converting them. In a follow-up change [1] we remove trxcon's internal clock module, making the Uplink burst scheduling being driven by Downlink bursts with the respective TDMA Fn/Tn values. Given that fake_trx.py is currently dropping bursts received for inactive timeslots, we would get NOPE.req only for a single timeslot, the one being currently active. This would break several testcases in ttcn3-bts-test. Remove SETSLOT based burst filtering, so that trxcon would still be able to generate NOPE.req for all, active and inactive timeslots. Downlink bursts for inactive timeslots are discarded anyway. Change-Id: Ia42550d5c2d8b49efbdf8ef0ce46b26afd1c464e Related: [1] Ic8a5b6277c6b16392026e0557376257d71c9d230 Related: OS#5500 --- M src/target/trx_toolkit/burst_fwd.py M src/target/trx_toolkit/ctrl_if_trx.py M src/target/trx_toolkit/transceiver.py 3 files changed, 27 insertions(+), 48 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py index f5a6d78..6924531 100644 --- a/src/target/trx_toolkit/burst_fwd.py +++ b/src/target/trx_toolkit/burst_fwd.py @@ -58,8 +58,6 @@ # Check transceiver state if not trx.running: continue - if rx_msg.tn not in trx.ts_list: - continue # Match Tx/Rx frequencies of the both transceivers if trx.get_rx_freq(rx_msg.fn) != tx_freq: diff --git a/src/target/trx_toolkit/ctrl_if_trx.py b/src/target/trx_toolkit/ctrl_if_trx.py index 2871f37..e6fdaf1 100644 --- a/src/target/trx_toolkit/ctrl_if_trx.py +++ b/src/target/trx_toolkit/ctrl_if_trx.py @@ -134,32 +134,6 @@ self.trx._tx_freq = int(request[1]) * 1000 return 0 - elif self.verify_cmd(request, "SETSLOT", 2): - log.debug("(%s) Recv SETSLOT cmd" % self.trx) - - # Obtain TS index - ts = int(request[1]) - if ts not in range(0, 8): - log.error("(%s) TS index should be in " - "range: 0..7" % self.trx) - return -1 - - # Parse TS type - ts_type = int(request[2]) - - # TS activation / deactivation - # We don't care about ts_type - if ts_type == 0: - # Deactivate TS (remove from the list of active timeslots) - if ts in self.trx.ts_list: - self.trx.ts_list.remove(ts) - else: - # Activate TS (add to the list of active timeslots) - if ts not in self.trx.ts_list: - self.trx.ts_list.append(ts) - - return 0 - # Power measurement if self.verify_cmd(request, "MEASURE", 1): log.debug("(%s) Recv MEASURE cmd" % self.trx) diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py index 385c38d..ffd18ab 100644 --- a/src/target/trx_toolkit/transceiver.py +++ b/src/target/trx_toolkit/transceiver.py @@ -43,16 +43,6 @@ NOTE: CLCK is not required for some L1 implementations, so it is optional. - == Timeslot configuration - - Transceiver has a list of active (i.e. configured) TDMA timeslots. - The L1 should configure a timeslot before sending or expecting any - data on it. This is done by SETSLOT control command, which also - indicates an associated channel combination (see GSM TS 05.02). - - NOTE: we don't store the associated channel combinations, - as they are only useful for burst detection and demodulation. - == Child transceivers A BTS can (optionally) have more than one transceiver. In this case @@ -168,9 +158,6 @@ # Frequency hopping parameters (set by CTRL) self.fh = None - # List of active (configured) timeslots - self.ts_list = [] - # List of child transceivers self.child_trx_list = TRXList() @@ -264,13 +251,6 @@ "is not running => dropping..." % (self, msg.desc_hdr())) return None - # Make sure that indicated timeslot is configured - # Pass PDUs without burst bits, they will be sent as NOPE.ind - if msg.tn not in self.ts_list and msg.burst: - log.warning("(%s) RX TRXD message (%s), but timeslot is not " - "configured => dropping..." % (self, msg.desc_hdr())) - return None - return msg def handle_data_msg(self, msg): -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/33165 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ia42550d5c2d8b49efbdf8ef0ce46b26afd1c464e Gerrit-Change-Number: 33165 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[L] Change in osmocom-bb[master]: trxcon: get rid of the timer driven clock module
by laforge 11 Jun '23

11 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/32575 ) Change subject: trxcon: get rid of the timer driven clock module ...................................................................... trxcon: get rid of the timer driven clock module trxcon was heavily inspired by osmo-bts-trx, and among with many other scheduling related parts also inherited the timer driven clock module. This clock module is driving the Uplink burst scheduling, just like it does drive the Downlink burst scheduling in osmo-bts-trx. Just like in osmo-bts-trx, the clock module relies on periodic CLCK indications from the PHY, which are needed to compensate for the clock drifting. The key difference is that trxcon is using Downlink bursts as the CLCK indications, see 'bi.fn % 51' in trx_data_rx_cb(). This is possible because the MS is a clock slave of the BTS: the MS PHY needs to sync its freq. and clock first, and only after that it can Rx and Tx. So far we've had no problems with the clock module in trxcon until we started adding GPRS support and integrated the l1gprs. While the CS domain is quite flexible in terms of timings and delays, the PS domain is a lot more sensetive to the timing issues. Sometimes it happens that the trxcon's clock module is ticking quicker than it should, resulting in Uplink PDCH blocks being scheduled earlier than the respective Downlink PDCH blocks are received: 20230502021957724 l1sched_pull_burst(): PDTCH/U Tx time (fn=56103) 20230502021957744 (PDCH-7) Rx DL BLOCK.ind (fn=56103, len=23): ... 20230502021957747 l1sched_pull_burst(): PDTCH/U Tx time (fn=56108) 20230502021957765 l1sched_pull_burst(): PDTCH/U Tx time (fn=56112) 20230502021957767 (PDCH-7) Rx DL BLOCK.ind (fn=56108, len=23): ... 20230502021957768 (PDCH-7) Rx UL BLOCK.req (fn=56112, len=54): ... 20230502021957784 l1sched_pull_burst(): PDTCH/U Tx time (fn=56116) 20230502021957784 TS7-PDTCH dropping Tx primitive (current Fn=56116, prim Fn=56112) This is impossible in reality, because Uplink is intentionally lagging behind Downlink by 3 TDMA timeslot periods. In a virtual setup this causes sporadic dropping of Uplink PDCH blocks, as can be seen from the logging snippet above, and significantly degrades the RLC/MAC performance for GPRS. Let's remove the internal clock module and trigger the Uplink burst transmission each time we receive a Downlink burst. This helps to overcome the GPRS scheduling issues and replicates the approach of osmo-trx-ms more closely. Change-Id: Ic8a5b6277c6b16392026e0557376257d71c9d230 Related: OS#5500 --- M src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h M src/host/trxcon/include/osmocom/bb/trxcon/phyif.h M src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h M src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h M src/host/trxcon/src/Makefile.am D src/host/trxcon/src/sched_clck.c M src/host/trxcon/src/sched_trx.c M src/host/trxcon/src/trx_if.c M src/host/trxcon/src/trxcon_inst.c M src/host/trxcon/src/trxcon_main.c M src/host/trxcon/src/trxcon_shim.c 11 files changed, 68 insertions(+), 263 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h index 39aeeb9..d3b079c 100644 --- a/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h +++ b/src/host/trxcon/include/osmocom/bb/l1sched/l1sched.h @@ -41,11 +41,6 @@ struct l1sched_state; struct l1sched_ts; -enum l1sched_clck_state { - L1SCHED_CLCK_ST_WAIT, - L1SCHED_CLCK_ST_OK, -}; - enum l1sched_burst_type { L1SCHED_BURST_GMSK, L1SCHED_BURST_8PSK, @@ -319,24 +314,10 @@ struct l1sched_cfg { /*! Logging context (used as prefix for messages) */ const char *log_prefix; - /*! TDMA frame-number advance */ - uint32_t fn_advance; }; /*! One scheduler instance */ struct l1sched_state { - /*! Clock state */ - enum l1sched_clck_state clck_state; - /*! Local clock source */ - struct timespec clock; - /*! Count of processed frames */ - uint32_t fn_counter_proc; - /*! Local frame counter advance */ - uint32_t fn_counter_advance; - /*! Count of lost frames */ - uint32_t fn_counter_lost; - /*! Frame callback timer */ - struct osmo_timer_list clock_timer; /*! List of timeslots maintained by this scheduler */ struct l1sched_ts *ts[TRX_TS_COUNT]; /*! SACCH cache (common for all lchans) */ diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h index abda393..2ad7a67 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h @@ -110,7 +110,6 @@ int trxcon_phyif_handle_burst_req(void *phyif, const struct trxcon_phyif_burst_req *br); int trxcon_phyif_handle_burst_ind(void *priv, const struct trxcon_phyif_burst_ind *bi); -int trxcon_phyif_handle_clock_ind(void *priv, uint32_t fn); int trxcon_phyif_handle_rts_ind(void *priv, const struct trxcon_phyif_rts_ind *rts); int trxcon_phyif_handle_rtr_ind(void *priv, const struct trxcon_phyif_rtr_ind *ind, diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h index 0243dd5..e564fd8 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h @@ -24,6 +24,7 @@ struct osmo_timer_list trx_ctrl_timer; struct llist_head trx_ctrl_list; struct osmo_fsm_inst *fi; + uint32_t fn_advance; /* HACK: we need proper state machines */ uint32_t prev_state; @@ -45,6 +46,7 @@ const char *local_host; const char *remote_host; uint16_t base_port; + uint32_t fn_advance; uint8_t instance; struct osmo_fsm_inst *parent_fi; diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h index 1d012de..3d85d59 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h @@ -55,7 +55,7 @@ void trxcon_set_log_cfg(const int *logc, unsigned int logc_num); -struct trxcon_inst *trxcon_inst_alloc(void *ctx, unsigned int id, uint32_t fn_advance); +struct trxcon_inst *trxcon_inst_alloc(void *ctx, unsigned int id); void trxcon_inst_free(struct trxcon_inst *trxcon); int trxcon_l1ctl_receive(struct trxcon_inst *trxcon, struct msgb *msg); diff --git a/src/host/trxcon/src/Makefile.am b/src/host/trxcon/src/Makefile.am index c96949a..7be7de6 100644 --- a/src/host/trxcon/src/Makefile.am +++ b/src/host/trxcon/src/Makefile.am @@ -23,7 +23,6 @@ sched_lchan_rach.c \ sched_lchan_sch.c \ sched_mframe.c \ - sched_clck.c \ sched_prim.c \ sched_trx.c \ $(NULL) diff --git a/src/host/trxcon/src/sched_clck.c b/src/host/trxcon/src/sched_clck.c deleted file mode 100644 index f9eadaf..0000000 --- a/src/host/trxcon/src/sched_clck.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * OsmocomBB <-> SDR connection bridge - * TDMA scheduler: clock synchronization - * - * (C) 2013 by Andreas Eversberg <jolly(a)eversberg.eu> - * (C) 2015 by Alexander Chemeris <Alexander.Chemeris(a)fairwaves.co> - * (C) 2015 by Harald Welte <laforge(a)gnumonks.org> - * - * 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 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 <stdio.h> -#include <errno.h> -#include <stdlib.h> -#include <stdint.h> -#include <inttypes.h> -#include <string.h> - -#include <osmocom/core/logging.h> -#include <osmocom/core/talloc.h> -#include <osmocom/core/msgb.h> -#include <osmocom/core/timer.h> -#include <osmocom/core/timer_compat.h> - -#include <osmocom/bb/l1sched/l1sched.h> -#include <osmocom/bb/l1sched/logging.h> - -#define MAX_FN_SKEW 50 -#define TRX_LOSS_FRAMES 400 - -static void l1sched_clck_tick(void *data) -{ - struct l1sched_state *sched = (struct l1sched_state *) data; - struct timespec tv_now, *tv_clock, elapsed; - int64_t elapsed_us; - const struct timespec frame_duration = { .tv_sec = 0, .tv_nsec = GSM_TDMA_FN_DURATION_nS }; - - /* Check if transceiver is still alive */ - if (sched->fn_counter_lost++ == TRX_LOSS_FRAMES) { - LOGP_SCHEDC(sched, LOGL_NOTICE, "No more clock from transceiver\n"); - sched->clck_state = L1SCHED_CLCK_ST_WAIT; - - return; - } - - /* Get actual / previous frame time */ - osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now); - tv_clock = &sched->clock; - - timespecsub(&tv_now, tv_clock, &elapsed); - elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); - - /* If someone played with clock, or if the process stalled */ - if (elapsed_us > GSM_TDMA_FN_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { - LOGP_SCHEDC(sched, LOGL_NOTICE, "PC clock skew: " - "elapsed uS %" PRId64 "\n", elapsed_us); - - sched->clck_state = L1SCHED_CLCK_ST_WAIT; - - return; - } - - /* Schedule next FN clock */ - while (elapsed_us > GSM_TDMA_FN_DURATION_uS / 2) { - timespecadd(tv_clock, &frame_duration, tv_clock); - elapsed_us -= GSM_TDMA_FN_DURATION_uS; - - GSM_TDMA_FN_INC(sched->fn_counter_proc); - - /* Trigger the scheduler */ - l1sched_pull_send_frame(sched); - } - - osmo_timer_schedule(&sched->clock_timer, 0, - GSM_TDMA_FN_DURATION_uS - elapsed_us); -} - -static void l1sched_clck_correct(struct l1sched_state *sched, - struct timespec *tv_now, uint32_t fn) -{ - sched->fn_counter_proc = fn; - - /* Trigger the scheduler */ - l1sched_pull_send_frame(sched); - - /* Schedule first FN clock */ - sched->clock = *tv_now; - memset(&sched->clock_timer, 0, sizeof(sched->clock_timer)); - - sched->clock_timer.cb = l1sched_clck_tick; - sched->clock_timer.data = sched; - osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); -} - -int l1sched_clck_handle(struct l1sched_state *sched, uint32_t fn) -{ - struct timespec tv_now, *tv_clock, elapsed; - int64_t elapsed_us, elapsed_fn; - - /* Reset lost counter */ - sched->fn_counter_lost = 0; - - /* Get actual / previous frame time */ - osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now); - tv_clock = &sched->clock; - - /* If this is the first CLCK IND */ - if (sched->clck_state == L1SCHED_CLCK_ST_WAIT) { - l1sched_clck_correct(sched, &tv_now, fn); - - LOGP_SCHEDC(sched, LOGL_NOTICE, "Initial clock received: fn=%u\n", fn); - sched->clck_state = L1SCHED_CLCK_ST_OK; - - return 0; - } - - LOGP_SCHEDC(sched, LOGL_DEBUG, "Clock indication: fn=%u\n", fn); - - osmo_timer_del(&sched->clock_timer); - - /* Calculate elapsed time / frames since last processed fn */ - timespecsub(&tv_now, tv_clock, &elapsed); - elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); - elapsed_fn = GSM_TDMA_FN_SUB(fn, sched->fn_counter_proc); - - if (elapsed_fn >= 135774) - elapsed_fn -= GSM_TDMA_HYPERFRAME; - - /* Check for max clock skew */ - if (elapsed_fn > MAX_FN_SKEW || elapsed_fn < -MAX_FN_SKEW) { - LOGP_SCHEDC(sched, LOGL_NOTICE, "GSM clock skew: old fn=%u, " - "new fn=%u\n", sched->fn_counter_proc, fn); - - l1sched_clck_correct(sched, &tv_now, fn); - return 0; - } - - LOGP_SCHEDC(sched, LOGL_DEBUG, "GSM clock jitter: %" PRId64 "\n", - elapsed_fn * GSM_TDMA_FN_DURATION_uS - elapsed_us); - - /* Too many frames have been processed already */ - if (elapsed_fn < 0) { - struct timespec duration; - /** - * Set clock to the time or last FN should - * have been transmitted - */ - duration.tv_nsec = (0 - elapsed_fn) * GSM_TDMA_FN_DURATION_nS; - duration.tv_sec = duration.tv_nsec / 1000000000; - duration.tv_nsec = duration.tv_nsec % 1000000000; - timespecadd(&tv_now, &duration, tv_clock); - - /* Set time to the time our next FN has to be transmitted */ - osmo_timer_schedule(&sched->clock_timer, 0, - GSM_TDMA_FN_DURATION_uS * (1 - elapsed_fn)); - - return 0; - } - - /* Transmit what we still need to transmit */ - while (fn != sched->fn_counter_proc) { - GSM_TDMA_FN_INC(sched->fn_counter_proc); - - /* Trigger the scheduler */ - l1sched_pull_send_frame(sched); - } - - /* Schedule next FN to be transmitted */ - *tv_clock = tv_now; - osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); - - return 0; -} - -void l1sched_clck_reset(struct l1sched_state *sched) -{ - /* Reset internal state */ - sched->clck_state = L1SCHED_CLCK_ST_WAIT; - - /* Stop clock timer */ - osmo_timer_del(&sched->clock_timer); - - /* Flush counters */ - sched->fn_counter_proc = 0; - sched->fn_counter_lost = 0; -} diff --git a/src/host/trxcon/src/sched_trx.c b/src/host/trxcon/src/sched_trx.c index ccac32c..3b452b1 100644 --- a/src/host/trxcon/src/sched_trx.c +++ b/src/host/trxcon/src/sched_trx.c @@ -152,27 +152,6 @@ l1sched_a5_burst_enc(lchan, br); } -/* Pull *and send* Uplink bursts for all timeslots and the current TDMA Fn. */ -void l1sched_pull_send_frame(struct l1sched_state *sched) -{ - /* Advance TDMA frame number in order to give the transceiver - * more time to handle the burst before the actual transmission. */ - const uint32_t fn = GSM_TDMA_FN_SUM(sched->fn_counter_proc, - sched->fn_counter_advance); - - /* Iterate over timeslot list */ - for (unsigned int tn = 0; tn < ARRAY_SIZE(sched->ts); tn++) { - struct l1sched_burst_req br = { - .fn = fn, - .tn = tn, - .burst_len = 0, /* NOPE.ind */ - }; - - l1sched_pull_burst(sched, &br); - l1sched_handle_burst_req(sched, &br); - } -} - void l1sched_logging_init(int log_cat_common, int log_cat_data) { l1sched_log_cat_common = log_cat_common; @@ -188,8 +167,6 @@ return NULL; *sched = (struct l1sched_state) { - /* .clock_timer is set up in l1sched_clck_correct() */ - .fn_counter_advance = cfg->fn_advance, .priv = priv, }; @@ -216,7 +193,6 @@ for (tn = 0; tn < ARRAY_SIZE(sched->ts); tn++) l1sched_del_ts(sched, tn); - l1sched_clck_reset(sched); talloc_free(sched); } @@ -234,10 +210,6 @@ for (tn = 0; tn < ARRAY_SIZE(sched->ts); tn++) l1sched_del_ts(sched, tn); - /* Stop and reset clock counter if required */ - if (reset_clock) - l1sched_clck_reset(sched); - memcpy(&sched->sacch_cache[0], &meas_rep_dummy[0], sizeof(meas_rep_dummy)); } diff --git a/src/host/trxcon/src/trx_if.c b/src/host/trxcon/src/trx_if.c index 330fd62..d98bea2 100644 --- a/src/host/trxcon/src/trx_if.c +++ b/src/host/trxcon/src/trx_if.c @@ -701,10 +701,16 @@ "RX burst tn=%u fn=%u rssi=%d toa=%d\n", bi.tn, bi.fn, bi.rssi, bi.toa256); - if (bi.fn % 51 == 0) - trxcon_phyif_handle_clock_ind(trx->priv, bi.fn); + trxcon_phyif_handle_burst_ind(trx->priv, &bi); - return trxcon_phyif_handle_burst_ind(trx->priv, &bi); + struct trxcon_phyif_rts_ind rts = { + .fn = GSM_TDMA_FN_SUM(bi.fn, trx->fn_advance), + .tn = bi.tn, + }; + + trxcon_phyif_handle_rts_ind(trx->priv, &rts); + + return 0; } int trx_if_handle_phyif_burst_req(struct trx_instance *trx, @@ -797,6 +803,7 @@ if (rc < 0) goto udp_error; + trx->fn_advance = params->fn_advance; trx->priv = params->priv; fi->priv = trx; trx->fi = fi; diff --git a/src/host/trxcon/src/trxcon_inst.c b/src/host/trxcon/src/trxcon_inst.c index 65e63b3..b7ff581 100644 --- a/src/host/trxcon/src/trxcon_inst.c +++ b/src/host/trxcon/src/trxcon_inst.c @@ -63,7 +63,7 @@ l1sched_logging_init(schc, schd); } -struct trxcon_inst *trxcon_inst_alloc(void *ctx, unsigned int id, uint32_t fn_advance) +struct trxcon_inst *trxcon_inst_alloc(void *ctx, unsigned int id) { struct trxcon_inst *trxcon; struct osmo_fsm_inst *fi; @@ -85,7 +85,6 @@ /* Init scheduler */ const struct l1sched_cfg sched_cfg = { - .fn_advance = fn_advance, .log_prefix = trxcon->log_prefix, }; diff --git a/src/host/trxcon/src/trxcon_main.c b/src/host/trxcon/src/trxcon_main.c index d30c98e..7298f5a 100644 --- a/src/host/trxcon/src/trxcon_main.c +++ b/src/host/trxcon/src/trxcon_main.c @@ -127,7 +127,7 @@ { struct trxcon_inst *trxcon; - trxcon = trxcon_inst_alloc(l1c, l1c->id, app_data.trx_fn_advance); + trxcon = trxcon_inst_alloc(l1c, l1c->id); if (trxcon == NULL) { l1ctl_client_conn_close(l1c); return; @@ -141,6 +141,7 @@ .local_host = app_data.trx_bind_ip, .remote_host = app_data.trx_remote_ip, .base_port = app_data.trx_base_port, + .fn_advance = app_data.trx_fn_advance, .instance = trxcon->id, .parent_fi = trxcon->fi, diff --git a/src/host/trxcon/src/trxcon_shim.c b/src/host/trxcon/src/trxcon_shim.c index 8b42efe..54d976a 100644 --- a/src/host/trxcon/src/trxcon_shim.c +++ b/src/host/trxcon/src/trxcon_shim.c @@ -237,13 +237,6 @@ return l1sched_handle_rx_burst(trxcon->sched, &bi); } -int trxcon_phyif_handle_clock_ind(void *priv, uint32_t fn) -{ - struct trxcon_inst *trxcon = priv; - - return l1sched_clck_handle(trxcon->sched, fn); -} - int trxcon_phyif_handle_rsp(void *priv, const struct trxcon_phyif_rsp *rsp) { struct trxcon_inst *trxcon = priv; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/32575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ic8a5b6277c6b16392026e0557376257d71c9d230 Gerrit-Change-Number: 32575 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmocom-bb[master]: trxcon: do not advance Uplink TDMA Fn by default
by laforge 11 Jun '23

11 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33166 ) Change subject: trxcon: do not advance Uplink TDMA Fn by default ...................................................................... trxcon: do not advance Uplink TDMA Fn by default The idea behind advancing Uplink TDMA Fn is to give the transceiver, which is usually a separate process, some additional time to receive and prepare Uplink bursts for transmission. This comes at a price of having an additional delay between Uplink and Downlink. Given that trxcon, as a standalone application, is primarily used in conjunction with fake_trx.py for running ttcn3-bts-test against osmo-bts-trx, there is no reason to advance the Uplink TDMA Fn. Change-Id: I838b1ebc54e4c5d116f8af2155d97215a6133ba4 Related: OS#5500 --- M src/host/trxcon/src/trxcon_main.c 1 file changed, 21 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/host/trxcon/src/trxcon_main.c b/src/host/trxcon/src/trxcon_main.c index 7298f5a..3901e33 100644 --- a/src/host/trxcon/src/trxcon_main.c +++ b/src/host/trxcon/src/trxcon_main.c @@ -79,7 +79,7 @@ .trx_remote_ip = "127.0.0.1", .trx_bind_ip = "0.0.0.0", .trx_base_port = 6700, - .trx_fn_advance = 3, + .trx_fn_advance = 0, .phyq_fbsb_extend_fns = 0, }; @@ -184,7 +184,7 @@ printf(" -b --trx-bind TRX bind IP address (default 0.0.0.0)\n"); printf(" -i --trx-remote TRX remote IP address (default 127.0.0.1)\n"); printf(" -p --trx-port Base port of TRX instance (default 6700)\n"); - printf(" -f --trx-advance Uplink burst scheduling advance (default 3)\n"); + printf(" -f --trx-advance Uplink burst scheduling advance (default 0)\n"); printf(" -F --fbsb-extend FBSB timeout extension (in TDMA FNs, default 0)\n"); printf(" -s --socket Listening socket for layer23 (default /tmp/osmocom_l2)\n"); printf(" -g --gsmtap-ip The destination IP used for GSMTAP (disabled by default)\n"); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/33166 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I838b1ebc54e4c5d116f8af2155d97215a6133ba4 Gerrit-Change-Number: 33166 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmocom-bb[master]: trxcon: do not advance Uplink TDMA Fn by default
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33166 ) Change subject: trxcon: do not advance Uplink TDMA Fn by default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/33166 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I838b1ebc54e4c5d116f8af2155d97215a6133ba4 Gerrit-Change-Number: 33166 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Sun, 11 Jun 2023 19:25:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmocom-bb[master]: fake_trx.py: remove SETSLOT based burst filtering
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: fixeria, pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33165 ) Change subject: fake_trx.py: remove SETSLOT based burst filtering ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/33165 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ia42550d5c2d8b49efbdf8ef0ce46b26afd1c464e Gerrit-Change-Number: 33165 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> 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, 11 Jun 2023 19:25:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmo-abis[master]: trau_pcu_ericsson: do not set unused D bits to 1
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: keith, dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32543 ) Change subject: trau_pcu_ericsson: do not set unused D bits to 1 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I003632a08cc80bc195b306bef5f907351b6fe94e Gerrit-Change-Number: 32543 Gerrit-PatchSet: 3 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith <keith(a)rhizomatica.org> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Sun, 11 Jun 2023 19:24:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmo-netif[master]: stream: Use cli->state to check if cli is already closed
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: daniel. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/33254 ) Change subject: stream: Use cli->state to check if cli is already closed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/33254 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I92231528da08f8891e20c1226b61989a65e00ccd Gerrit-Change-Number: 33254 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: daniel <dwillmann(a)sysmocom.de> Gerrit-Comment-Date: Sun, 11 Jun 2023 19:15:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: Add codec list to *VGCS_VBS_AssignmentReq templates
by laforge 11 Jun '23

11 Jun '23
Attention is currently required from: jolly, fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33146 ) Change subject: Add codec list to *VGCS_VBS_AssignmentReq templates ...................................................................... Patch Set 4: (1 comment) File library/BSSMAP_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33146/comment/e84b715a_ac7d… PS3, Line 2336: ? > Just to be sure: `?` means the Speech Codec List IE is expected to be *present*, but may contain any […] vadim's comment is not yet adressed, even in new patch set 4. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id3ce78ad795c418650ca924a953294c3380b8198 Gerrit-Change-Number: 33146 Gerrit-PatchSet: 4 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Sun, 11 Jun 2023 19:15:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • ...
  • 248
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.