aboutsummaryrefslogtreecommitdiffstats
path: root/src/pdch_ul_controller.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-03-24 14:06:15 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2021-03-24 17:14:19 +0100
commitc1f38c7f0b72c7cf701cb8d9a0a0ed996538d1f6 (patch)
tree11cec78b9c21f62285e6a74fcf4edda6d49cfb7e /src/pdch_ul_controller.c
parentade9c2f553e99edbd0856b2c63ad1a71e8318e89 (diff)
Track scheduled UL blocks through USF
This way PCU can now detect whether scheduled UL blocks through USF were never received. This allows in a follow-up patch to start increasing N3101 properly. Related: OS#5033 Change-Id: Ia99c9edad6e5bd837e9baeb4fb2683b227887957
Diffstat (limited to 'src/pdch_ul_controller.c')
-rw-r--r--src/pdch_ul_controller.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c
index f7b23357..c865f59a 100644
--- a/src/pdch_ul_controller.c
+++ b/src/pdch_ul_controller.c
@@ -164,7 +164,10 @@ static int pdch_ulc_add_node(struct pdch_ulc *ulc, struct pdch_ulc_node *item)
int pdch_ulc_reserve_tbf_usf(struct pdch_ulc *ulc, uint32_t fn, struct gprs_rlcmac_ul_tbf *ul_tbf)
{
- return 0; /* TODO: implement */
+ struct pdch_ulc_node *item = _alloc_node(ulc, fn);
+ item->type = PDCH_ULC_NODE_TBF_USF;
+ item->tbf_usf.ul_tbf = ul_tbf;
+ return pdch_ulc_add_node(ulc, item);
}
int pdch_ulc_reserve_tbf_poll(struct pdch_ulc *ulc, uint32_t fn, struct gprs_rlcmac_tbf *tbf)
@@ -255,7 +258,10 @@ void pdch_ulc_expire_fn(struct pdch_ulc *ulc, uint32_t fn)
switch (item->type) {
case PDCH_ULC_NODE_TBF_USF:
- /* TODO: increase N3...*/
+ LOGPDCH(ulc->pdch, DRLCMAC, LOGL_INFO,
+ "Timeout for registered USF (FN=%u): %s\n",
+ item->fn, tbf_name((struct gprs_rlcmac_tbf *)item->tbf_usf.ul_tbf));
+ /* TODO: increase N3101 */
break;
case PDCH_ULC_NODE_TBF_POLL:
LOGPDCH(ulc->pdch, DRLCMAC, LOGL_NOTICE,