From fe5354444009f81b851c39cf12cf8acaecce81fb Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 11 Jan 2017 11:22:51 +0100 Subject: gprs: handle RLC uplink/downlink ack/nack params --- src/diag_log_gprs.c | 21 +++++++++++++++++++++ src/protocol/diag_log_gprs_rlc.h | 24 ++++++++++++------------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/diag_log_gprs.c b/src/diag_log_gprs.c index f5cfd25..0db543e 100644 --- a/src/diag_log_gprs.c +++ b/src/diag_log_gprs.c @@ -212,6 +212,25 @@ static void handle_gmm_ota_msg(struct log_hdr *lh, struct msgb *msg) printf("GMM-OTA-MESSAGE { FIXME }\n"); } +static void handle_ul_acknack_v2(struct log_hdr *lh, struct msgb *msg) +{ + struct gprs_rlc_ul_acknack_params_v2 *ula; + ula = (struct gprs_rlc_ul_acknack_params_v2 *) msgb_data(msg); + + printf("RLC-UL-ACKNACK-V2 { tfi=%u, final_ack_ind=%u, start_seq_nr=%u, cs=%u, countdown_val=%u, va=%u, vs=%u, stall_ind=%u, rrb=%08x%08x }\n", + ula->ul_tfi, ula->final_ack_ind, ula->start_seq_nr, ula->coding_scheme, ula->countdown_val, ula->va, ula->vs, + ula->stall_ind, ula->rrb_high32, ula->rrb_low32); +} + +static void handle_dl_acknack_v2(struct log_hdr *lh, struct msgb *msg) +{ + struct gprs_rlc_dl_acknack_params_v2 *dla; + dla = (struct gprs_rlc_dl_acknack_params_v2 *) msgb_data(msg); + + printf("RLC-DL-ACKNACK-V2 { tfi=%u, final_ack_ind=%u, start_seq_nr=%u, vq=%u, cs=%u, rrb=%08x%08x }\n", + dla->dl_tfi, dla->final_ack_ind, dla->start_seq_nr, dla->vq, dla->coding_scheme, dla->rrb_high32, dla->rrb_low32); +} + static const struct diag_log_dispatch_tbl log_tbl[] = { /* LLC */ { GSM(LOG_GPRS_LLC_ME_INFO_C), handle_llc_me_info }, /* requested? */ @@ -226,6 +245,8 @@ static const struct diag_log_dispatch_tbl log_tbl[] = { { GSM(LOG_GPRS_RLC_DL_RELEASE_IND_C), handle_rlc_rel }, { GSM(LOG_GPRS_RLC_UL_STATS_C), handle_rlc_ul_stats }, { GSM(LOG_GPRS_RLC_DL_STATS_C), handle_rlc_dl_stats }, + { GSM(LOG_GPRS_RLC_UL_ACKNACK_PARAMS_VER2_C), handle_ul_acknack_v2 }, + { GSM(LOG_GPRS_RLC_DL_ACKNACK_PARAMS_VER2_C), handle_dl_acknack_v2 }, /* MAC */ { GSM(LOG_GPRS_MAC_STATE_C), handle_mac_state }, { GSM(LOG_GPRS_MAC_SIGNALLING_MESSAGE_C), handle_mac_sign_msg }, diff --git a/src/protocol/diag_log_gprs_rlc.h b/src/protocol/diag_log_gprs_rlc.h index 2aab20b..f59c662 100644 --- a/src/protocol/diag_log_gprs_rlc.h +++ b/src/protocol/diag_log_gprs_rlc.h @@ -91,26 +91,26 @@ struct gprs_rlc_dl_stats { /* LOG_GPRS_RLC_UL_ACKNACK_PARAMS_VER2_C */ struct gprs_rlc_ul_acknack_params_v2 { uint8_t ul_tfi; - uint8_t fai; - uint8_t ssn; - uint8_t cs; - uint8_t cv; + uint8_t final_ack_ind; + uint8_t start_seq_nr; + uint8_t coding_scheme; + uint8_t countdown_val; uint8_t va; uint8_t vs; - uint8_t si; - uint32_t hu32; - uint32_t lu32; + uint8_t stall_ind; + uint32_t rrb_high32; + uint32_t rrb_low32; } __attribute__ ((packed)); /* LOG_GPRS_RLC_DL_ACKNACK_PARAMS_VER2_C */ struct gprs_rlc_dl_acknack_params_v2 { uint8_t dl_tfi; - uint8_t fai; - uint8_t ssn; + uint8_t final_ack_ind; + uint8_t start_seq_nr; uint8_t vq; - uint32_t hu32; - uint32_t lu32; - uint8_t cs; + uint32_t rrb_high32; + uint32_t rrb_low32; + uint8_t coding_scheme; } __attribute__ ((packed)); /* LOG_GPRS_RLC_UL_RELEASE_IND_C + LOG_GPRS_RLC_DL_RELEASE_IND_C */ -- cgit v1.2.3