aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/pcu_sock.c30
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;