From 5d806d88e3a1e336e2f5a54af2b76447822821e0 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Tue, 5 Sep 2023 19:02:59 +0200 Subject: rlcmac: tbf_dl: Log with FN request of UL TBF through PKT DL ACK/NACK Change-Id: Ib81f1003361ca6501ce5a0e16ab2cdafc8ed66d3 --- include/osmocom/gprs/rlcmac/tbf_dl.h | 3 ++- src/rlcmac/sched.c | 4 ++-- src/rlcmac/tbf_dl.c | 15 ++++++++++----- tests/rlcmac/rlcmac_prim_test.err | 1 + 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/osmocom/gprs/rlcmac/tbf_dl.h b/include/osmocom/gprs/rlcmac/tbf_dl.h index fc75972..c77898a 100644 --- a/include/osmocom/gprs/rlcmac/tbf_dl.h +++ b/include/osmocom/gprs/rlcmac/tbf_dl.h @@ -45,7 +45,8 @@ 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(struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn); +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf, + const struct gprs_rlcmac_rts_block_ind *bi); 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/sched.c b/src/rlcmac/sched.c index faa9ff1..1620934 100644 --- a/src/rlcmac/sched.c +++ b/src/rlcmac/sched.c @@ -175,7 +175,7 @@ static struct msgb *sched_select_ctrl_msg(const struct gprs_rlcmac_rts_block_ind if (tbfs->poll_dl_ack_final_ack) { LOGRLCMAC(LOGL_DEBUG, "(ts=%u,fn=%u,usf=%u) Tx DL ACK/NACK FinalAck=1\n", bi->ts, bi->fn, bi->usf); - msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack_final_ack, bi->ts); + msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack_final_ack, bi); if (msg) return msg; } @@ -237,7 +237,7 @@ static struct msgb *sched_select_ctrl_msg(const struct gprs_rlcmac_rts_block_ind if (tbfs->poll_dl_ack) { LOGRLCMAC(LOGL_DEBUG, "(ts=%u,fn=%u,usf=%u) Tx DL ACK/NACK\n", bi->ts, bi->fn, bi->usf); - msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack, bi->ts); + msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack, bi); if (msg) return msg; } diff --git a/src/rlcmac/tbf_dl.c b/src/rlcmac/tbf_dl.c index b8d37a8..5ce8e6a 100644 --- a/src/rlcmac/tbf_dl.c +++ b/src/rlcmac/tbf_dl.c @@ -160,7 +160,8 @@ int gprs_rlcmac_dl_tbf_configure_l1ctl(struct gprs_rlcmac_dl_tbf *dl_tbf) return gprs_rlcmac_prim_call_down_cb(rlcmac_prim); } -struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn) +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf, + const struct gprs_rlcmac_rts_block_ind *bi) { struct msgb *msg; struct bitvec bv; @@ -179,11 +180,15 @@ struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf * queued to send and no active UL TBF (TS 44.060 8.1.2.5) */ if (!gre->ul_tbf && gprs_rlcmac_entity_have_tx_data_queued(gre)) { gre->ul_tbf = gprs_rlcmac_ul_tbf_alloc(gre); - rc = gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(gre->ul_tbf, dl_tbf, tn); - if (rc < 0) - LOGPTBFDL(dl_tbf, LOGL_ERROR, "Failed starting assignment of requested UL TBF (%d)\n", rc); - else + rc = gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(gre->ul_tbf, dl_tbf, bi->ts); + if (rc < 0) { + LOGPTBFDL(dl_tbf, LOGL_ERROR, "FN=%u TS=%u Failed starting assignment of requested UL TBF (%d)\n", + bi->fn, bi->ts, rc); + } else { + LOGPTBFDL(dl_tbf, LOGL_DEBUG, "FN=%u TS=%u Requesting UL TBF through PKT DL ACK/NACK\n", + bi->fn, bi->ts); chan_req = true; + } } /* Initialize a bit vector that uses allocated msgb as the data buffer. */ diff --git a/tests/rlcmac/rlcmac_prim_test.err b/tests/rlcmac/rlcmac_prim_test.err index 1fedbba..25653e0 100644 --- a/tests/rlcmac/rlcmac_prim_test.err +++ b/tests/rlcmac/rlcmac_prim_test.err @@ -994,6 +994,7 @@ DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START_FROM_DL_TBF 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}: state_chg to WAIT_PKT_UL_ASS +DLGLOBAL DEBUG TBF(DL:NR-0:TLLI-00000001) FN=21 TS=7 Requesting UL TBF through PKT DL ACK/NACK DLGLOBAL DEBUG TBF(DL:NR-0:TLLI-00000001) - SSN 1, V(N): "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIR" R=Received I=Invalid, FINAL_ACK=1 DLGLOBAL INFO TBF(DL:NR-0:TLLI-00000001) Starting T3192 (0 ms) DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request -- cgit v1.2.3