diff options
Diffstat (limited to 'src/osmo-bts-litecell15')
-rw-r--r-- | src/osmo-bts-litecell15/lc15_l1_if.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/osmo-bts-litecell15/lc15_l1_if.c b/src/osmo-bts-litecell15/lc15_l1_if.c index 12a977ba..c82ddba2 100644 --- a/src/osmo-bts-litecell15/lc15_l1_if.c +++ b/src/osmo-bts-litecell15/lc15_l1_if.c @@ -199,11 +199,6 @@ static int handle_ph_data_ind(struct lc15l1_hdl *fl1h, if (data_ind->msgUnitParam.u8Size == 0) return -1; - gsmtap_send(fl1h->gsmtap, data_ind->u16Arfcn | GSMTAP_ARFCN_F_UPLINK, - data_ind->u8Tn, GSMTAP_CHANNEL_PACCH, 0, - data_ind->u32Fn, 0, 0, data_ind->msgUnitParam.u8Buffer+1, - data_ind->msgUnitParam.u8Size-1); - get_meas(&meas, &data_ind->measParam); bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, qta2ta(meas.bto)); @@ -216,7 +211,7 @@ static int handle_ph_data_ind(struct lc15l1_hdl *fl1h, != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + rc = pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -224,6 +219,7 @@ static int handle_ph_data_ind(struct lc15l1_hdl *fl1h, break; case GsmL1_Sapi_Ptcch: // FIXME + rc = -1; break; default: LOGP(DL1IF, LOGL_NOTICE, "Rx PH-DATA.ind for unknown L1 SAPI %s\n", @@ -231,6 +227,13 @@ static int handle_ph_data_ind(struct lc15l1_hdl *fl1h, break; } + if (rc < 0) { + gsmtap_send(fl1h->gsmtap, data_ind->u16Arfcn | GSMTAP_ARFCN_F_UPLINK, + data_ind->u8Tn, GSMTAP_CHANNEL_PACCH, 0, + data_ind->u32Fn, 0, 0, data_ind->msgUnitParam.u8Buffer+1, + data_ind->msgUnitParam.u8Size-1); + } + return rc; } @@ -322,12 +325,6 @@ int l1if_pdch_req(void *obj, uint8_t ts, int is_ptcch, uint32_t fn, msu_param->u8Size = len; memcpy(msu_param->u8Buffer, data, len); - gsmtap_send(fl1h->gsmtap, arfcn, data_req->u8Tn, GSMTAP_CHANNEL_PACCH, - 0, data_req->u32Fn, 0, 0, - data_req->msgUnitParam.u8Buffer, - data_req->msgUnitParam.u8Size); - - /* transmit */ if (osmo_wqueue_enqueue(&fl1h->write_q[MQ_PDTCH_WRITE], msg) != 0) { LOGP(DL1IF, LOGL_ERROR, "PDTCH queue full. dropping message.\n"); |