diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-03-24 14:06:15 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-03-24 17:14:19 +0100 |
commit | c1f38c7f0b72c7cf701cb8d9a0a0ed996538d1f6 (patch) | |
tree | 11cec78b9c21f62285e6a74fcf4edda6d49cfb7e /src/pdch_ul_controller.c | |
parent | ade9c2f553e99edbd0856b2c63ad1a71e8318e89 (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.c | 10 |
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, |