diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-10-12 20:05:37 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-10-12 20:07:19 +0200 |
commit | ffa2918bc55c25e3aa3e514e4bd6a22856b61d0e (patch) | |
tree | 58bca02c97e02bf4f7447688de9c7f4515608fe2 | |
parent | 32744c8916ade6e6fb571113ae0ce74c2c45f007 (diff) |
pdch: rcv_data_block: Avoid releasing ULC entry if expecting something else on UL
Let's only release PDCH ULC entry if it was indeed what we expected.
In other case, time it out.
Change-Id: I1537587f5ee801c633784691b576ebb1ed521e95
-rw-r--r-- | src/pdch.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/pdch.cpp b/src/pdch.cpp index ca3a0ea1..68bc69df 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -982,7 +982,9 @@ int gprs_rlcmac_pdch::rcv_data_block(uint8_t *data, uint8_t data_len, uint32_t f if (node) { switch (node->type) { case PDCH_ULC_NODE_TBF_USF: - if (tbf != node->tbf_usf.ul_tbf) + if (tbf == node->tbf_usf.ul_tbf) + pdch_ulc_release_node(ulc, node); + else LOGPDCH(this, DRLCMACUL, LOGL_NOTICE, "FN=%" PRIu32 " " "Rx UL DATA from unexpected %s vs expected %s\n", fn, tbf_name(tbf), tbf_name(node->tbf_usf.ul_tbf)); @@ -998,7 +1000,6 @@ int gprs_rlcmac_pdch::rcv_data_block(uint8_t *data, uint8_t data_len, uint32_t f fn, tbf_name(tbf)); break; } - pdch_ulc_release_node(ulc, node); } else { LOGPDCH(this, DRLCMACUL, LOGL_NOTICE, "FN=%" PRIu32 " " "Rx UL DATA from unexpected %s\n", fn, tbf_name(tbf)); |