summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-05-03 13:51:07 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2023-05-04 12:03:49 +0200
commitc16126317d4ec6c7d499f247d8ea836b902cedfb (patch)
treecaa22be613dddc9293267ca1cd6232113daaf596
parentfbd2f733a73ffda6545705098b28684b16d4675e (diff)
layer23: modem: grr: Log ignored CCCH ImmAss
There seems to be some bug when using virtphy where sometimes the received T2 and/or T3 in the ImmASs is not matching what we sent. This helps in showing the problem and not failing silently. Change-Id: Iaecd2616733d84f35a825916fe888142800b426b
-rw-r--r--src/host/layer23/src/modem/grr.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/host/layer23/src/modem/grr.c b/src/host/layer23/src/modem/grr.c
index b6abae5c..e2254609 100644
--- a/src/host/layer23/src/modem/grr.c
+++ b/src/host/layer23/src/modem/grr.c
@@ -238,17 +238,24 @@ static int grr_rx_imm_ass(struct osmocom_ms *ms, struct msgb *msg)
struct osmo_gprs_rlcmac_prim *rlcmac_prim;
/* Discard CS channel assignment */
- if ((ia->page_mode >> 4) == 0)
+ if ((ia->page_mode >> 4) == 0) {
+ LOGP(DRR, LOGL_INFO, "%s(): Discard CS channel assignment\n", __func__);
return 0;
+ }
- if (rr->state != GSM48_RR_ST_CONN_PEND)
+ if (rr->state != GSM48_RR_ST_CONN_PEND) {
+ LOGP(DRR, LOGL_INFO, "%s(): rr_state != GSM48_RR_ST_CONN_PEND\n", __func__);
return 0;
- if (!grr_match_req_ref(ms, &ia->req_ref))
+ }
+ if (!grr_match_req_ref(ms, &ia->req_ref)) {
+ LOGP(DRR, LOGL_INFO, "%s(): req_ref mismatch (RA=0x%02x, T1=%u, T3=%u, T2=%u)\n",
+ __func__, ia->req_ref.ra, ia->req_ref.t1,
+ ia->req_ref.t3_high << 3 | ia->req_ref.t3_low, ia->req_ref.t2);
return 0;
+ }
if (rsl_dec_chan_nr(ia->chan_desc.chan_nr, &ch_type, &ch_subch, &ch_ts) != 0) {
- LOGP(DRR, LOGL_ERROR,
- "%s(): rsl_dec_chan_nr(chan_nr=0x%02x) failed\n",
+ LOGP(DRR, LOGL_ERROR, "%s(): rsl_dec_chan_nr(chan_nr=0x%02x) failed\n",
__func__, ia->chan_desc.chan_nr);
return -EINVAL;
}