diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-06-07 18:13:23 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-06-07 18:16:55 +0200 |
commit | c6e911cf22f1d8bd587377b2e5ef2768367619e9 (patch) | |
tree | 6d018f26d57249f79c34ff1d23d009baf600b5fb /src | |
parent | 9c1db1738fca625e3bcc75a11c5742b90176e706 (diff) |
pdch: Log pdch_ulc reason upon rx of pkt ctrl ack
Change-Id: I7c7a421b1e9189e2814e9a28698d66655fc9ba60
Diffstat (limited to 'src')
-rw-r--r-- | src/pdch.cpp | 8 | ||||
-rw-r--r-- | src/pdch_ul_controller.c | 9 | ||||
-rw-r--r-- | src/pdch_ul_controller.h | 1 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/pdch.cpp b/src/pdch.cpp index cab81dfd..8e0a24af 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -333,7 +333,8 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); - LOGPTBF(tbf, LOGL_DEBUG, "RX: [PCU <- BTS] Packet Control Ack\n"); + LOGPTBF(tbf, LOGL_DEBUG, "FN=%" PRIu32 " Rx Packet Control Ack (reason=%s)\n", + fn, get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); pdch_ulc_release_fn(ulc, fn); /* check if this control ack belongs to packet uplink ack */ @@ -420,8 +421,9 @@ void gprs_rlcmac_pdch::rcv_control_ack(Packet_Control_Acknowledgement_t *packet, */ return; } - LOGPDCH(this, DRLCMAC, LOGL_ERROR, - "Error: received PACET CONTROL ACK at no request\n"); + LOGPDCH(this, DRLCMAC, LOGL_ERROR, "FN=%" PRIu32 " " + "Error: received PACKET CONTROL ACK at no request (reason=%s)\n", fn, + get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); } void gprs_rlcmac_pdch::rcv_control_dl_ack_nack(Packet_Downlink_Ack_Nack_t *ack_nack, uint32_t fn, struct pcu_l1_meas *meas) diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c index f8089ffb..e7a721c0 100644 --- a/src/pdch_ul_controller.c +++ b/src/pdch_ul_controller.c @@ -38,6 +38,15 @@ const struct value_string pdch_ul_node_names[] = { { 0, NULL } }; +const struct value_string pdch_ulc_tbf_poll_reason_names[] = { + { PDCH_ULC_POLL_UL_ASS, "UL_ASS" }, + { PDCH_ULC_POLL_DL_ASS, "DL_ASS" }, + { PDCH_ULC_POLL_UL_ACK, "UL_ACK" }, + { PDCH_ULC_POLL_DL_ACK, "DL_ACK" }, + { PDCH_ULC_POLL_CELL_CHG_CONTINUE, "CELL_CHG_CONTINUE" }, + { 0, NULL } +}; + #define GSM_MAX_FN_THRESH (GSM_MAX_FN >> 1) /* 0: equal, -1: fn1 BEFORE fn2, 1: fn1 AFTER fn2 */ static inline int fn_cmp(uint32_t fn1, uint32_t fn2) diff --git a/src/pdch_ul_controller.h b/src/pdch_ul_controller.h index 776f5ba4..c56945f1 100644 --- a/src/pdch_ul_controller.h +++ b/src/pdch_ul_controller.h @@ -59,6 +59,7 @@ enum pdch_ulc_tbf_poll_reason { PDCH_ULC_POLL_DL_ACK, /* Expect DL ACK/NACK requested by RRBP */ PDCH_ULC_POLL_CELL_CHG_CONTINUE, /* Expect CTRL ACK for Pkt cell Change Continue we transmit */ }; +extern const struct value_string pdch_ulc_tbf_poll_reason_names[]; struct pdch_ulc_node { struct rb_node node; /*! entry in pdch_ulc->tree_root */ |