This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/24327 ) Change subject: [VAMOS] struct gsm_lchan: store Training Sequence Code/Set ...................................................................... [VAMOS] struct gsm_lchan: store Training Sequence Code/Set Change-Id: I3744bc308b99ef941e6e9d139444e414abebc14b Related: SYS#4895, OS#4941 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/scheduler.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c 8 files changed, 32 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/24327/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index be18007..70c640b 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -278,6 +278,8 @@ struct osmo_rtp_socket *rtp_socket; } abis_ip; + /* Training Sequence Code and set */ + uint8_t tsc_set:5, tsc:3; uint8_t rqd_ta; char *name; diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index beb2716..72858f5 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -12,6 +12,12 @@ #define TRX_CHAN_IS_ACTIVE(state, chan) \ (trx_chan_desc[chan].flags & TRX_CHAN_FLAG_AUTO_ACTIVE || (state)->active) +#define TRX_GMSK_NB_TSC(br) \ + _sched_train_seq_gmsk_nb[(br)->tsc] + +#define TRX_8PSK_NB_TSC(br) \ + _sched_train_seq_8psk_nb[(br)->tsc] + /* These types define the different channels on a multiframe. * Each channel has queues and can be activated individually. */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b74e0d3..3a2bcfd 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -2,6 +2,7 @@ /* (C) 2011 by Harald Welte <laforge at gnumonks.org> * (C) 2013 by Andreas Eversberg <jolly at eversberg.eu> + * Contributions by sysmocom - s.f.m.c. GmbH * * All Rights Reserved * @@ -1962,11 +1963,16 @@ int l1sap_chan_act(struct gsm_bts_trx *trx, uint8_t chan_nr, struct tlv_parsed *tp) { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); + const struct gsm_bts_trx_ts *ts = &trx->ts[chan_nr & 0x07]; const struct gsm48_chan_desc *cd; int rc; LOGPLCHAN(lchan, DL1C, LOGL_INFO, "activating channel %s\n", rsl_chan_nr_str(chan_nr)); + /* Default Training Sequence Code and Set */ + lchan->tsc = gsm_ts_tsc(ts); + lchan->tsc_set = 0; + /* osmo-pcu calls this without a valid 'tp' parameter, so we * need to make sure ew don't crash here */ if (tp && TLVP_PRES_LEN(tp, RSL_IE_CHAN_IDENT, sizeof(*cd) + 1)) { @@ -1981,6 +1987,9 @@ cd->h0.tsc, trx->bts->bsic & 7); return -RSL_ERR_SERV_OPT_UNIMPL; } + + lchan->tsc_set = (cd->chan_nr & 0x80) ? 1 : 0; + lchan->tsc = cd->h0.tsc; } lchan->s = trx->bts->radio_link_timeout.current; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 96049a3..97e83b8 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1194,6 +1194,7 @@ { const struct l1sched_chan_state *l1cs; const struct trx_sched_frame *frame; + const struct gsm_lchan *lchan; uint8_t offset, period; trx_sched_dl_func *func; @@ -1210,11 +1211,18 @@ func = trx_chan_desc[br->chan].dl_fn; l1cs = &l1ts->chan_state[br->chan]; + lchan = l1cs->lchan; /* NOTE: may be NULL! */ /* check if channel is active */ if (!TRX_CHAN_IS_ACTIVE(l1cs, br->chan)) return; + /* Training Sequence Code and Set */ + if (lchan != NULL) { + br->tsc_set = lchan->tsc_set; + br->tsc = lchan->tsc; + } + /* get burst from function */ if (func(l1ts, br) != 0) return; @@ -1223,8 +1231,8 @@ br->mod = l1cs->dl_mod_type; /* BS Power reduction (in dB) per logical channel */ - if (l1cs->lchan != NULL) - br->att = l1cs->lchan->bs_power_ctrl.current; + if (lchan != NULL) + br->att = lchan->bs_power_ctrl.current; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index dede371..335ba6f 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -212,7 +212,7 @@ burst = *bursts_p + br->bid * 348; memset(br->burst, 1, 9); memcpy(br->burst + 9, burst, 174); - memcpy(br->burst + 183, _sched_train_seq_8psk_nb[gsm_ts_tsc(l1ts->ts)], 78); + memcpy(br->burst + 183, TRX_8PSK_NB_TSC(br), 78); memcpy(br->burst + 261, burst + 174, 174); memset(br->burst + 435, 1, 9); @@ -220,7 +220,7 @@ } else { burst = *bursts_p + br->bid * 116; memcpy(br->burst + 3, burst, 58); - memcpy(br->burst + 61, _sched_train_seq_gmsk_nb[gsm_ts_tsc(l1ts->ts)], 26); + memcpy(br->burst + 61, TRX_GMSK_NB_TSC(br), 26); memcpy(br->burst + 87, burst + 58, 58); br->burst_len = GSM_BURST_LEN; diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 5605969..689925f 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -562,7 +562,7 @@ /* compose burst */ burst = *bursts_p + br->bid * 116; memcpy(br->burst + 3, burst, 58); - memcpy(br->burst + 61, _sched_train_seq_gmsk_nb[gsm_ts_tsc(l1ts->ts)], 26); + memcpy(br->burst + 61, TRX_GMSK_NB_TSC(br), 26); memcpy(br->burst + 87, burst + 58, 58); br->burst_len = GSM_BURST_LEN; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 91ce02f..4f03bd1 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -451,7 +451,7 @@ /* compose burst */ burst = *bursts_p + br->bid * 116; memcpy(br->burst + 3, burst, 58); - memcpy(br->burst + 61, _sched_train_seq_gmsk_nb[gsm_ts_tsc(l1ts->ts)], 26); + memcpy(br->burst + 61, TRX_GMSK_NB_TSC(br), 26); memcpy(br->burst + 87, burst + 58, 58); br->burst_len = GSM_BURST_LEN; diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index b31175e..4bfc101 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -239,7 +239,7 @@ /* compose burst */ burst = *bursts_p + br->bid * 116; memcpy(br->burst + 3, burst, 58); - memcpy(br->burst + 61, _sched_train_seq_gmsk_nb[gsm_ts_tsc(l1ts->ts)], 26); + memcpy(br->burst + 61, TRX_GMSK_NB_TSC(br), 26); memcpy(br->burst + 87, burst + 58, 58); br->burst_len = GSM_BURST_LEN; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/24327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3744bc308b99ef941e6e9d139444e414abebc14b Gerrit-Change-Number: 24327 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210521/b776a2e8/attachment.htm>