summaryrefslogtreecommitdiffstats
path: root/src/host/layer23
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23')
-rw-r--r--src/host/layer23/include/osmocom/bb/common/l1ctl.h3
-rw-r--r--src/host/layer23/src/common/l1ctl.c17
2 files changed, 20 insertions, 0 deletions
diff --git a/src/host/layer23/include/osmocom/bb/common/l1ctl.h b/src/host/layer23/include/osmocom/bb/common/l1ctl.h
index eb0e2c10..fb679bb8 100644
--- a/src/host/layer23/include/osmocom/bb/common/l1ctl.h
+++ b/src/host/layer23/include/osmocom/bb/common/l1ctl.h
@@ -74,4 +74,7 @@ int l1ctl_ph_prim_cb(struct osmo_prim_hdr *oph, void *ctx);
/* Transmit L1CTL_NEIGH_PM_REQ */
int l1ctl_tx_neigh_pm_req(struct osmocom_ms *ms, int num, uint16_t *arfcn);
+/* Transmit L1CTL_RINGER_REQ */
+int l1ctl_tx_ringer_req(struct osmocom_ms *ms, uint8_t volume);
+
#endif
diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c
index 3bb4c14d..bc8869cd 100644
--- a/src/host/layer23/src/common/l1ctl.c
+++ b/src/host/layer23/src/common/l1ctl.c
@@ -902,6 +902,23 @@ static int rx_l1_neigh_pm_ind(struct osmocom_ms *ms, struct msgb *msg)
return 0;
}
+/* Transmit L1CTL_RINGER_REQ */
+int l1ctl_tx_ringer_req(struct osmocom_ms *ms, uint8_t volume)
+{
+ struct msgb *msg;
+ struct l1ctl_ringer_req *ring_req;
+
+ msg = osmo_l1_alloc(L1CTL_RINGER_REQ);
+ if (!msg)
+ return -1;
+
+ LOGP(DL1C, LOGL_INFO, "Tx RINGER Req (volume %u)\n", volume);
+ ring_req = (struct l1ctl_ringer_req *) msgb_put(msg, sizeof(*ring_req));
+ ring_req->volume = volume;
+
+ return osmo_send_l1(ms, msg);
+}
+
/* Receive incoming data from L1 using L1CTL format */
int l1ctl_recv(struct osmocom_ms *ms, struct msgb *msg)
{