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

March 2023

  • 1 participants
  • 3642 discussions
[M] Change in libosmocore[master]: logging: add log level cache
by Hoernchen 22 Mar '23

22 Mar '23
Attention is currently required from: laforge. Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633 ) Change subject: logging: add log level cache ...................................................................... Patch Set 9: (1 comment) Patchset: PS9: > ping? Pong. There is nothing to resolve here as far as I am concerned, the comment above the single line that apparently warrants lengthy discussion clearly says: /* init with invalid high level */ - and that's it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:44:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge <laforge(a)osmocom.org> Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by pespin 22 Mar '23

22 Mar '23
Attention is currently required from: fixeria. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Patch Set 1: (1 comment) File include/osmocom/gsm/protocol/gsm_04_08.h: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/b16a02ce_f3d699da PS1, Line 1779: GSM48_IE_CIP_MODE_SET > But then you'll break stuff for people building older osmo-bsc against recent libosmocore... 1- Stuff is already broken. It's not possible to encode and decode those IEs properly in a sane way. 2- That what libversion is for. We make them depend on newer libversion in master and next releases. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:43:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de> Comment-In-Reply-To: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by fixeria 22 Mar '23

22 Mar '23
Attention is currently required from: pespin. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Patch Set 1: (1 comment) File include/osmocom/gsm/protocol/gsm_04_08.h: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/dabd7bed_5de57e5e PS1, Line 1779: GSM48_IE_CIP_MODE_SET > Then we need to fix those projects and make them depend on libosmocore > 1.8. […] But then you'll break stuff for people building older osmo-bsc against recent libosmocore... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:41:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin <pespin(a)sysmocom.de> Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by pespin 22 Mar '23

22 Mar '23
Attention is currently required from: fixeria. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Patch Set 1: (2 comments) File include/osmocom/gsm/protocol/gsm_04_08.h: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/92651c09_4a8210bf PS1, Line 1779: GSM48_IE_CIP_MODE_SET > In osmo-bsc.git I see this IEI used as follows: […] Then we need to fix those projects and make them depend on libosmocore > 1.8.0, because with current state anyway encoding/decoding of those IEs is broken. File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/abfd622d_5af11b5a PS1, Line 244: & 0xf0 > Applying the mask in not needed anymore, given that you shift `uint8_t`? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:39:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-sgsn[master]: gmm: Ciphering Key Sequence Number IE has half octet tag
by pespin 22 Mar '23

22 Mar '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/32015 ) Change subject: gmm: Ciphering Key Sequence Number IE has half octet tag ...................................................................... gmm: Ciphering Key Sequence Number IE has half octet tag As per 3GPP TS 24.008: * 10.5.1.2 Ciphering Key Sequence Number * Table 9.4.9/TS 24.00 The IE is so far being encoded manually, hence why it worked fine until now. Change-Id: Ic220113f30377a14cbe3550a04cd04f3caef49cf --- M src/sgsn/gprs_gmm.c 1 file changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/15/32015/1 diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 5bf66c3..547edbb 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -70,7 +70,7 @@ static const struct tlv_definition gsm48_gmm_att_tlvdef = { .def = { - [GSM48_IE_GMM_CIPH_CKSN] = { TLV_TYPE_FIXED, 1 }, + [GSM48_IE_GMM_CIPH_CKSN] = { TLV_TYPE_SINGLE_TV, 1 }, [GSM48_IE_GMM_TIMER_READY] = { TLV_TYPE_TV, 1 }, [GSM48_IE_GMM_ALLOC_PTMSI] = { TLV_TYPE_TLV, 0 }, [GSM48_IE_GMM_PTMSI_SIG] = { TLV_TYPE_FIXED, 3 }, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/32015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic220113f30377a14cbe3550a04cd04f3caef49cf Gerrit-Change-Number: 32015 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by fixeria 22 Mar '23

22 Mar '23
Attention is currently required from: pespin. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Patch Set 1: Code-Review-1 (2 comments) File include/osmocom/gsm/protocol/gsm_04_08.h: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/89fce96b_70e7a455 PS1, Line 1779: GSM48_IE_CIP_MODE_SET In osmo-bsc.git I see this IEI used as follows: msgb_v_put(msg, GSM48_IE_CIP_MODE_SET | (cms & 0x0f)); so your patch is fixing libosmocore, but breaking osmo-bsc and potentially other projects. File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/50066660_7cd50211 PS1, Line 244: & 0xf0 Applying the mask in not needed anymore, given that you shift `uint8_t`? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:36:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by pespin 22 Mar '23

22 Mar '23
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Patch Set 1: (1 comment) File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/32014/comment/5ddc5d3f_77bcb170 PS1, Line 157: msgb_v_put(msg, (tag << 4) | (val[0] & 0xf)); here's the shift in the encoding path, as expected. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 22 Mar 2023 12:28:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: Fix parsing of TLV_TYPE_SINGLE_TV
by pespin 22 Mar '23

22 Mar '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/32014 ) Change subject: Fix parsing of TLV_TYPE_SINGLE_TV ...................................................................... Fix parsing of TLV_TYPE_SINGLE_TV The decoding path of TLV_TYPE_SINGLE_TV is wrong, since it is not shifting right the tag before using it. On the other hand, the encoding path (tlv_encode_one) is doing that, so it is clear there's a bug. It seems that in order to workaround the bug some IEs in gsm_04_08.h (TS 24.008 and TS 44.018) were defined incorrectly (eg 0x80) while the spec clearly assigns eg. "8" to it, and makes sure no full byte IEI collides. Some other IEIs like GSM48_IE_GMM_CIPH_CKSN which are also of the same type were already correctly defined as 0x08. Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 --- M include/osmocom/gsm/protocol/gsm_04_08.h M src/gsm/tlv_parser.c 2 files changed, 25 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/32014/1 diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 66aa135..07ce09a 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1734,6 +1734,10 @@ #define GSM48_IE_FRQSHORT_AFTER 0x02 #define GSM48_IE_MUL_RATE_CFG 0x03 /* 10.5.2.21aa */ #define GSM48_IE_FREQ_L_AFTER 0x05 +#define GSM48_IE_GROUP_CIP_SEQ 0x08 +#define GSM48_IE_CIP_MODE_SET 0x09 +#define GSM48_IE_GPRS_RESUMPT 0xc0 +#define GSM48_IE_SYNC_IND 0x0d #define GSM48_IE_MSLOT_DESC 0x10 #define GSM48_IE_CHANMODE_2 0x11 #define GSM48_IE_FRQSHORT_BEFORE 0x12 @@ -1775,20 +1779,16 @@ #define GSM48_IE_START_TIME 0x7c #define GSM48_IE_INDIVIDUAL_PRIORITIES 0x7c /* 44.018 Section 9.1.7 */ #define GSM48_IE_TIMING_ADVANCE 0x7d -#define GSM48_IE_GROUP_CIP_SEQ 0x80 -#define GSM48_IE_CIP_MODE_SET 0x90 -#define GSM48_IE_GPRS_RESUMPT 0xc0 -#define GSM48_IE_SYNC_IND 0xd0 /* System Information 4 (types are equal IEs above) */ #define GSM48_IE_CBCH_CHAN_DESC 0x64 #define GSM48_IE_CBCH_MOB_AL 0x72 /* Additional MM elements */ +#define GSM48_IE_PRIORITY_LEV 0x08 #define GSM48_IE_LOCATION_AREA 0x13 #define GSM48_IE_AUTN 0x20 #define GSM48_IE_AUTH_RES_EXT 0x21 #define GSM48_IE_AUTS 0x22 -#define GSM48_IE_PRIORITY_LEV 0x80 #define GSM48_IE_FOLLOW_ON_PROC 0xa1 #define GSM48_IE_CTS_PERMISSION 0xa2 diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index de76688..f60da8c 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -241,7 +241,7 @@ *o_tag = tag; /* single octet TV IE */ - if (def->def[tag & 0xf0].type == TLV_TYPE_SINGLE_TV) { + if (def->def[(tag & 0xf0) >> 4].type == TLV_TYPE_SINGLE_TV) { *o_tag = tag & 0xf0; *o_val = buf; *o_len = 1; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I799e35dc8d4d153fa63bf50563a5482cdf4de2d7 Gerrit-Change-Number: 32014 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in libosmocore[master]: logging: add log level cache
by laforge 22 Mar '23

22 Mar '23
Attention is currently required from: Hoernchen. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633 ) Change subject: logging: add log level cache ...................................................................... Patch Set 9: (1 comment) Patchset: PS9: ping? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de> Gerrit-Comment-Date: Wed, 22 Mar 2023 12:14:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmo-bts[master]: osmo-bts-trx: properly activate [CBCH/]BCCH/CCCH
by fixeria 22 Mar '23

22 Mar '23
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/31716 ) Change subject: osmo-bts-trx: properly activate [CBCH/]BCCH/CCCH ...................................................................... osmo-bts-trx: properly activate [CBCH/]BCCH/CCCH The timeslot carrying BCCH/CCCH on C0 is a bit special in a way that it's being activated implicitly - there is no explicit RSL CHANnel ACTIVation for that. This is why we have TRX_CHAN_FLAG_AUTO_ACTIVE, which marks sub-channels of BCCH/CCCH in the trx_chan_desc[]. The upcoming patch changes the burst buffer allocation strategy, so that the memory is allocated on channel activation and then free()d on channel release. This patch facilitates that by making the activation/deactivation logic consistent for all sub-channels. Change-Id: Id0c70d6a2b777a5117c85149bfa1b3a997299d1d Related: OS#1572 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c 4 files changed, 121 insertions(+), 58 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified fixeria: Verified diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index dcb357f..69e3b00 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -58,6 +58,7 @@ /* lchans 0..3 are SDCCH in combined channel configuration, use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ #define CCCH_LCHAN 4 +#define CBCH_LCHAN 2 #define TRX_NR_TS 8 #define TS_MAX_LCHAN 8 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 40b4293..01e8e2b 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -5,13 +5,6 @@ #include <osmo-bts/gsm_data.h> -/* Whether a logical channel must be activated automatically */ -#define TRX_CHAN_FLAG_AUTO_ACTIVE (1 << 0) - -/* FIXME: we should actually activate 'auto-active' channels */ -#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_set][(br)->tsc] @@ -192,6 +185,9 @@ /*! \brief set all matching logical channels active/inactive */ int trx_sched_set_lchan(struct gsm_lchan *lchan, uint8_t chan_nr, uint8_t link_id, bool active); +/*! \brief set all logical channels of BCCH/CCCH active/inactive */ +int trx_sched_set_bcch_ccch(struct gsm_lchan *lchan, bool active); + /*! \brief set mode of all matching logical channels to given mode(s) */ int trx_sched_set_mode(struct gsm_bts_trx_ts *ts, uint8_t chan_nr, uint8_t rsl_cmode, uint8_t tch_mode, int codecs, uint8_t codec0, uint8_t codec1, diff --git a/src/common/scheduler.c b/src/common/scheduler.c index f19257e..25aefe8 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -150,7 +150,6 @@ .desc = "Frequency correction channel", /* Tx only, frequency correction bursts */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .dl_fn = tx_fcch_fn, }, [TRXC_SCH] = { @@ -158,7 +157,6 @@ .desc = "Synchronization channel", /* Tx only, synchronization bursts */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .dl_fn = tx_sch_fn, }, [TRXC_BCCH] = { @@ -169,7 +167,6 @@ /* Tx only, xCCH convolutional coding (3GPP TS 05.03, section 4.4), * regular interleaving (3GPP TS 05.02, clause 7, table 3): * a L2 frame is interleaved over 4 consecutive bursts. */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, }, @@ -179,7 +176,6 @@ .chan_nr = RSL_CHAN_RACH, /* Rx only, RACH convolutional coding (3GPP TS 05.03, section 4.6). */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .ul_fn = rx_rach_fn, }, [TRXC_CCCH] = { @@ -190,7 +186,6 @@ /* Tx only, xCCH convolutional coding (3GPP TS 05.03, section 4.4), * regular interleaving (3GPP TS 05.02, clause 7, table 3): * a L2 frame is interleaved over 4 consecutive bursts. */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, }, @@ -575,7 +570,6 @@ .chan_nr = RSL_CHAN_OSMO_CBCH4, /* Tx only, same as for TRXC_BCCH (xCCH), see above. */ - .flags = TRX_CHAN_FLAG_AUTO_ACTIVE, .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, }, @@ -1062,6 +1056,52 @@ } } +static void _trx_sched_set_lchan(struct gsm_lchan *lchan, + enum trx_chan_type chan, + bool active) +{ + struct l1sched_ts *l1ts = lchan->ts->priv; + struct l1sched_chan_state *chan_state; + + OSMO_ASSERT(l1ts != NULL); + chan_state = &l1ts->chan_state[chan]; + + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "%s %s\n", + (active) ? "Activating" : "Deactivating", + trx_chan_desc[chan].name); + + /* free burst memory, to cleanly start with burst 0 */ + if (chan_state->dl_bursts) { + talloc_free(chan_state->dl_bursts); + chan_state->dl_bursts = NULL; + } + if (chan_state->ul_bursts) { + talloc_free(chan_state->ul_bursts); + chan_state->ul_bursts = NULL; + } + if (chan_state->ul_bursts_prev) { + talloc_free(chan_state->ul_bursts_prev); + chan_state->ul_bursts_prev = NULL; + } + + if (active) { + /* Clean up everything */ + memset(chan_state, 0, sizeof(*chan_state)); + + /* Bind to generic 'struct gsm_lchan' */ + chan_state->lchan = lchan; + } else { + chan_state->ho_rach_detect = 0; + + /* Remove pending Tx prims belonging to this lchan */ + trx_sched_queue_filter(&l1ts->dl_prims, + trx_chan_desc[chan].chan_nr, + trx_chan_desc[chan].link_id); + } + + chan_state->active = active; +} + /* setting all logical channels given attributes to active/inactive */ int trx_sched_set_lchan(struct gsm_lchan *lchan, uint8_t chan_nr, uint8_t link_id, bool active) { @@ -1069,7 +1109,6 @@ uint8_t tn = L1SAP_CHAN2TS(chan_nr); uint8_t ss = l1sap_chan2ss(chan_nr); bool found = false; - int i; if (!l1ts) { LOGPLCHAN(lchan, DL1C, LOGL_ERROR, "%s lchan with uninitialized scheduler structure\n", @@ -1083,48 +1122,15 @@ chan_nr &= ~RSL_CHAN_OSMO_VAMOS_MASK; /* look for all matching chan_nr/link_id */ - for (i = 0; i < _TRX_CHAN_MAX; i++) { - struct l1sched_chan_state *chan_state = &l1ts->chan_state[i]; - - if (trx_chan_desc[i].chan_nr != (chan_nr & RSL_CHAN_NR_MASK)) + for (enum trx_chan_type chan = 0; chan < _TRX_CHAN_MAX; chan++) { + if (trx_chan_desc[chan].chan_nr != (chan_nr & RSL_CHAN_NR_MASK)) continue; - if (trx_chan_desc[i].link_id != link_id) + if (trx_chan_desc[chan].link_id != link_id) continue; - if (chan_state->active == active) + if (l1ts->chan_state[chan].active == active) continue; found = true; - - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "%s %s\n", - (active) ? "Activating" : "Deactivating", - trx_chan_desc[i].name); - /* free burst memory, to cleanly start with burst 0 */ - if (chan_state->dl_bursts) { - talloc_free(chan_state->dl_bursts); - chan_state->dl_bursts = NULL; - } - if (chan_state->ul_bursts) { - talloc_free(chan_state->ul_bursts); - chan_state->ul_bursts = NULL; - } - if (chan_state->ul_bursts_prev) { - talloc_free(chan_state->ul_bursts_prev); - chan_state->ul_bursts_prev = NULL; - } - - if (active) { - /* Clean up everything */ - memset(chan_state, 0, sizeof(*chan_state)); - - /* Bind to generic 'struct gsm_lchan' */ - chan_state->lchan = lchan; - } else { - chan_state->ho_rach_detect = 0; - - /* Remove pending Tx prims belonging to this lchan */ - trx_sched_queue_filter(&l1ts->dl_prims, chan_nr, link_id); - } - - chan_state->active = active; + _trx_sched_set_lchan(lchan, chan, active); } /* disable handover detection (on deactivation) */ @@ -1134,6 +1140,31 @@ return found ? 0 : -EINVAL; } +int trx_sched_set_bcch_ccch(struct gsm_lchan *lchan, bool active) +{ + struct l1sched_ts *l1ts = lchan->ts->priv; + static const enum trx_chan_type chans[] = { + TRXC_FCCH, + TRXC_SCH, + TRXC_BCCH, + TRXC_RACH, + TRXC_CCCH, + }; + + if (!l1ts) + return -EINVAL; + + for (unsigned int i = 0; i < ARRAY_SIZE(chans); i++) { + enum trx_chan_type chan = chans[i]; + + if (l1ts->chan_state[chan].active == active) + continue; + _trx_sched_set_lchan(lchan, chan, active); + } + + return 0; +} + /* setting all logical channels given attributes to active/inactive */ int trx_sched_set_mode(struct gsm_bts_trx_ts *ts, uint8_t chan_nr, uint8_t rsl_cmode, uint8_t tch_mode, int codecs, uint8_t codec0, uint8_t codec1, @@ -1277,7 +1308,7 @@ return 0; /* check if channel is active */ - if (!TRX_CHAN_IS_ACTIVE(&l1ts->chan_state[chan], chan)) + if (!l1ts->chan_state[chan].active) return -EINVAL; /* There is no burst, just for logging */ @@ -1334,7 +1365,7 @@ l1cs = &l1ts->chan_state[br->chan]; /* check if channel is active */ - if (!TRX_CHAN_IS_ACTIVE(l1cs, br->chan)) + if (!l1cs->active) return; /* Training Sequence Code and Set */ @@ -1523,7 +1554,7 @@ func = trx_chan_desc[bi->chan].ul_fn; /* check if channel is active */ - if (!TRX_CHAN_IS_ACTIVE(l1cs, bi->chan)) { + if (!l1cs->active) { /* handle noise measurements on dedicated and idle channels */ if (TRX_CHAN_IS_DEDIC(bi->chan) || bi->chan == TRXC_IDLE) trx_sched_noise_meas(l1cs, bi); diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 2b0c723..2ed1868 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -270,11 +270,26 @@ if (rc) return NM_NACK_RES_NOTAVAIL; - /* activate lchan for CCCH */ - if (pchan == GSM_PCHAN_CCCH || pchan == GSM_PCHAN_CCCH_SDCCH4 || - pchan == GSM_PCHAN_CCCH_SDCCH4_CBCH) { + /* activate lchans for [CBCH/]BCCH/CCCH */ + switch (pchan) { + case GSM_PCHAN_SDCCH8_SACCH8C_CBCH: + /* using RSL_CHAN_OSMO_CBCH4 is correct here, because the scheduler + * does not distinguish between SDCCH/4+CBCH abd SDCCH/8+CBCH. */ + trx_sched_set_lchan(&ts->lchan[CBCH_LCHAN], + RSL_CHAN_OSMO_CBCH4, LID_DEDIC, true); + break; + case GSM_PCHAN_CCCH_SDCCH4_CBCH: + trx_sched_set_lchan(&ts->lchan[CBCH_LCHAN], + RSL_CHAN_OSMO_CBCH4, LID_DEDIC, true); + /* fall-through */ + case GSM_PCHAN_CCCH_SDCCH4: + case GSM_PCHAN_CCCH: + trx_sched_set_bcch_ccch(&ts->lchan[CCCH_LCHAN], true); ts->lchan[CCCH_LCHAN].rel_act_kind = LCHAN_REL_ACT_OML; lchan_set_state(&ts->lchan[CCCH_LCHAN], LCHAN_S_ACTIVE); + break; + default: + break; } slottype = transceiver_chan_types[pchan]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/31716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id0c70d6a2b777a5117c85149bfa1b3a997299d1d Gerrit-Change-Number: 31716 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-MessageType: merged
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • ...
  • 365
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.