[HACK] l1gprs: always send (empty) DATA.ind

This is a quick hack to ensure constant stream of RTS.ind emitted
by the modem application (which is using DATA.ind for that).

Change-Id: I529f46d8d4b2e9c0a607d91e318d9d7c009b7603
Related: OS#5500
fixeria/l1gprs_hack
Vadim Yanitskiy 2023-08-31 20:15:01 +07:00
parent a93785bf43
commit 93fcb40174
2 changed files with 11 additions and 0 deletions

View File

@ -59,6 +59,7 @@ enum {
L1CTL_GPRS_DL_BLOCK_IND = 0x23,
/* Extended (11-bit) RACH (see 3GPP TS 05.02, section 5.2.7) */
L1CTL_EXT_RACH_REQ = 0x24,
L1CTL_GPRS_RTS_IND = 0x25,
};
enum ccch_mode {
@ -387,4 +388,10 @@ struct l1ctl_gprs_dl_block_ind {
uint8_t data[0];
} __attribute__((packed));
/* payload of L1CTL_GPRS_RTS_IND */
struct l1ctl_gprs_rts_ind {
uint32_t fn;
uint8_t tn;
} __attribute__((packed));
#endif /* __L1CTL_PROTO_H__ */

View File

@ -697,6 +697,7 @@ struct msgb *l1gprs_handle_dl_block_ind(struct l1gprs_state *gprs,
l1gprs_check_pending_tbfs(gprs, ind->hdr.fn);
#if 0
if (pdch->ul_tbf_count + pdch->dl_tbf_count == 0) {
if (pdch->pending_ul_tbf_count + pdch->pending_dl_tbf_count > 0)
LOGP_PDCH(pdch, LOGL_DEBUG,
@ -708,6 +709,7 @@ struct msgb *l1gprs_handle_dl_block_ind(struct l1gprs_state *gprs,
ind->hdr.fn);
return NULL;
}
#endif
msg = l1gprs_l1ctl_msgb_alloc(L1CTL_GPRS_DL_BLOCK_IND);
if (OSMO_UNLIKELY(msg == NULL)) {
@ -731,6 +733,8 @@ struct msgb *l1gprs_handle_dl_block_ind(struct l1gprs_state *gprs,
if (ind->data_len == 0)
return msg;
if (pdch->ul_tbf_count + pdch->dl_tbf_count == 0)
return msg; /* HACK: ensure constant stream of RTS.ind in the modem app */
if (BLOCK_IND_IS_PTCCH(ind)) {
memcpy(msgb_put(msg, ind->data_len), ind->data, ind->data_len);
return msg;