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

July 2023

  • 1 participants
  • 3051 discussions
[M] Change in libosmo-gprs[master]: rlcmac: tbf_dl: Implement T3190
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33554 ) Change subject: rlcmac: tbf_dl: Implement T3190 ...................................................................... rlcmac: tbf_dl: Implement T3190 Change-Id: I3f69fde298dcd64d30b9d648a96717a8378864c4 --- M include/osmocom/gprs/rlcmac/tbf_dl.h M src/rlcmac/rlcmac.c M src/rlcmac/tbf_dl.c M src/rlcmac/tbf_dl_fsm.c 4 files changed, 46 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/54/33554/1 diff --git a/include/osmocom/gprs/rlcmac/tbf_dl.h b/include/osmocom/gprs/rlcmac/tbf_dl.h index f398c0a..7fb3c9e 100644 --- a/include/osmocom/gprs/rlcmac/tbf_dl.h +++ b/include/osmocom/gprs/rlcmac/tbf_dl.h @@ -33,14 +33,18 @@ struct gprs_rlcmac_rlc_window *w; struct gprs_rlcmac_rlc_dl_window *dlw; }; + + struct osmo_timer_list t3190; }; struct gprs_rlcmac_dl_tbf *gprs_rlcmac_dl_tbf_alloc(struct gprs_rlcmac_entity *gre); void gprs_rlcmac_dl_tbf_free(struct gprs_rlcmac_dl_tbf *dl_tbf); +void gprs_rlcmac_dl_tbf_t3190_start(struct gprs_rlcmac_dl_tbf *dl_tbf); + int gprs_rlcmac_dl_tbf_configure_l1ctl(struct gprs_rlcmac_dl_tbf *dl_tbf); -struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(const struct gprs_rlcmac_dl_tbf *dl_tbf); +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf); int gprs_rlcmac_dl_tbf_rcv_data_block(struct gprs_rlcmac_dl_tbf *dl_tbf, const struct gprs_rlcmac_rlc_data_info *rlc, diff --git a/src/rlcmac/rlcmac.c b/src/rlcmac/rlcmac.c index 5cf4bb9..8a4153f 100644 --- a/src/rlcmac/rlcmac.c +++ b/src/rlcmac/rlcmac.c @@ -49,6 +49,7 @@ /* T3168: dynamically updated with what's received in BCCH SI13 */ { .T=3168, .default_val=5000, .unit = OSMO_TDEF_MS, .desc="Wait for PACKET UPLINK ASSIGNMENT (updated by BCCH SI13) (ms)" }, { .T=3182, .default_val=5, .unit = OSMO_TDEF_S, .desc="Wait for Acknowledgement (s)" }, + { .T=3190, .default_val=5, .unit = OSMO_TDEF_S, .desc="Wait for DL data blocks (s)" }, { 0 } /* empty item at the end */ }; diff --git a/src/rlcmac/tbf_dl.c b/src/rlcmac/tbf_dl.c index 570b0d7..c6205c3 100644 --- a/src/rlcmac/tbf_dl.c +++ b/src/rlcmac/tbf_dl.c @@ -27,6 +27,8 @@ #include <osmocom/gprs/rlcmac/rlcmac_enc.h> #include <osmocom/gprs/rlcmac/pdch_ul_controller.h> +static void gprs_rlcmac_dl_tbf_t3190_timer_cb(void *data); + struct gprs_rlcmac_dl_tbf *gprs_rlcmac_dl_tbf_alloc(struct gprs_rlcmac_entity *gre) { struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -51,6 +53,8 @@ dl_tbf->blkst = gprs_rlcmac_rlc_block_store_alloc(dl_tbf); OSMO_ASSERT(dl_tbf->blkst); + osmo_timer_setup(&dl_tbf->t3190, gprs_rlcmac_dl_tbf_t3190_timer_cb, dl_tbf); + return dl_tbf; err_tbf_destruct: @@ -70,6 +74,8 @@ tbf = dl_tbf_as_tbf(dl_tbf); gre = tbf->gre; + osmo_timer_del(&dl_tbf->t3190); + msgb_free(dl_tbf->llc_rx_msg); dl_tbf->llc_rx_msg = NULL; @@ -87,6 +93,21 @@ gprs_rlcmac_entity_dl_tbf_freed(gre, dl_tbf); } +static void gprs_rlcmac_dl_tbf_t3190_timer_cb(void *data) +{ + struct gprs_rlcmac_dl_tbf *dl_tbf = data; + + LOGPTBFDL(dl_tbf, LOGL_NOTICE, "Timeout of T3190\n"); + + gprs_rlcmac_dl_tbf_free(dl_tbf); +} + +void gprs_rlcmac_dl_tbf_t3190_start(struct gprs_rlcmac_dl_tbf *dl_tbf) +{ + unsigned long val_sec; + val_sec = osmo_tdef_get(g_rlcmac_ctx->T_defs, 3190, OSMO_TDEF_S, -1); + osmo_timer_schedule(&dl_tbf->t3190, val_sec, 0); +} static uint8_t dl_tbf_dl_slotmask(struct gprs_rlcmac_dl_tbf *dl_tbf) { @@ -113,7 +134,7 @@ return gprs_rlcmac_prim_call_down_cb(rlcmac_prim); } -struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(const struct gprs_rlcmac_dl_tbf *dl_tbf) +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf) { struct msgb *msg; struct bitvec bv; @@ -140,6 +161,10 @@ goto free_ret; } + /* Stop T3190 if transmitting final Downlink Ack/Nack */ + if (gprs_rlcmac_tbf_dl_state(dl_tbf) == GPRS_RLCMAC_TBF_DL_ST_FINISHED) + osmo_timer_del(&dl_tbf->t3190); + return msg; free_ret: @@ -214,7 +239,7 @@ { const struct gprs_rlcmac_rlc_block_info *rdbi; struct gprs_rlcmac_rlc_block *block; - + unsigned int block_idx; const uint16_t ws = gprs_rlcmac_rlc_window_ws(dl_tbf->w); LOGPTBFDL(dl_tbf, LOGL_DEBUG, "DL DATA TFI=%d received (V(Q)=%d .. V(R)=%d)\n", @@ -222,7 +247,8 @@ gprs_rlcmac_rlc_dl_window_v_q(dl_tbf->dlw), gprs_rlcmac_rlc_dl_window_v_r(dl_tbf->dlw)); - unsigned int block_idx; + /* Re-arm T3190: */ + gprs_rlcmac_dl_tbf_t3190_start(dl_tbf); /* Loop over num_blocks */ for (block_idx = 0; block_idx < rlc->num_data_blocks; block_idx++) { diff --git a/src/rlcmac/tbf_dl_fsm.c b/src/rlcmac/tbf_dl_fsm.c index 606b985..342256f 100644 --- a/src/rlcmac/tbf_dl_fsm.c +++ b/src/rlcmac/tbf_dl_fsm.c @@ -58,6 +58,8 @@ /* Configure DL TBF on the lower MAC side: */ gprs_rlcmac_dl_tbf_configure_l1ctl(ctx->dl_tbf); tbf_dl_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ST_FLOW); + /* FIXME: This should ideally be done after TbfStartTime has elapsed: */ + gprs_rlcmac_dl_tbf_t3190_start(ctx->dl_tbf); break; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I3f69fde298dcd64d30b9d648a96717a8378864c4 Gerrit-Change-Number: 33554 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in libosmo-gprs[master]: rlcmac: tbf_ul: Move to packet-idle state when T3164 triggers
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33552 ) Change subject: rlcmac: tbf_ul: Move to packet-idle state when T3164 triggers ...................................................................... rlcmac: tbf_ul: Move to packet-idle state when T3164 triggers TS 44.018 3.5.2.1.4: "The one phase packet access procedure is completed at a successful contention resolution. The mobile station has entered the packet transfer mode. Timer T3141 is stopped on the network side. Timer T3164 is stopped on the mobile station side." Change-Id: Ic7420a42e2e81effdde587d7e49acd66b404354c --- M include/osmocom/gprs/rlcmac/gre.h M include/osmocom/gprs/rlcmac/rlcmac_private.h M src/rlcmac/gre.c M src/rlcmac/rlcmac.c M src/rlcmac/tbf_dl_ass_fsm.c M src/rlcmac/tbf_ul_fsm.c M tests/rlcmac/rlcmac_prim_test.err M tests/rlcmac/rlcmac_prim_test.ok 8 files changed, 220 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/52/33552/1 diff --git a/include/osmocom/gprs/rlcmac/gre.h b/include/osmocom/gprs/rlcmac/gre.h index c976b4a..0e17836 100644 --- a/include/osmocom/gprs/rlcmac/gre.h +++ b/include/osmocom/gprs/rlcmac/gre.h @@ -24,6 +24,8 @@ struct gprs_rlcmac_dl_tbf *dl_tbf; struct gprs_rlcmac_ul_tbf *ul_tbf; + + bool freeing; /* Set to true during destructor */ }; struct gprs_rlcmac_entity *gprs_rlcmac_entity_alloc(uint32_t tlli); @@ -32,6 +34,7 @@ bool gprs_rlcmac_entity_in_packet_idle_mode(const struct gprs_rlcmac_entity *gre); bool gprs_rlcmac_entity_in_packet_transfer_mode(const struct gprs_rlcmac_entity *gre); bool gprs_rlcmac_entity_have_tx_data_queued(const struct gprs_rlcmac_entity *gre); +int gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(struct gprs_rlcmac_entity *gre); int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, uint8_t *ll_pdu, unsigned int ll_pdu_len, enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio); diff --git a/include/osmocom/gprs/rlcmac/rlcmac_private.h b/include/osmocom/gprs/rlcmac/rlcmac_private.h index 76fa3fd..0fefd11 100644 --- a/include/osmocom/gprs/rlcmac/rlcmac_private.h +++ b/include/osmocom/gprs/rlcmac/rlcmac_private.h @@ -90,6 +90,7 @@ struct gprs_rlcmac_entity *gprs_rlcmac_find_entity_by_imsi(const char *imsi); struct gprs_rlcmac_dl_tbf *gprs_rlcmac_find_dl_tbf_by_tfi(uint8_t dl_tfi); struct gprs_rlcmac_ul_tbf *gprs_rlcmac_find_ul_tbf_by_tfi(uint8_t ul_tfi); +int gprs_rlcmac_submit_l1ctl_pdch_rel_req(void); int gprs_rlcmac_handle_ccch_imm_ass(const struct gsm48_imm_ass *ia, uint32_t fn); int gprs_rlcmac_handle_ccch_pag_req1(const struct gsm48_paging1 *pag); int gprs_rlcmac_handle_ccch_pag_req2(const struct gsm48_paging2 *pag); diff --git a/src/rlcmac/gre.c b/src/rlcmac/gre.c index 6340437..9021faa 100644 --- a/src/rlcmac/gre.c +++ b/src/rlcmac/gre.c @@ -71,6 +71,8 @@ if (!gre) return; + gre->freeing = true; + gprs_rlcmac_tbf_dl_ass_fsm_destructor(&gre->dl_tbf_dl_ass_fsm); gprs_rlcmac_dl_tbf_free(gre->dl_tbf); gprs_rlcmac_ul_tbf_free(gre->ul_tbf); @@ -83,16 +85,68 @@ * Hence memory pointed by "dl_tbf" is already freed and shall not be accessed. */ void gprs_rlcmac_entity_dl_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_dl_tbf *dl_tbf) { - if (gre->dl_tbf == dl_tbf) - gre->dl_tbf = NULL; + OSMO_ASSERT(gre); + OSMO_ASSERT(gre->dl_tbf); + OSMO_ASSERT(dl_tbf); + + /* GRE is freeing (destructor being called) do nothing */ + if (gre->freeing) + return; + + if (gre->dl_tbf != dl_tbf) { + /* This may happen if we already have a new DL TBF allocated + * immediately prior to freeing the old one (PACCH assignment + * reusing resources of old one). Nothing to do, simply wait for + * new DL TBF to do its job. + */ + return; + } + + gre->dl_tbf = NULL; + + /* Nothing to do, we are still in packet-transfer-mode using UL TBF. */ + if (gre->ul_tbf) + return; + + /* we have no DL nor UL TBFs. Go back to PACKET-IDLE state, and start + * packet-access-procedure if we still have data to be transmitted. + */ + gprs_rlcmac_submit_l1ctl_pdch_rel_req(); + gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); } /* Called by ul_tbf destructor to inform the UL TBF pointer has been freed. * Hence memory pointed by "ul_tbf" is already freed and shall not be accessed. */ void gprs_rlcmac_entity_ul_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_ul_tbf *ul_tbf) { - if (gre->ul_tbf == ul_tbf) - gre->ul_tbf = NULL; + OSMO_ASSERT(gre); + OSMO_ASSERT(gre->ul_tbf); + OSMO_ASSERT(ul_tbf); + + /* GRE is freeing (destructor being called) do nothing */ + if (gre->freeing) + return; + + if (gre->ul_tbf != ul_tbf) { + /* This may happen if we already have a new UL TBF allocated + * immediately prior to freeing the old one (PACCH assignment + * reusing resources of old one). Nothing to do, simply wait for + * new UL TBF to do its job. + */ + return; + } + + gre->ul_tbf = NULL; + + /* Nothing to do, dl_tbf will eventually trigger request for UL TBF PACCH assignment. */ + if (gre->dl_tbf) + return; + + /* we have no DL nor UL TBFs. Go back to PACKET-IDLE state, and start + * packet-access-procedure if we still have data to be transmitted. + */ + gprs_rlcmac_submit_l1ctl_pdch_rel_req(); + gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); } /* TS 44.060 5.3 In packet idle mode: @@ -129,6 +183,27 @@ return gprs_rlcmac_llc_queue_size(gre->llc_queue) > 0; } +/* Create a new UL TBF and start Packet access procedure to get an UL assignment if needed */ +int gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(struct gprs_rlcmac_entity *gre) +{ + /* TS 44.060 5.3 "In packet idle mode, upper layers may require the + * transfer of a upper layer PDU, which implicitly triggers the + * establishment of a TBF and the transition to packet transfer mode." */ + if (!gprs_rlcmac_entity_in_packet_idle_mode(gre)) + return 0; + + if (!gprs_rlcmac_entity_have_tx_data_queued(gre)) + return 0; + + OSMO_ASSERT(!gre->ul_tbf); + /* We have data in the queue but we have no ul_tbf. Allocate one and start UL Assignment. */ + gre->ul_tbf = gprs_rlcmac_ul_tbf_alloc(gre); + if (!gre->ul_tbf) + return -ENOMEM; + /* We always use 1phase for now... */ + return gprs_rlcmac_tbf_ul_ass_start(gre->ul_tbf, GPRS_RLCMAC_TBF_UL_ASS_TYPE_1PHASE); +} + int gprs_rlcmac_entity_llc_enqueue(struct gprs_rlcmac_entity *gre, uint8_t *ll_pdu, unsigned int ll_pdu_len, enum osmo_gprs_rlcmac_llc_sapi sapi, uint8_t radio_prio) { @@ -138,19 +213,7 @@ if (rc < 0) return rc; - /* TS 44.060 5.3 "In packet idle mode, upper layers may require the - * transfer of a upper layer PDU, which implicitly triggers the - * establishment of a TBF and the transition to packet transfer mode." */ - if (gprs_rlcmac_entity_in_packet_idle_mode(gre)) { - OSMO_ASSERT(!gre->ul_tbf); - /* We have new data in the queue but we have no ul_tbf. Allocate one and start UL Assignment. */ - gre->ul_tbf = gprs_rlcmac_ul_tbf_alloc(gre); - if (!gre->ul_tbf) - return -ENOMEM; - /* We always use 1phase for now... */ - rc = gprs_rlcmac_tbf_ul_ass_start(gre->ul_tbf, GPRS_RLCMAC_TBF_UL_ASS_TYPE_1PHASE); - } - + rc = gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); return rc; } diff --git a/src/rlcmac/rlcmac.c b/src/rlcmac/rlcmac.c index b026048..5cf4bb9 100644 --- a/src/rlcmac/rlcmac.c +++ b/src/rlcmac/rlcmac.c @@ -189,6 +189,18 @@ return NULL; } +/* Request lower layers to go to packet-idle mode: */ +int gprs_rlcmac_submit_l1ctl_pdch_rel_req(void) +{ + struct osmo_gprs_rlcmac_prim *rlcmac_prim; + + rlcmac_prim = gprs_rlcmac_prim_alloc_l1ctl_pdch_rel_req(); + + LOGRLCMAC(LOGL_INFO, "Tx L1CTL-PDCH_REL.req\n"); + + return gprs_rlcmac_prim_call_down_cb(rlcmac_prim); +} + static int gprs_rlcmac_handle_ccch_imm_ass_ul_tbf(uint8_t ts_nr, uint32_t fn, const struct gsm48_imm_ass *ia, const IA_RestOctets_t *iaro) { int rc = -ENOENT; diff --git a/src/rlcmac/tbf_dl_ass_fsm.c b/src/rlcmac/tbf_dl_ass_fsm.c index 40bd17c..9acf723 100644 --- a/src/rlcmac/tbf_dl_ass_fsm.c +++ b/src/rlcmac/tbf_dl_ass_fsm.c @@ -202,22 +202,23 @@ static void st_compl_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gprs_rlcmac_tbf_dl_ass_fsm_ctx *ctx = (struct gprs_rlcmac_tbf_dl_ass_fsm_ctx *)fi->priv; - struct gprs_rlcmac_dl_tbf *dl_tbf; + struct gprs_rlcmac_dl_tbf *old_dl_tbf, *new_dl_tbf; - dl_tbf = gprs_rlcmac_dl_tbf_alloc(ctx->gre); + old_dl_tbf = ctx->gre->dl_tbf; + new_dl_tbf = gprs_rlcmac_dl_tbf_alloc(ctx->gre); /* Update TBF with allocated content: */ - memcpy(&dl_tbf->cur_alloc, &ctx->alloc, sizeof(ctx->alloc)); + memcpy(&new_dl_tbf->cur_alloc, &ctx->alloc, sizeof(ctx->alloc)); /* Replace old DL TBF with new one. 8.1.1.1.3: "the mobile station shall * release all ongoing downlink TBFs not addressed by this message and * shall act on the message. All ongoing uplink TBFs shall be maintained;" */ - gprs_rlcmac_dl_tbf_free(ctx->gre->dl_tbf); - ctx->gre->dl_tbf = dl_tbf; + ctx->gre->dl_tbf = new_dl_tbf; + gprs_rlcmac_dl_tbf_free(old_dl_tbf); /* Inform the main TBF state about the assignment completed: */ - osmo_fsm_inst_dispatch(dl_tbf->state_fsm.fi, GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL, NULL); + osmo_fsm_inst_dispatch(new_dl_tbf->state_fsm.fi, GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL, NULL); /* Go back to IDLE state. */ tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_IDLE); } diff --git a/src/rlcmac/tbf_ul_fsm.c b/src/rlcmac/tbf_ul_fsm.c index e713085..37d2e4a 100644 --- a/src/rlcmac/tbf_ul_fsm.c +++ b/src/rlcmac/tbf_ul_fsm.c @@ -97,7 +97,7 @@ { int rc; /* TS 44.060 sub-clause 7.1.4. Reinitiate the packet access procedure: - * Move to NEW state, start Ass and wait for GPRS_RLCMAC_TBF_UL_ASS_EV_START */ + * Move to NEW state, start Ass and wait for GPRS_RLCMAC_TBF_UL_ASS_EV_START */ tbf_ul_fsm_state_chg(ctx->fi, GPRS_RLCMAC_TBF_UL_ST_NEW); /* We always use 1phase for now... */ rc = gprs_rlcmac_tbf_ul_ass_start(ctx->ul_tbf, GPRS_RLCMAC_TBF_UL_ASS_TYPE_1PHASE); @@ -139,6 +139,8 @@ gprs_rlcmac_rlc_ul_window_mark_for_resend(ctx->ul_tbf->ulw); /* Make sure the lower layers realize this tbf_nr has no longer any assigned resource: */ release_ul_tbf(ctx); + /* Move back to CCCH */ + gprs_rlcmac_submit_l1ctl_pdch_rel_req(); } static void st_new(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/tests/rlcmac/rlcmac_prim_test.err b/tests/rlcmac/rlcmac_prim_test.err index ea4d2e5..5f8cbbb 100644 --- a/tests/rlcmac/rlcmac_prim_test.err +++ b/tests/rlcmac/rlcmac_prim_test.err @@ -69,6 +69,8 @@ DLGLOBAL INFO UL_TBF{RELEASING}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{RELEASING}: Deallocated +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly @@ -97,6 +99,8 @@ DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN @@ -119,6 +123,8 @@ DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN @@ -141,6 +147,8 @@ DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN @@ -165,7 +173,21 @@ DLGLOBAL INFO UL_TBF{FLOW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{FLOW}: Deallocated +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request +DLGLOBAL INFO UL_TBF{NEW}: Allocated +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START +DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START +DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a +DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request +DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated +DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: Deallocated +DLGLOBAL INFO UL_TBF{ASSIGN}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=1 (release) +DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO UL_TBF{ASSIGN}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly DLGLOBAL INFO DL_TBF_ASS{IDLE}: Allocated @@ -174,7 +196,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7c DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication @@ -207,39 +229,8 @@ DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START -DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START -DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7c -DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request -DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS -DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication -DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_ESTABLISH.request -DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: Received Event RX_CCCH_IMM_ASS -DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: ImmAss TFI=0 initCS=CS-2 startTimeFN=0 -DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: ImmAss DynamicAlloc (1phase access) ts_nr=7 usf=0 -DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: state_chg to COMPLETED -DLGLOBAL INFO UL_TBF{ASSIGN}: Received Event UL_ASS_COMPL -DLGLOBAL INFO UL_TBF{ASSIGN}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 ul_slotmask=0x80 -DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request -DLGLOBAL INFO UL_TBF{ASSIGN}: state_chg to FLOW -DLGLOBAL INFO UL_TBF_ASS{COMPLETED}: state_chg to IDLE -DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_RTS.indication -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Resending BSN 0 -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Copying 1 RLC blocks, 1 BSNs -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Copying data unit 0 (BSN=0 CV=15) -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) msg block (BSN 0, CS-2): 3c 01 01 00 00 23 42 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 71 62 f2 24 6c 84 44 04 00 -DLGLOBAL INFO UL_TBF{FLOW}: Received Event FIRST_UL_DATA_SENT -DLGLOBAL INFO UL_TBF{FLOW}: First UL block sent, stop T3164 -DLGLOBAL INFO UL_TBF{FLOW}: First UL block sent (1 phase access), start T3166 -DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) N3104 inc (1) -DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request -DLGLOBAL INFO UL_TBF{FLOW}: Timeout of T3166 -DLGLOBAL INFO UL_TBF{FLOW}: T3166 timeout attempts=2 -DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW -DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) -DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN @@ -269,10 +260,12 @@ DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) N3104 inc (1) DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL INFO UL_TBF{FLOW}: Timeout of T3166 -DLGLOBAL INFO UL_TBF{FLOW}: T3166 timeout attempts=3 +DLGLOBAL INFO UL_TBF{FLOW}: T3166 timeout attempts=2 DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN @@ -302,12 +295,49 @@ DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) N3104 inc (1) DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL INFO UL_TBF{FLOW}: Timeout of T3166 +DLGLOBAL INFO UL_TBF{FLOW}: T3166 timeout attempts=3 +DLGLOBAL INFO UL_TBF{FLOW}: state_chg to NEW +DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) +DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START +DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START +DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a +DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request +DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS +DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_ESTABLISH.request +DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: Received Event RX_CCCH_IMM_ASS +DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: ImmAss TFI=0 initCS=CS-2 startTimeFN=0 +DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: ImmAss DynamicAlloc (1phase access) ts_nr=7 usf=0 +DLGLOBAL INFO UL_TBF_ASS{WAIT_CCCH_IMM_ASS}: state_chg to COMPLETED +DLGLOBAL INFO UL_TBF{ASSIGN}: Received Event UL_ASS_COMPL +DLGLOBAL INFO UL_TBF{ASSIGN}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 ul_slotmask=0x80 +DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO UL_TBF{ASSIGN}: state_chg to FLOW +DLGLOBAL INFO UL_TBF_ASS{COMPLETED}: state_chg to IDLE +DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_RTS.indication +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Resending BSN 0 +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Copying 1 RLC blocks, 1 BSNs +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) Copying data unit 0 (BSN=0 CV=15) +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) msg block (BSN 0, CS-2): 3c 01 01 00 00 23 42 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 71 62 f2 24 6c 84 44 04 00 +DLGLOBAL INFO UL_TBF{FLOW}: Received Event FIRST_UL_DATA_SENT +DLGLOBAL INFO UL_TBF{FLOW}: First UL block sent, stop T3164 +DLGLOBAL INFO UL_TBF{FLOW}: First UL block sent (1 phase access), start T3166 +DLGLOBAL DEBUG TBF(UL:NR-0:TLLI-00002342) N3104 inc (1) +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request +DLGLOBAL INFO UL_TBF{FLOW}: Timeout of T3166 DLGLOBAL INFO UL_TBF{FLOW}: T3166 timeout attempts=4 DLGLOBAL NOTICE UL_TBF{FLOW}: TBF establishment failure (T3166 timeout attempts=4) DLGLOBAL INFO UL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO UL_TBF{FLOW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{FLOW}: Deallocated +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication DLGLOBAL DEBUG Rx SI13 from lower layers @@ -319,7 +349,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7b DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request @@ -460,10 +490,12 @@ DLGLOBAL INFO UL_TBF{FINISHED}: state_chg to NEW DLGLOBAL INFO UL_TBF{NEW}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7b +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request @@ -491,7 +523,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7a +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7b DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication @@ -547,6 +579,8 @@ DLGLOBAL INFO UL_TBF{FINISHED}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{FINISHED}: Deallocated +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL INFO Rx from upper layers: GRR-UNITDATA.request DLGLOBAL INFO TLLI=0x00002342 not found, creating entity on the fly @@ -655,6 +689,8 @@ DLGLOBAL INFO UL_TBF{FINISHED}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{FINISHED}: Deallocated +DLGLOBAL INFO Tx L1CTL-PDCH_REL.req +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication @@ -667,7 +703,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7b +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7e DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication @@ -776,7 +812,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN -DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7e +DLGLOBAL INFO UL_TBF_ASS{IDLE}: Send RACH.req ra=0x7c DLGLOBAL DEBUG Tx to lower layers: L1CTL-RACH.request DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_CCCH_IMM_ASS DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication diff --git a/tests/rlcmac/rlcmac_prim_test.ok b/tests/rlcmac/rlcmac_prim_test.ok index 12e5ece..a3e82c3 100644 --- a/tests/rlcmac/rlcmac_prim_test.ok +++ b/tests/rlcmac/rlcmac_prim_test.ok @@ -8,6 +8,7 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=8 ts=7 data_len=34 data=[00 01 02 1d 00 00 23 42 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=23 data=[40 04 00 00 8d 08 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ] test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_attach end === === test_ul_tbf_t3164_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set @@ -17,28 +18,34 @@ sys={5.000000}, mono={5.000000}: clock_override_add sys={5.000000}, mono={5.000000}: Expect T3164 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 sys={10.000000}, mono={10.000000}: clock_override_add sys={10.000000}, mono={10.000000}: Expect T3164 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x79 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 sys={15.000000}, mono={15.000000}: clock_override_add sys={15.000000}, mono={15.000000}: Expect T3164 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x78 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 sys={20.000000}, mono={20.000000}: clock_override_add sys={20.000000}, mono={20.000000}: Expect T3164 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a === test_ul_tbf_t3164_timeout end === +test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=1 ul_slotmask=0x00 === test_ul_tbf_t3166_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7c test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_up_cb(): Rx GMMRR-LLC_TRANSMITTED.indication TLLI=0x00002342 @@ -46,31 +53,35 @@ sys={5.000000}, mono={5.000000}: clock_override_add sys={5.000000}, mono={5.000000}: Expect T3166 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7c +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x79 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=4 ts=7 data_len=34 data=[3c 01 01 00 00 23 42 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 71 62 f2 24 6c 84 44 04 00 ] sys={10.000000}, mono={10.000000}: clock_override_add sys={10.000000}, mono={10.000000}: Expect T3166 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x79 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7d test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=4 ts=7 data_len=34 data=[3c 01 01 00 00 23 42 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 71 62 f2 24 6c 84 44 04 00 ] sys={15.000000}, mono={15.000000}: clock_override_add sys={15.000000}, mono={15.000000}: Expect T3166 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7d +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=4 ts=7 data_len=34 data=[3c 01 01 00 00 23 42 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 71 62 f2 24 6c 84 44 04 00 ] sys={20.000000}, mono={20.000000}: clock_override_add sys={20.000000}, mono={20.000000}: Expect T3166 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_t3166_timeout end === === test_ul_tbf_n3104_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 RTS 0: FN=8 @@ -99,7 +110,8 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=52 ts=7 data_len=34 data=[3c 01 02 1f 00 00 23 42 11 e5 10 00 e2 18 f2 01 c0 00 08 01 01 d5 71 00 00 08 29 26 24 00 00 00 00 00 ] RTS 11: FN=56 test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=56 ts=7 data_len=34 data=[00 01 04 3d 00 00 23 42 71 62 f2 24 6c 84 44 04 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 @@ -107,7 +119,7 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 === test_ul_tbf_t3182_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_up_cb(): Rx GMMRR-LLC_TRANSMITTED.indication TLLI=0x00002342 @@ -116,6 +128,7 @@ sys={5.000000}, mono={5.000000}: clock_override_add sys={5.000000}, mono={5.000000}: Expect T3182 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_t3182_timeout end === === test_ul_tbf_last_data_cv0_retrans_max start === sys={0.000000}, mono={0.000000}: clock_override_set @@ -133,11 +146,12 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=34 data=[00 00 02 1d 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] RTS 3: FN=26 test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=26 ts=7 data_len=34 data=[00 00 02 1d 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] === test_ul_tbf_last_data_cv0_retrans_max end === === test_ul_tbf_countdown_procedure start === sys={0.000000}, mono={0.000000}: clock_override_set -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7e test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_up_cb(): Rx GMMRR-LLC_TRANSMITTED.indication TLLI=0x00002342 @@ -158,7 +172,7 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 === test_ul_tbf_request_another_ul_tbf start === sys={0.000000}, mono={0.000000}: clock_override_set -test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7e +test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7c test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_ESTABLISH.request test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x80 test_rlcmac_prim_up_cb(): Rx GMMRR-LLC_TRANSMITTED.indication TLLI=0x00002342 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: Ic7420a42e2e81effdde587d7e49acd66b404354c Gerrit-Change-Number: 33552 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmo-gprs[master]: rlcmac: tbf_dl: Fix typo in event name
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33550 ) Change subject: rlcmac: tbf_dl: Fix typo in event name ...................................................................... rlcmac: tbf_dl: Fix typo in event name Change-Id: I089d8e5f0a3e8946cc78a0e9645a8d040aa7dddf --- M include/osmocom/gprs/rlcmac/tbf_dl_fsm.h M src/rlcmac/tbf_dl_ass_fsm.c M src/rlcmac/tbf_dl_fsm.c 3 files changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/50/33550/1 diff --git a/include/osmocom/gprs/rlcmac/tbf_dl_fsm.h b/include/osmocom/gprs/rlcmac/tbf_dl_fsm.h index 5458b68..d1527fc 100644 --- a/include/osmocom/gprs/rlcmac/tbf_dl_fsm.h +++ b/include/osmocom/gprs/rlcmac/tbf_dl_fsm.h @@ -23,7 +23,7 @@ enum tbf_dl_fsm_event { GPRS_RLCMAC_TBF_DL_EV_LAST_DL_DATA_RECVD, - GPRS_RLCMAC_TBF_UL_EV_DL_ASS_COMPL, + GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL, }; int gprs_rlcmac_tbf_dl_fsm_init(void); diff --git a/src/rlcmac/tbf_dl_ass_fsm.c b/src/rlcmac/tbf_dl_ass_fsm.c index 4bb6ae9..40bd17c 100644 --- a/src/rlcmac/tbf_dl_ass_fsm.c +++ b/src/rlcmac/tbf_dl_ass_fsm.c @@ -217,7 +217,7 @@ ctx->gre->dl_tbf = dl_tbf; /* Inform the main TBF state about the assignment completed: */ - osmo_fsm_inst_dispatch(dl_tbf->state_fsm.fi, GPRS_RLCMAC_TBF_UL_EV_DL_ASS_COMPL, NULL); + osmo_fsm_inst_dispatch(dl_tbf->state_fsm.fi, GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL, NULL); /* Go back to IDLE state. */ tbf_dl_ass_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ASS_ST_IDLE); } diff --git a/src/rlcmac/tbf_dl_fsm.c b/src/rlcmac/tbf_dl_fsm.c index 3ceea97..606b985 100644 --- a/src/rlcmac/tbf_dl_fsm.c +++ b/src/rlcmac/tbf_dl_fsm.c @@ -31,7 +31,7 @@ static const struct value_string tbf_dl_fsm_event_names[] = { { GPRS_RLCMAC_TBF_DL_EV_LAST_DL_DATA_RECVD, "LAST_DL_DATA_RECVD" }, - { GPRS_RLCMAC_TBF_UL_EV_DL_ASS_COMPL, "DL_ASS_COMPL" }, + { GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL, "DL_ASS_COMPL" }, { 0, NULL } }; @@ -54,7 +54,7 @@ { struct gprs_rlcmac_tbf_dl_fsm_ctx *ctx = (struct gprs_rlcmac_tbf_dl_fsm_ctx *)fi->priv; switch (event) { - case GPRS_RLCMAC_TBF_UL_EV_DL_ASS_COMPL: + case GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL: /* Configure DL TBF on the lower MAC side: */ gprs_rlcmac_dl_tbf_configure_l1ctl(ctx->dl_tbf); tbf_dl_fsm_state_chg(fi, GPRS_RLCMAC_TBF_DL_ST_FLOW); @@ -91,7 +91,7 @@ static struct osmo_fsm_state tbf_dl_fsm_states[] = { [GPRS_RLCMAC_TBF_DL_ST_NEW] = { .in_event_mask = - X(GPRS_RLCMAC_TBF_UL_EV_DL_ASS_COMPL), + X(GPRS_RLCMAC_TBF_DL_EV_DL_ASS_COMPL), .out_state_mask = X(GPRS_RLCMAC_TBF_DL_ST_FLOW), .name = "NEW", -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I089d8e5f0a3e8946cc78a0e9645a8d040aa7dddf Gerrit-Change-Number: 33550 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in osmo-mgw[master]: ASCI: Support conference briding with 1..n connections
by jolly 04 Jul '23

04 Jul '23
Attention is currently required from: jolly, dexter. Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548 to look at the new patch set (#2). Change subject: ASCI: Support conference briding with 1..n connections ...................................................................... ASCI: Support conference briding with 1..n connections An RTP bridge may have 1 or many endpoints. Each endpoint may receive, send or echo audio back. Because transcoding is not supported, it must be assumed that only connection receives RTP in a conference with more than 2 connections. A connection that receives RTP into the endpont will have "send" pointer set to (one of) the other connection that shall send out RTP. All connection that send RTP have "send_next" pointer set to the next or first connection that sends RTP. They are linked in a ring. Regular bridge with two connections: Each connection forwards audio towards the other connection and only towards the other connection. The "send_next" pointers are set to NULL or pointing to the other endpoint. connection A connection B ("sendrecv") ("sendrecv") conn->send ---------------------------> <------------------------------------- conn->send conn->send_next ----------------------> <------------------------------------- conn->send_next Conference bridge with three connections: Each connection forwards audio to itself and also towards all other connection. connection A connection B connection C ("confecho") ("confecho") ("confecho"); conn->send --\ conn->send --\ conn->send --\ <-----------/ <-----------/ <-----------/ conn->send_next --> conn->send_next --> <------------------------------------- conn->send_next The same conference bridge but without echo: Each connection forwards auto to all other connection but not to itself. connection A connection B connection C ("confecho") ("confecho") ("confecho"); conn->send -------> conn->send -------> <------------------------------------- conn->send conn->send_next --> conn->send_next --> <------------------------------------- conn->send_next Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_trunk.c 5 files changed, 190 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/48/33548/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a Gerrit-Change-Number: 33548 Gerrit-PatchSet: 2 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[L] Change in libosmo-abis[master]: e1d: reconnect to osmo-e1d after connection loss
by Jenkins Builder 04 Jul '23

04 Jul '23
Attention is currently required from: laforge, pespin, keith. Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32374 ) Change subject: e1d: reconnect to osmo-e1d after connection loss ...................................................................... Patch Set 13: (1 comment) File src/input/e1d.c: Robot Comment from checkpatch (run ID jenkins-gerrit-lint-8892): https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/0a4ce102_07637430 PS13, Line 342: * D_TSX_ALLOC_SIZE even though the connection is still fine. Since data is continously written (in 'continously' may be misspelled - perhaps 'continuously'? -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 Gerrit-Change-Number: 32374 Gerrit-PatchSet: 13 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: keith <keith(a)rhizomatica.org> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-CC: tnt <tnt(a)246tNt.com> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-Comment-Date: Tue, 04 Jul 2023 11:40:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[L] Change in libosmo-abis[master]: e1d: reconnect to osmo-e1d after connection loss
by dexter 04 Jul '23

04 Jul '23
Attention is currently required from: laforge, pespin, keith. dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32374 ) Change subject: e1d: reconnect to osmo-e1d after connection loss ...................................................................... Patch Set 13: (2 comments) File src/input/e1d.c: https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/55de0a3a_9384d756 PS11, Line 340: osmo_fsm > you would normally need to buffer any partial-read and wait until the remainder of the data is recei […] Done https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/e1a22b5f_bd0d5be0 PS11, Line 391: osmo_fsm > well, now you are dropping the data. […] Thanks for the detailed explanation. I have now added a FIXME note. As far as I understand this problem already existed before this patch as well. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 Gerrit-Change-Number: 32374 Gerrit-PatchSet: 13 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: keith <keith(a)rhizomatica.org> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-CC: tnt <tnt(a)246tNt.com> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-Comment-Date: Tue, 04 Jul 2023 11:40:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge <laforge(a)osmocom.org> Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[L] Change in libosmo-abis[master]: e1d: reconnect to osmo-e1d after connection loss
by dexter 04 Jul '23

04 Jul '23
Attention is currently required from: laforge, pespin, keith. Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 to look at the new patch set (#13). Change subject: e1d: reconnect to osmo-e1d after connection loss ...................................................................... e1d: reconnect to osmo-e1d after connection loss When osmo-e1d crashes while a line is in use the client process may experience not only a lost connection, it may also hang up in an endless loop that would also spam the logfile. The reason for this is that the e1d driver in libosmo-abis lacks mechanisms to detect when the connection to osmo-e1d gets lost. When osmo-e1d goes down the effects should be similar to those of a normal connection loss of an e1 line (cable pulled). So let's add an FSM that takes care of the recovery of the connection when it is lost. Also make sure that no havoc happens when the connection gets lost. Related: OS#5983 Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 --- M src/input/e1d.c 1 file changed, 271 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/74/32374/13 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 Gerrit-Change-Number: 32374 Gerrit-PatchSet: 13 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: keith <keith(a)rhizomatica.org> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-CC: tnt <tnt(a)246tNt.com> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-MessageType: newpatchset
1 0
0 0
[S] Change in libosmo-gprs[master]: rlcmac: tbf_fsl_fsm: Expect ev LAST_DL_DATA_RECVD in state FINISHED
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33549 ) Change subject: rlcmac: tbf_fsl_fsm: Expect ev LAST_DL_DATA_RECVD in state FINISHED ...................................................................... rlcmac: tbf_fsl_fsm: Expect ev LAST_DL_DATA_RECVD in state FINISHED Change-Id: Iff581e53cdbf9057b65c478f7ce9f3387c4a1646 --- M src/rlcmac/tbf_dl_fsm.c 1 file changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/49/33549/1 diff --git a/src/rlcmac/tbf_dl_fsm.c b/src/rlcmac/tbf_dl_fsm.c index 250b66c..3ceea97 100644 --- a/src/rlcmac/tbf_dl_fsm.c +++ b/src/rlcmac/tbf_dl_fsm.c @@ -80,6 +80,9 @@ { //struct gprs_rlcmac_tbf_dl_fsm_ctx *ctx = (struct gprs_rlcmac_tbf_dl_fsm_ctx *)fi->priv; switch (event) { + case GPRS_RLCMAC_TBF_DL_EV_LAST_DL_DATA_RECVD: + /* ignore, PCU is retransmitting last DL block (FBI=1) before we ACKed it */ + break; default: OSMO_ASSERT(0); } @@ -103,7 +106,8 @@ .action = st_flow, }, [GPRS_RLCMAC_TBF_DL_ST_FINISHED] = { - .in_event_mask = 0, + .in_event_mask = + X(GPRS_RLCMAC_TBF_DL_EV_LAST_DL_DATA_RECVD), .out_state_mask = 0, .name = "FINISHED", .action = st_finished, -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: Iff581e53cdbf9057b65c478f7ce9f3387c4a1646 Gerrit-Change-Number: 33549 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in osmo-mgw[master]: ASCI: Support conference briding with 1..n connections
by Jenkins Builder 04 Jul '23

04 Jul '23
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33548 ) Change subject: ASCI: Support conference briding with 1..n connections ...................................................................... Patch Set 1: (1 comment) File src/libosmo-mgcp/mgcp_network.c: Robot Comment from checkpatch (run ID jenkins-gerrit-lint-8889): https://gerrit.osmocom.org/c/osmo-mgw/+/33548/comment/717b1a70_04773b85 PS1, Line 1342: conn_dst = conn_dst->send_next; code indent should use tabs where possible -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a Gerrit-Change-Number: 33548 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 04 Jul 2023 11:12:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-mgw[master]: ASCI: Replace "priv" pointer of connection instance
by jolly 04 Jul '23

04 Jul '23
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33547 ) Change subject: ASCI: Replace "priv" pointer of connection instance ...................................................................... ASCI: Replace "priv" pointer of connection instance The pointer is preplaced by "send" pointer and "send_next" pointer. The "send" pointer points to the connection the received data is forwarded to for transmission. This is what the "priv" pointer was used for. The "send_next" pointer can be used to send RTP to multiple connections that are in a conference. This will be used by later patch. (see Chg-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a) Change-Id: Icefacf0f91ae068e4f0cd65244d92735045b7c26 --- M include/osmocom/mgcp/mgcp_conn.h M src/libosmo-mgcp/mgcp_iuup.c M src/libosmo-mgcp/mgcp_network.c 3 files changed, 29 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/33547/1 diff --git a/include/osmocom/mgcp/mgcp_conn.h b/include/osmocom/mgcp/mgcp_conn.h index 7ac40ab..eaf4663 100644 --- a/include/osmocom/mgcp/mgcp_conn.h +++ b/include/osmocom/mgcp/mgcp_conn.h @@ -137,8 +137,11 @@ struct mgcp_conn_rtp rtp; } u; - /*! pointer to optional private data */ - void *priv; + /*! pointer to (optional) destination of received payload */ + struct mgcp_conn *send; + + /*! pointer to (optional) next destination of payload */ + struct mgcp_conn *send_next; }; /* RTP connection related counters */ diff --git a/src/libosmo-mgcp/mgcp_iuup.c b/src/libosmo-mgcp/mgcp_iuup.c index 6ad62c8..36a8cae 100644 --- a/src/libosmo-mgcp/mgcp_iuup.c +++ b/src/libosmo-mgcp/mgcp_iuup.c @@ -51,11 +51,11 @@ * the connection to cache the destination connection pointer. */ struct mgcp_conn *conn_dst; - if (!conn->priv) { + if (!conn->send) { conn_dst = mgcp_find_dst_conn(conn); - conn->priv = conn_dst; + conn->send = conn_dst; } else { - conn_dst = (struct mgcp_conn *)conn->priv; + conn_dst = conn->send; } return conn_dst; } diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 33cd8af..8850670 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1330,11 +1330,11 @@ * Since list iterations are quite costly, we will figure out the * destination only once and use the optional private data pointer of * the connection to cache the destination connection pointer. */ - if (!conn->priv) { + if (!conn->send) { conn_dst = mgcp_find_dst_conn(conn); - conn->priv = conn_dst; + conn->send = conn_dst; } else { - conn_dst = (struct mgcp_conn *)conn->priv; + conn_dst = conn->send; } /* There is no destination conn, stop here */ @@ -1406,8 +1406,8 @@ * connections present when one connection is removed from the * endpoint. */ llist_for_each_entry(conn_cleanup, &endp->conns, entry) { - if (conn_cleanup->priv == conn) - conn_cleanup->priv = NULL; + if (conn_cleanup->send == conn) + conn_cleanup->send = NULL; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icefacf0f91ae068e4f0cd65244d92735045b7c26 Gerrit-Change-Number: 33547 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • ...
  • 306
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.