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 2023

  • 1 participants
  • 1843 discussions
[S] Change in libosmo-sccp[master]: asp: Apply SCTP primary address changes after the ASP was started
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria, pespin. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/34609?usp=email ) Change subject: asp: Apply SCTP primary address changes after the ASP was started ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/34609?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2beb597b2e98d8983177fb21882a461219b3aa58 Gerrit-Change-Number: 34609 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:22:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmo-gprs[master]: rlcmac: migrate from fn_cmp() to gsm0502_fncmp()
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34627?usp=email ) Change subject: rlcmac: migrate from fn_cmp() to gsm0502_fncmp() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34627?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I3030d00c6881713a088b1739b2b5ba77bac84e46 Gerrit-Change-Number: 34627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:18:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-bts[master]: meas: lchan_meas_sub_num_expected(): handle CSD modes
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria, laforge. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/34596?usp=email ) Change subject: meas: lchan_meas_sub_num_expected(): handle CSD modes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34596?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba5314dc89d65ab4a3706b6ef11994b6fa95162c Gerrit-Change-Number: 34596 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:17:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-bts[master]: meas: ts45008_83_is_sub(): properly handle CSD modes
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria, laforge. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/34595?usp=email ) Change subject: meas: ts45008_83_is_sub(): properly handle CSD modes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34595?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3b1e27be2dece3605657fd91d7addebb1e554e8 Gerrit-Change-Number: 34595 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:15:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-bts[master]: meas: fix ts45008_83_is_sub(): DTX is permitted on TCH/F sign
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/34594?usp=email ) Change subject: meas: fix ts45008_83_is_sub(): DTX is permitted on TCH/F sign ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34594?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I91cfd8f561eb47a5fc48c0682d56331a1d69aded Gerrit-Change-Number: 34594 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:13:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-bts[master]: meas: handle VAMOS specific chan modes
by osmith 04 Oct '23

04 Oct '23
Attention is currently required from: fixeria. osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/34593?usp=email ) Change subject: meas: handle VAMOS specific chan modes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/34593?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8ecaf87c7cda4c10dd411e7539382274715bce57 Gerrit-Change-Number: 34593 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Wed, 04 Oct 2023 08:12:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmo-gprs[master]: rlcmac: migrate from fn_cmp() to gsm0502_fncmp()
by fixeria 03 Oct '23

03 Oct '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34627?usp=email ) Change subject: rlcmac: migrate from fn_cmp() to gsm0502_fncmp() ...................................................................... rlcmac: migrate from fn_cmp() to gsm0502_fncmp() Change-Id: I3030d00c6881713a088b1739b2b5ba77bac84e46 Depends: libosmocore.git I9590f2e836fc48650decf1564b6ab46306c4fe2d Depends: libosmocore.git Ie8bb9c49c6f81b8f4a1766547d6943f9880d1186 --- M include/osmocom/gprs/rlcmac/sched.h M src/rlcmac/pdch_ul_controller.c M src/rlcmac/tbf_dl_ass_fsm.c M src/rlcmac/tbf_ul_ass_fsm.c 4 files changed, 27 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/27/34627/1 diff --git a/include/osmocom/gprs/rlcmac/sched.h b/include/osmocom/gprs/rlcmac/sched.h index a90cbc1..9e03c01 100644 --- a/include/osmocom/gprs/rlcmac/sched.h +++ b/include/osmocom/gprs/rlcmac/sched.h @@ -20,20 +20,6 @@ return f == 0 || f == 4 || f == 8; } -#define GSM_MAX_FN_THRESH (GSM_MAX_FN >> 1) -/* 0: equal, -1: fn1 BEFORE fn2, 1: fn1 AFTER fn2 */ -static inline int fn_cmp(uint32_t fn1, uint32_t fn2) -{ - if (fn1 == fn2) - return 0; - /* FN1 goes before FN2: */ - if ((fn1 < fn2 && (fn2 - fn1) < GSM_MAX_FN_THRESH) || - (fn1 > fn2 && (fn1 - fn2) > GSM_MAX_FN_THRESH)) - return -1; - /* FN1 goes after FN2: */ - return 1; -} - static inline uint32_t fn2bn(uint32_t fn) { return (fn % 52) / 4; diff --git a/src/rlcmac/pdch_ul_controller.c b/src/rlcmac/pdch_ul_controller.c index 7c5e41a..b6859b1 100644 --- a/src/rlcmac/pdch_ul_controller.c +++ b/src/rlcmac/pdch_ul_controller.c @@ -22,6 +22,7 @@ #include <osmocom/core/linuxlist.h> #include <osmocom/core/linuxrbtree.h> #include <osmocom/gsm/gsm_utils.h> +#include <osmocom/gsm/gsm0502.h> #include <osmocom/gprs/rlcmac/pdch_ul_controller.h> #include <osmocom/gprs/rlcmac/rlcmac_private.h> @@ -61,7 +62,7 @@ while (node) { it = rb_entry(node, struct gprs_rlcmac_pdch_ulc_node, node); - res = fn_cmp(it->fn, fn); + res = gsm0502_fncmp(it->fn, fn); if (res > 0) /* it->fn AFTER fn */ node = node->rb_left; else if (res < 0) /* it->fn BEFORE fn */ @@ -105,7 +106,7 @@ it = container_of(*n, struct gprs_rlcmac_pdch_ulc_node, node); parent = *n; - res = fn_cmp(item->fn, it->fn); + res = gsm0502_fncmp(item->fn, it->fn); if (res < 0) { /* item->fn "BEFORE" it->fn */ n = &((*n)->rb_left); } else if (res > 0) { /* item->fn "AFTER" it->fn */ @@ -180,7 +181,7 @@ struct rb_node *first; while ((first = rb_first(&ulc->tree_root))) { item = container_of(first, struct gprs_rlcmac_pdch_ulc_node, node); - res = fn_cmp(item->fn, fn); + res = gsm0502_fncmp(item->fn, fn); if (res > 0) /* item->fn AFTER fn */ break; if (res < 0) { /* item->fn BEFORE fn */ diff --git a/src/rlcmac/tbf_dl_ass_fsm.c b/src/rlcmac/tbf_dl_ass_fsm.c index 9acf723..fec375f 100644 --- a/src/rlcmac/tbf_dl_ass_fsm.c +++ b/src/rlcmac/tbf_dl_ass_fsm.c @@ -24,6 +24,7 @@ #include <osmocom/core/tdef.h> #include <osmocom/core/fsm.h> #include <osmocom/core/bitvec.h> +#include <osmocom/gsm/gsm0502.h> #include <osmocom/gprs/rlcmac/types.h> #include <osmocom/gprs/rlcmac/tbf_dl_ass_fsm.h> @@ -141,7 +142,7 @@ return; memcpy(&ctx->iaro, ev_ccch_imm_ass->iaro, sizeof(ctx->iaro)); if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_ccch_imm_ass->fn) > 0) + gsm0502_fncmp(ctx->tbf_starting_time, ev_ccch_imm_ass->fn) > 0) tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_WAIT_TBF_STARTING_TIME); else tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_COMPL); @@ -152,7 +153,7 @@ return; memcpy(&ctx->dl_block, ev_pacch_pkt_ass->dl_block, sizeof(ctx->dl_block)); if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_pacch_pkt_ass->fn) > 0) + gsm0502_fncmp(ctx->tbf_starting_time, ev_pacch_pkt_ass->fn) > 0) tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_WAIT_TBF_STARTING_TIME); else tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_COMPL); @@ -175,7 +176,7 @@ return; memcpy(&ctx->iaro, ev_ccch_imm_ass->iaro, sizeof(ctx->iaro)); if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_ccch_imm_ass->fn) > 0) + gsm0502_fncmp(ctx->tbf_starting_time, ev_ccch_imm_ass->fn) > 0) tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_WAIT_TBF_STARTING_TIME); else tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_COMPL); @@ -186,7 +187,7 @@ return; memcpy(&ctx->dl_block, ev_pacch_pkt_ass->dl_block, sizeof(ctx->dl_block)); if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_pacch_pkt_ass->fn) > 0) + gsm0502_fncmp(ctx->tbf_starting_time, ev_pacch_pkt_ass->fn) > 0) tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_WAIT_TBF_STARTING_TIME); else tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_COMPL); diff --git a/src/rlcmac/tbf_ul_ass_fsm.c b/src/rlcmac/tbf_ul_ass_fsm.c index b1be58c..5957d35 100644 --- a/src/rlcmac/tbf_ul_ass_fsm.c +++ b/src/rlcmac/tbf_ul_ass_fsm.c @@ -303,7 +303,7 @@ if (handle_imm_ass(ctx, ev_rx_ccch_imm_ass_ctx) < 0) return; if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_rx_ccch_imm_ass_ctx->fn) > 0) { + gsm0502_fncmp(ctx->tbf_starting_time, ev_rx_ccch_imm_ass_ctx->fn) > 0) { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_WAIT_TBF_STARTING_TIME1); return; } @@ -338,7 +338,7 @@ if (handle_imm_ass(ctx, ev_rx_ccch_imm_ass_ctx) < 0) return; if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, ev_rx_ccch_imm_ass_ctx->fn) > 0) { + gsm0502_fncmp(ctx->tbf_starting_time, ev_rx_ccch_imm_ass_ctx->fn) > 0) { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_WAIT_TBF_STARTING_TIME1); return; } @@ -399,14 +399,14 @@ /* We need to wait at least until sending the PKT CTRL * ACK (in the old CTRL TS) before completing the * assignment and using the new TS assignment. */ - if (!ctx->tbf_starting_time_exists && fn_cmp(ctx->tbf_starting_time, next_blk) < 0) { + if (!ctx->tbf_starting_time_exists && gsm0502_fncmp(ctx->tbf_starting_time, next_blk) < 0) { ctx->tbf_starting_time_exists = true; ctx->tbf_starting_time = next_blk; } } if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, d->fn) > 0) { + gsm0502_fncmp(ctx->tbf_starting_time, d->fn) > 0) { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_WAIT_TBF_STARTING_TIME2); } else { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_COMPL); @@ -460,14 +460,14 @@ /* We need to wait at least until sending the PKT CTRL * ACK (in the old CTRL TS) before completing the * assignment and using the new TS assignment. */ - if (!ctx->tbf_starting_time_exists && fn_cmp(ctx->tbf_starting_time, next_blk) < 0) { + if (!ctx->tbf_starting_time_exists && gsm0502_fncmp(ctx->tbf_starting_time, next_blk) < 0) { ctx->tbf_starting_time_exists = true; ctx->tbf_starting_time = next_blk; } } if (ctx->tbf_starting_time_exists && - fn_cmp(ctx->tbf_starting_time, d->fn) > 0) { + gsm0502_fncmp(ctx->tbf_starting_time, d->fn) > 0) { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_WAIT_TBF_STARTING_TIME2); } else { tbf_ul_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_UL_ASS_ST_COMPL); @@ -732,7 +732,7 @@ default: OSMO_ASSERT(0); } - res = fn_cmp(fn, ul_tbf->ul_ass_fsm.tbf_starting_time); + res = gsm0502_fncmp(fn, ul_tbf->ul_ass_fsm.tbf_starting_time); if (res < 0) {/* fn BEFORE tbf_starting_time */ LOGPTBFUL(ul_tbf, LOGL_DEBUG, "TS=%" PRIu8 " FN=%u Waiting for tbf_starting_time=%u\n", ts_nr, fn, ul_tbf->ul_ass_fsm.tbf_starting_time); -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34627?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I3030d00c6881713a088b1739b2b5ba77bac84e46 Gerrit-Change-Number: 34627 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in osmo-bsc[master]: ASCI: Add System Information 10 support
by Jenkins Builder 03 Oct '23

03 Oct '23
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/34626?usp=email ) Change subject: ASCI: Add System Information 10 support ...................................................................... Patch Set 1: (8 comments) File src/osmo-bsc/system_information.c: Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/7fbe1416_422ea8dc PS1, Line 1422: struct gsm48_system_information_type_10 *si10 = (struct gsm48_system_information_type_10*)data; "(foo*)" should be "(foo *)" Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/1018d1fc_937af272 PS1, Line 1433: .data_len = len - sizeof(*si10), code indent should use tabs where possible Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/ed90faab_503ef7a3 PS1, Line 1433: .data_len = len - sizeof(*si10), please, no spaces at the start of a line Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/a7d9392d_9cc2ef23 PS1, Line 1434: .data = si10->rest_octets, code indent should use tabs where possible Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/ec327412_c7944527 PS1, Line 1434: .data = si10->rest_octets, please, no spaces at the start of a line Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/5dba1358_7a767b41 PS1, Line 1435: }; code indent should use tabs where possible Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/b5286d70_b5d00035 PS1, Line 1435: }; please, no spaces at the start of a line Robot Comment from checkpatch (run ID jenkins-gerrit-lint-11614): https://gerrit.osmocom.org/c/osmo-bsc/+/34626/comment/b03672ea_d1d12624 PS1, Line 1441: /* If we have gernerated SI5 with seperate SI5 list, the used frequency indexes refer to it. */ 'seperate' may be misspelled - perhaps 'separate'? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/34626?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icd3101e6dd935a57f003253aaef400c2cf95a0c3 Gerrit-Change-Number: 34626 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 03 Oct 2023 20:06:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmo-bsc[master]: ASCI: Make neigh_list_get_arfcn() available to other users
by jolly 03 Oct '23

03 Oct '23
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/34625?usp=email ) Change subject: ASCI: Make neigh_list_get_arfcn() available to other users ...................................................................... ASCI: Make neigh_list_get_arfcn() available to other users The error logging message within this function is moved to the user neigh_list_get_arfcn(). Change-Id: Ia8a1dca4837536129d17e7784b892bcb75b9ca4b --- M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/gsm_04_08_rr.c 2 files changed, 42 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/34625/1 diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index 9a9956b..7c6111c 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -37,6 +37,7 @@ int gsm48_send_uplink_busy(struct gsm_lchan *lchan); int gsm48_send_uplink_free(struct gsm_lchan *lchan, uint8_t acc_bit, uint8_t *uic); int gsm48_rx_rr_modif_ack(struct msgb *msg); +int neigh_list_get_arfcn(struct gsm_bts *bts, const struct bitvec *nbv, unsigned int idx); int gsm48_parse_meas_rep(struct gsm_meas_rep *rep, struct msgb *msg); struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 2c9f7e9..1c9a59e 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -854,7 +854,7 @@ * 2) SI*ter entries (if available) * ARFCN 0 is at the end of each sub list. * Both sub lists are stored in one bitvec (nbv), iterate twice through it. */ -static int neigh_list_get_arfcn(struct gsm_bts *bts, const struct bitvec *nbv, unsigned int idx) +int neigh_list_get_arfcn(struct gsm_bts *bts, const struct bitvec *nbv, unsigned int idx) { unsigned int arfcn, i = 0; @@ -893,10 +893,11 @@ if (bitvec_get_bit_pos(nbv, 0) == ONE && !band_compatible(bts, 0) && i == idx) return 0; - LOGP(DRR, LOGL_ERROR, "Invalid BCCH channel list index %d in measurement report\n", idx); - return 0; + return -EINVAL; } +#define INVAL_INDEX_STR "Invalid BCCH channel list index %d in measurement report\n" + int gsm48_parse_meas_rep(struct gsm_meas_rep *rep, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); @@ -904,6 +905,7 @@ struct gsm_bts *bts = msg->lchan->ts->trx->bts; struct bitvec *nbv; struct gsm_meas_rep_cell *mrc; + int rc; if (gh->msg_type != GSM48_MT_RR_MEAS_REP) return -EINVAL; @@ -938,7 +940,10 @@ mrc = &rep->cell[0]; mrc->rxlev = data[3] & 0x3f; mrc->neigh_idx = data[4] >> 3; - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = ((data[4] & 0x07) << 3) | (data[5] >> 5); if (rep->num_cell < 2) return 0; @@ -946,7 +951,10 @@ mrc = &rep->cell[1]; mrc->rxlev = ((data[5] & 0x1f) << 1) | (data[6] >> 7); mrc->neigh_idx = (data[6] >> 2) & 0x1f; - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = ((data[6] & 0x03) << 4) | (data[7] >> 4); if (rep->num_cell < 3) return 0; @@ -954,7 +962,10 @@ mrc = &rep->cell[2]; mrc->rxlev = ((data[7] & 0x0f) << 2) | (data[8] >> 6); mrc->neigh_idx = (data[8] >> 1) & 0x1f; - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = ((data[8] & 0x01) << 5) | (data[9] >> 3); if (rep->num_cell < 4) return 0; @@ -962,7 +973,10 @@ mrc = &rep->cell[3]; mrc->rxlev = ((data[9] & 0x07) << 3) | (data[10] >> 5); mrc->neigh_idx = data[10] & 0x1f; - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = data[11] >> 2; if (rep->num_cell < 5) return 0; @@ -970,7 +984,10 @@ mrc = &rep->cell[4]; mrc->rxlev = ((data[11] & 0x03) << 4) | (data[12] >> 4); mrc->neigh_idx = ((data[12] & 0xf) << 1) | (data[13] >> 7); - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = (data[13] >> 1) & 0x3f; if (rep->num_cell < 6) return 0; @@ -978,7 +995,10 @@ mrc = &rep->cell[5]; mrc->rxlev = ((data[13] & 0x01) << 5) | (data[14] >> 3); mrc->neigh_idx = ((data[14] & 0x07) << 2) | (data[15] >> 6); - mrc->arfcn = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + rc = neigh_list_get_arfcn(bts, nbv, mrc->neigh_idx); + if (rc < 0) + LOGP(DRR, LOGL_ERROR, INVAL_INDEX_STR, mrc->neigh_idx); + mrc->arfcn = rc; mrc->bsic = data[15] & 0x3f; return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/34625?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia8a1dca4837536129d17e7784b892bcb75b9ca4b Gerrit-Change-Number: 34625 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in osmo-bsc[master]: ASCI: Add System Information 10 support
by jolly 03 Oct '23

03 Oct '23
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/34626?usp=email ) Change subject: ASCI: Add System Information 10 support ...................................................................... ASCI: Add System Information 10 support A timer is used to wait some seconds before sending SI 10 to all BTS. This ensures that all channels are established by the MSC, before sending a complete list of VGCS/VBS neighbor cells for a call. For each BTS, an SI 10 is gerated with all other neighbor BTS. The SI 10 will only define neighbor cells within the same BSC, because it does not know about neighbor cells within other BSCs. Change-Id: Icd3101e6dd935a57f003253aaef400c2cf95a0c3 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/system_information.h M src/osmo-bsc/system_information.c M src/osmo-bsc/vgcs_fsm.c 4 files changed, 313 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/34626/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 275e4f1..7c6df9f 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -436,6 +436,8 @@ bool msc_ack; /* List of VGCS/VBS "resource controling" connections */ struct llist_head chan_list; + /* Timer to send SI 10 */ + struct osmo_timer_list si10_timer; } vgcs_call; /* VGCS/VBS "resource controling" connection */ diff --git a/include/osmocom/bsc/system_information.h b/include/osmocom/bsc/system_information.h index f74ef6d..f8f79a4 100644 --- a/include/osmocom/bsc/system_information.h +++ b/include/osmocom/bsc/system_information.h @@ -11,6 +11,7 @@ int generate_cell_chan_alloc(struct gsm_bts *bts); int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); int gsm_generate_si(struct gsm_bts *bts, enum osmo_sysinfo_type type); +int gsm_generate_si10(uint8_t *data, size_t len, struct gsm_subscriber_connection *conn); size_t si2q_earfcn_count(const struct osmo_earfcn_si2q *e); unsigned range1024_p(unsigned n); unsigned range512_q(unsigned m); diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 94205aa..f03b95b 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1246,6 +1246,265 @@ return l2_plen + rc; } +static int si10_rest_octets_encode(struct gsm_bts *s_bts, struct bitvec *bv, struct gsm_bts *n_bts, uint8_t index) +{ + /* The BA-IND must be equal to the BA-IND in SI5*. */ + /* <BA ind : bit(1)> */ + bitvec_set_bit(bv, 1); + + /* Do we have neighbor cells ? */ + /* { L <spare padding> | H <neighbour information> } */ + if (!n_bts) + return 0; + bitvec_set_bit(bv, H); + + /* <first frequency: bit(5)> */ + bitvec_set_uint(bv, index, 5); + + /* <bsic : bit(6)> */ + bitvec_set_uint(bv, n_bts->bsic, 6); + + /* We do not provide empty cell information. */ + /* { H <cell parameters> | L } */ + bitvec_set_bit(bv, H); + + /* If cell is barred, we do not need further cell info. */ + /* <cell barred> | L <further cell info> */ + if (n_bts->si_common.rach_control.cell_bar) { + /* H */ + bitvec_set_bit(bv, H); + /* We are done with the first cell info. */ + return 0; + } + bitvec_set_bit(bv, L); + + /* If LA is different for serving cell, we need to add CRH. */ + /* { H <cell reselect hysteresis : bit(3)> | L } */ + if (s_bts->location_area_code != n_bts->location_area_code) { + bitvec_set_bit(bv, H); + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.cell_resel_hyst, 3); + } else + bitvec_set_bit(bv, L); + + /* <ms txpwr max cch : bit(5)> */ + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.ms_txpwr_max_ccch, 5); + + /* <rxlev access min : bit(6)> */ + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.rxlev_acc_min, 6); + + /* <cell reselect offset : bit(6)> */ + if (n_bts->si_common.cell_ro_sel_par.present) + bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.cell_resel_off, 6); + else + bitvec_set_uint(bv, 0, 6); + + /* <temporary offset : bit(3)> */ + if (n_bts->si_common.cell_ro_sel_par.present) + bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.temp_offs, 3); + else + bitvec_set_uint(bv, 0, 3); + + /* <penalty time : bit(5)> */ + if (n_bts->si_common.cell_ro_sel_par.present) + bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.penalty_time, 5); + else + bitvec_set_uint(bv, 0, 5); + + /* We are done with the first cell info. */ + return 0; +} + +static int si10_rest_octets_encode_other(struct gsm_bts *s_bts, struct bitvec *bv, struct gsm_bts *l_bts, + struct gsm_bts *n_bts, uint8_t last_index, uint8_t index) +{ + int rc; + + /* If the bv buffer would overflow, then the bits are not written. Each bitvec_set_* call will return + * an error code. This error is returned with this function. */ + + /* { H <info field> } */ + bitvec_set_bit(bv, H); + + /* How many frequency indices do we skip? */ + /* <next frequency>** L <differential cell info> */ + while ((last_index = (last_index + 1) & 0x1f) != index) { + /* H */ + bitvec_set_bit(bv, H); + } + bitvec_set_bit(bv, L); + + /* If NCC is equal, just send BCC, otherwise send complete BSIC. */ + /* { H <BCC : bit(3)> | L <bsic : bit(6)> } */ + if ((l_bts->bsic & 0x38) == (n_bts->bsic & 0x38)) + bitvec_set_uint(bv, n_bts->bsic & 0x07, 3); + else + bitvec_set_uint(bv, n_bts->bsic, 6); + + /* We do not provide empty cell information. */ + /* { H <cell parameters> | L } */ + bitvec_set_bit(bv, H); + + /* If cell is barred, we do not need further cell info. */ + /* <cell barred> | L <further cell info> */ + if (n_bts->si_common.rach_control.cell_bar) { + /* H */ + rc = bitvec_set_bit(bv, H); + /* We are done with the other cell info. */ + return rc; + } + bitvec_set_bit(bv, L); + + /* If LA is different for serving cell, we need to add CRH. */ + /* { H <cell reselect hysteresis : bit(3)> | L } */ + if (s_bts->location_area_code != n_bts->location_area_code) { + bitvec_set_bit(bv, H); + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.cell_resel_hyst, 3); + } else + bitvec_set_bit(bv, L); + + /* { H <ms txpwr max cch : bit(5)> | L } */ + if (l_bts->si_common.cell_sel_par.ms_txpwr_max_ccch != n_bts->si_common.cell_sel_par.ms_txpwr_max_ccch) { + bitvec_set_bit(bv, H); + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.ms_txpwr_max_ccch, 5); + } else + bitvec_set_bit(bv, L); + + /* { H <rxlev access min : bit(6)> | L } */ + if (l_bts->si_common.cell_sel_par.rxlev_acc_min != n_bts->si_common.cell_sel_par.rxlev_acc_min) { + bitvec_set_bit(bv, H); + bitvec_set_uint(bv, n_bts->si_common.cell_sel_par.rxlev_acc_min, 6); + } else + bitvec_set_bit(bv, L); + + /* { H <cell reselect offset : bit(6)> | L } */ + if (l_bts->si_common.cell_ro_sel_par.present != n_bts->si_common.cell_ro_sel_par.present || + (n_bts->si_common.cell_ro_sel_par.present && + l_bts->si_common.cell_ro_sel_par.cell_resel_off != n_bts->si_common.cell_ro_sel_par.cell_resel_off)) { + bitvec_set_bit(bv, H); + if (n_bts->si_common.cell_ro_sel_par.present) + bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.cell_resel_off, 6); + else + bitvec_set_uint(bv, 0, 6); + } else + bitvec_set_bit(bv, L); + + /* { H <temporary offset : bit(3)> | L } */ + if (l_bts->si_common.cell_ro_sel_par.present != n_bts->si_common.cell_ro_sel_par.present || + (n_bts->si_common.cell_ro_sel_par.present && + l_bts->si_common.cell_ro_sel_par.temp_offs != n_bts->si_common.cell_ro_sel_par.temp_offs)) { + bitvec_set_bit(bv, H); + if (n_bts->si_common.cell_ro_sel_par.present) + bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.temp_offs, 3); + else + bitvec_set_uint(bv, 0, 3); + } else + bitvec_set_bit(bv, L); + + /* { H <penalty time : bit(5)> | L } */ + if (l_bts->si_common.cell_ro_sel_par.present != n_bts->si_common.cell_ro_sel_par.present || + (n_bts->si_common.cell_ro_sel_par.present && + l_bts->si_common.cell_ro_sel_par.penalty_time != n_bts->si_common.cell_ro_sel_par.penalty_time)) { + bitvec_set_bit(bv, H); + if (n_bts->si_common.cell_ro_sel_par.present) + rc = bitvec_set_uint(bv, n_bts->si_common.cell_ro_sel_par.penalty_time, 5); + else + rc = bitvec_set_uint(bv, 0, 5); + } else + rc = bitvec_set_bit(bv, L); + + /* We are done with the other cell info. */ + return rc; +} + +/* Generate SI 10 and return the number of bits used in the rest octet. */ +int gsm_generate_si10(uint8_t *data, size_t len, struct gsm_subscriber_connection *conn) +{ + struct gsm48_system_information_type_10 *si10 = (struct gsm48_system_information_type_10*)data; + struct bitvec *nbv; + struct gsm_bts *s_bts = conn->lchan->ts->trx->bts, *n_bts, *l_bts; + int i, last_i; + int arfcn; + bool any_neighbor = false; + unsigned int save_cur_bit; + struct gsm_subscriber_connection *c; + int rc; + + struct bitvec bv = { + .data_len = len - sizeof(*si10), + .data = si10->rest_octets, + }; + + si10->rr_short_pd = 0; /* 3GPP TS 24.007 §11.3.2.1 */ + si10->msg_type = GSM48_MT_RR_SH_SI10; + si10->l2_header = 0; /* 3GPP TS 44.006 §6.4a */ + + /* If we have gernerated SI5 with seperate SI5 list, the used frequency indexes refer to it. */ + if (s_bts->neigh_list_manual_mode == NL_MODE_MANUAL_SI5SEP) + nbv = &s_bts->si_common.si5_neigh_list; + else + nbv = &s_bts->si_common.neigh_list; + + for (i = 0; i < 32; i++) { + arfcn = neigh_list_get_arfcn(s_bts, nbv, i); + /* End of list */ + if (arfcn < 0) + break; + /* Is this neighbour used for this group call? */ + n_bts = NULL; + llist_for_each_entry(c, &conn->vgcs_chan.call->vgcs_call.chan_list, vgcs_chan.list) { + if (c == conn) + continue; + if (!c->lchan) + continue; + if (c->lchan->ts->trx->bts->c0->arfcn != arfcn) + continue; + n_bts = c->lchan->ts->trx->bts; + break; + } + if (n_bts) { + if (!any_neighbor) { + /* First neighbor, so generate rest octets with first cell info. */ + LOGP(DRR, LOGL_INFO, "SI 10 with cell ID %d.\n", n_bts->cell_identity); + rc = si10_rest_octets_encode(s_bts, &bv, n_bts, i); + if (rc < 0) + return rc; + any_neighbor = true; + } else { + /* Save current position, so we can restore to last position in case of failure. */ + save_cur_bit = bv.cur_bit; + /* Nth neighbor, so add rest octets with differential cell info. */ + LOGP(DRR, LOGL_INFO, "Append cell ID %d to SI 10.\n", n_bts->cell_identity); + rc = si10_rest_octets_encode_other(s_bts, &bv, l_bts, n_bts, last_i, i); + if (rc < 0) { + LOGP(DRR, LOGL_INFO, "Skip cell ID %d, SI 10 would overflow.\n", + n_bts->cell_identity); + /* Resore last position. */ + bv.cur_bit = save_cur_bit; + break; + } + } + last_i = i; + l_bts = n_bts; + } + } + + /* If no neighbor exists, generate rest octets without any neighbor info. */ + if (!any_neighbor) { + LOGP(DRR, LOGL_INFO, "SI 10 without any neighbor cell.\n"); + rc = si10_rest_octets_encode(s_bts, &bv, NULL, 0); + if (rc < 0) + return rc; + } + + /* Do spare padding. We cannot do it earlier, because encoding might corrupt it if differenctial cell info + * does not fit into the message. */ + while ((bv.cur_bit & 7)) + bitvec_set_bit(&bv, L); + memset(bv.data + bv.cur_bit / 8, GSM_MACBLOCK_PADDING, bv.data_len - bv.cur_bit / 8); + + return len; +} + static int generate_si13(enum osmo_sysinfo_type t, struct gsm_bts *bts) { struct gsm48_system_information_type_13 *si13 = diff --git a/src/osmo-bsc/vgcs_fsm.c b/src/osmo-bsc/vgcs_fsm.c index 8969d4f..0b3ba91 100644 --- a/src/osmo-bsc/vgcs_fsm.c +++ b/src/osmo-bsc/vgcs_fsm.c @@ -53,6 +53,7 @@ #include <osmocom/bsc/gsm_04_08_rr.h> #include <osmocom/bsc/bts_trx.h> #include <osmocom/bsc/bts.h> +#include <osmocom/bsc/system_information.h> #define S(x) (1 << (x)) @@ -66,6 +67,9 @@ : ("VBS callref %s, cell %s: " fmt), \ gsm44068_group_id_string(conn->vgcs_chan.call_ref), conn->vgcs_chan.ci_str, ##args) +#define SI10_TIMER 3, 0 +#define SI10_LENGTH 21 + const char *gsm44068_group_id_string(uint32_t callref) { static char string[9]; @@ -129,6 +133,27 @@ * VGCS call FSM */ +static void si10_timer_cb(void *data) +{ + struct gsm_subscriber_connection *conn = data, *c; + uint8_t si10[SI10_LENGTH]; + int rc; + + LOG_CALL(conn, LOGL_DEBUG, "SI 10 timer fires, sending SI 10 towards BTS.\n"); + + /* Go through all channels. */ + llist_for_each_entry(c, &conn->vgcs_call.chan_list, vgcs_chan.list) { + /* There is an lchan! */ + OSMO_ASSERT(c->lchan); + /* Encode SI 10 for this channel. Skip, if it fails. */ + rc = gsm_generate_si10(si10, sizeof(si10), c); + if (rc < 0) + continue; + /* Add SI 10 to SACCH of this channel c. */ + rsl_sacch_info_modify(c->lchan, RSL_SYSTEM_INFO_10, si10, SI10_LENGTH); + } +} + static void vgcs_call_detach_and_destroy(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct gsm_subscriber_connection *conn = fi->priv, *c; @@ -150,6 +175,9 @@ /* Remove pointer of FSM. */ conn->vgcs_call.fi = NULL; + + /* Stop SI 10 timer, if running. */ + osmo_timer_del(&conn->vgcs_call.si10_timer); } static void vgcs_call_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -167,6 +195,8 @@ conn->vgcs_call.ff.as_ind_link = 0; conn->vgcs_call.ff.bss_res = 0; conn->vgcs_call.ff.tcp = 0; + /* Start timer to send SI 10 to BTS when it fires. */ + osmo_timer_schedule(&conn->vgcs_call.si10_timer, SI10_TIMER); /* Acknowlege the call. */ bsc_tx_setup_ack(conn, &conn->vgcs_call.ff); break; @@ -550,6 +580,9 @@ /* Init L3 queue. */ INIT_LLIST_HEAD(&conn->vgcs_call.l3_queue); + /* Setup timer. */ + osmo_timer_setup(&conn->vgcs_call.si10_timer, si10_timer_cb, conn); + osmo_fsm_inst_dispatch(conn->vgcs_call.fi, VGCS_EV_SETUP, NULL); return 0; reject: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/34626?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icd3101e6dd935a57f003253aaef400c2cf95a0c3 Gerrit-Change-Number: 34626 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • ...
  • 185
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.