From 1b7ebde55d44b22164388f0344e9ec4fbf24eb24 Mon Sep 17 00:00:00 2001 From: wbokslag Date: Fri, 16 Sep 2022 15:11:09 +0200 Subject: [PATCH] Keep timeslot number in range 1-4 instead of 0-3 in parsing of SYNC frame According to the tetra_tdma_time struct definition, the tn should be in range 1-4. Also, tetra_burst_sync_in increments the timeslot number when in a synchronized state. The timeslot is then normalized with normalize_tn which also expects the tn to be within the 1-4 range. Change-Id: Ib0967fdeef3bf37c612124626a74d240aa571a66 --- src/lower_mac/tetra_lower_mac.c | 4 ++-- src/tetra_upper_mac.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lower_mac/tetra_lower_mac.c b/src/lower_mac/tetra_lower_mac.c index f6a893a..bf0896b 100644 --- a/src/lower_mac/tetra_lower_mac.c +++ b/src/lower_mac/tetra_lower_mac.c @@ -273,7 +273,7 @@ void tp_sap_udata_ind(enum tp_sap_data_type type, int blk_num, const uint8_t *bi switch (type) { case TPSAP_T_SB1: printf("TMB-SAP SYNC CC %s(0x%02x) ", osmo_ubit_dump(type2+4, 6), bits_to_uint(type2+4, 6)); - printf("TN %s(%u) ", osmo_ubit_dump(type2+10, 2), bits_to_uint(type2+10, 2)); + printf("TN %s(%u) ", osmo_ubit_dump(type2+10, 2), bits_to_uint(type2+10, 2) + 1); printf("FN %s(%2u) ", osmo_ubit_dump(type2+12, 5), bits_to_uint(type2+12, 5)); printf("MN %s(%2u) ", osmo_ubit_dump(type2+17, 6), bits_to_uint(type2+17, 6)); printf("MCC %s(%u) ", osmo_ubit_dump(type2+31, 10), bits_to_uint(type2+31, 10)); @@ -281,7 +281,7 @@ void tp_sap_udata_ind(enum tp_sap_data_type type, int blk_num, const uint8_t *bi /* obtain information from SYNC PDU */ if (tup->crc_ok) { tcd->colour_code = bits_to_uint(type2+4, 6); - tcd->time.tn = bits_to_uint(type2+10, 2); + tcd->time.tn = bits_to_uint(type2+10, 2) + 1; tcd->time.fn = bits_to_uint(type2+12, 5); tcd->time.mn = bits_to_uint(type2+17, 6); tcd->mcc = bits_to_uint(type2+31, 10); diff --git a/src/tetra_upper_mac.c b/src/tetra_upper_mac.c index 0e090cf..f6b34bf 100644 --- a/src/tetra_upper_mac.c +++ b/src/tetra_upper_mac.c @@ -276,7 +276,7 @@ static int rx_tmv_unitdata_ind(struct tetra_tmvsap_prim *tmvp, struct tetra_mac_ return 0; gsmtap_msg = tetra_gsmtap_makemsg(&tup->tdma_time, tup->lchan, - tup->tdma_time.tn, + tup->tdma_time.tn-1, /* expects timeslot in 0-3 range */ /* FIXME: */ 0, 0, 0, msg->l1h, msgb_l1len(msg), tms); if (gsmtap_msg)