diff options
Diffstat (limited to 'src/pcu_l1_if.cpp')
-rw-r--r-- | src/pcu_l1_if.cpp | 43 |
1 files changed, 13 insertions, 30 deletions
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 19dda5c..9d7dbee 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -30,8 +30,6 @@ extern "C" { #include <osmocom/core/talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/gsmtap_util.h> -#include <osmocom/core/gsmtap.h> } #include <gprs_rlcmac.h> @@ -44,7 +42,7 @@ extern "C" { // FIXME: move this, when changed from c++ to c. extern "C" { -void *l1if_open_pdch(void *priv, uint32_t hlayer1, struct gsmtap_inst *gsmtap); +void *l1if_open_pdch(void *priv, uint32_t hlayer1); int l1if_connect_pdch(void *obj, uint8_t ts); int l1if_pdch_req(void *obj, uint8_t ts, int is_ptcch, uint32_t fn, uint16_t arfcn, uint8_t block_nr, uint8_t *data, uint8_t len); @@ -126,18 +124,15 @@ static int pcu_tx_data_req(uint8_t trx, uint8_t ts, uint8_t sapi, void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr) { +#ifdef ENABLE_SYSMODSP struct gprs_rlcmac_bts *bts = bts_main_data(); -#ifdef ENABLE_SYSMODSP - if (bts->trx[trx].fl1h) { + if (bts->trx[trx].fl1h) l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, msg->data, msg->len); - msgb_free(msg); - return; - } + else #endif - gsmtap_send(bts->gsmtap, arfcn, ts, GSMTAP_CHANNEL_PACCH, 0, fn, 0, 0, msg->data, msg->len); - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, + pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, msg->data, msg->len); msgb_free(msg); } @@ -145,18 +140,15 @@ void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, void pcu_l1if_tx_ptcch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr) { +#ifdef ENABLE_SYSMODSP struct gprs_rlcmac_bts *bts = bts_main_data(); -#ifdef ENABLE_SYSMODSP - if (bts->trx[trx].fl1h) { + if (bts->trx[trx].fl1h) l1if_pdch_req(bts->trx[trx].fl1h, ts, 1, fn, arfcn, block_nr, msg->data, msg->len); - msgb_free(msg); - return; - } + else #endif - gsmtap_send(bts->gsmtap, arfcn, ts, GSMTAP_CHANNEL_PACCH, 0, fn, 0, 0, msg->data, msg->len); - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, + pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, msg->data, msg->len); msgb_free(msg); } @@ -208,9 +200,9 @@ extern "C" int pcu_rx_data_ind_pdtch(uint8_t trx_no, uint8_t ts_no, uint8_t *dat return pdch->rcv_block(data, len, fn, meas); } -static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind, struct gsmtap_inst *gsmtap) +static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind) { - int rc; + int rc = 0; pcu_l1_meas meas; meas.set_rssi(data_ind->rssi); @@ -219,13 +211,6 @@ static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind, struct gsmtap_inst data_ind->arfcn, data_ind->block_nr, osmo_hexdump(data_ind->data, data_ind->len)); - rc = gsmtap_send(gsmtap, data_ind->arfcn | GSMTAP_ARFCN_F_UPLINK, data_ind->ts_nr, - GSMTAP_CHANNEL_PACCH, 0, data_ind->fn, 0, 0, data_ind->data, data_ind->len); - if (rc < 0) - LOGP(DL1IF, LOGL_ERROR, "Sending RX data via GSMTAP failed: %d\n", rc); - - rc = 0; - switch (data_ind->sapi) { case PCU_IF_SAPI_PDTCH: rc = pcu_rx_data_ind_pdtch(data_ind->trx_nr, data_ind->ts_nr, @@ -451,8 +436,7 @@ bssgp_failed: if (!bts->trx[trx].fl1h) bts->trx[trx].fl1h = l1if_open_pdch( (void *)trx, - info_ind->trx[trx].hlayer1, - bts->gsmtap); + info_ind->trx[trx].hlayer1); if (!bts->trx[trx].fl1h) { LOGP(DL1IF, LOGL_FATAL, "Failed to open direct " "DSP access for PDCH.\n"); @@ -523,11 +507,10 @@ static int pcu_rx_pag_req(struct gsm_pcu_if_pag_req *pag_req) int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim) { int rc = 0; - struct gprs_rlcmac_bts *bts = bts_main_data(); switch (msg_type) { case PCU_IF_MSG_DATA_IND: - rc = pcu_rx_data_ind(&pcu_prim->u.data_ind, bts->gsmtap); + rc = pcu_rx_data_ind(&pcu_prim->u.data_ind); break; case PCU_IF_MSG_DATA_CNF: rc = pcu_rx_data_cnf(&pcu_prim->u.data_cnf); |