diff options
-rw-r--r-- | src/common/pcu_sock.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index bdebf657..7f32f32f 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -481,13 +481,7 @@ static int pcu_rx_data_req(struct gsm_bts *bts, uint8_t msg_type, switch (data_req->sapi) { case PCU_IF_SAPI_PCH: - if (msg_type == PCU_IF_MSG_PAG_REQ) { - /* FIXME: Add function to schedule paging request. - * This might not be required, if PCU_IF_MSG_DATA_REQ - * is used instead. */ - } else { - paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); - } + paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); break; case PCU_IF_SAPI_AGCH: msg = msgb_alloc(data_req->len, "pcu_agch"); @@ -543,6 +537,24 @@ static int pcu_rx_data_req(struct gsm_bts *bts, uint8_t msg_type, return rc; } +static int pcu_rx_pag_req(struct gsm_bts *bts, uint8_t msg_type, + struct gsm_pcu_if_pag_req *pag_req) +{ + int rc = 0; + + OSMO_ASSERT(msg_type == PCU_IF_MSG_PAG_REQ); + + /* FIXME: Add function to schedule paging request. + * At present, osmo-pcu sends paging requests in PCU_IF_MSG_DATA_REQ + * messages which are processed by pcu_rx_data_req(). + * This code path is not triggered in practice. */ + LOGP(DPCU, LOGL_NOTICE, "Paging request received: chan_needed=%d length=%d " + "(dropping message because support for PCU_IF_MSG_PAG_REQ is not yet implemented)\n", + pag_req->chan_needed, pag_req->identity_lv[0]); + + return rc; +} + int pcu_tx_si13(const struct gsm_bts *bts, bool enable) { /* the SI is per-BTS so it doesn't matter which TRX we use */ @@ -631,9 +643,11 @@ static int pcu_rx(struct gsm_network *net, uint8_t msg_type, switch (msg_type) { case PCU_IF_MSG_DATA_REQ: - case PCU_IF_MSG_PAG_REQ: rc = pcu_rx_data_req(bts, msg_type, &pcu_prim->u.data_req); break; + case PCU_IF_MSG_PAG_REQ: + rc = pcu_rx_pag_req(bts, msg_type, &pcu_prim->u.pag_req); + break; case PCU_IF_MSG_ACT_REQ: rc = pcu_rx_act_req(bts, &pcu_prim->u.act_req); break; |