[layer23] L1CTL frequency change implementation in l1ctl.c
This commit is contained in:
parent
ac98bbe971
commit
00b9d1e73f
|
@ -402,6 +402,67 @@ int l1ctl_tx_dm_est_req_h1(struct osmocom_ms *ms, uint8_t maio, uint8_t hsn,
|
||||||
return osmo_send_l1(ms, msg);
|
return osmo_send_l1(ms, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Transmit L1CTL_DM_FREQ_REQ */
|
||||||
|
int l1ctl_tx_dm_freq_req_h0(struct osmocom_ms *ms, uint16_t band_arfcn,
|
||||||
|
uint8_t tsc, uint16_t fn)
|
||||||
|
{
|
||||||
|
struct msgb *msg;
|
||||||
|
struct l1ctl_info_ul *ul;
|
||||||
|
struct l1ctl_dm_freq_req *req;
|
||||||
|
|
||||||
|
msg = osmo_l1_alloc(L1CTL_DM_FREQ_REQ);
|
||||||
|
if (!msg)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
printf("Tx Dedic.Mode Freq Req (arfcn=%u, fn=%d)\n",
|
||||||
|
band_arfcn, fn);
|
||||||
|
|
||||||
|
ul = (struct l1ctl_info_ul *) msgb_put(msg, sizeof(*ul));
|
||||||
|
ul->chan_nr = 0;
|
||||||
|
ul->link_id = 0;
|
||||||
|
|
||||||
|
req = (struct l1ctl_dm_freq_req *) msgb_put(msg, sizeof(*req));
|
||||||
|
req->fn = htons(fn);
|
||||||
|
req->tsc = tsc;
|
||||||
|
req->h = 0;
|
||||||
|
req->h0.band_arfcn = htons(band_arfcn);
|
||||||
|
|
||||||
|
return osmo_send_l1(ms, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
int l1ctl_tx_dm_freq_req_h1(struct osmocom_ms *ms, uint8_t maio, uint8_t hsn,
|
||||||
|
uint16_t *ma, uint8_t ma_len,
|
||||||
|
uint8_t tsc, uint16_t fn)
|
||||||
|
{
|
||||||
|
struct msgb *msg;
|
||||||
|
struct l1ctl_info_ul *ul;
|
||||||
|
struct l1ctl_dm_freq_req *req;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
msg = osmo_l1_alloc(L1CTL_DM_FREQ_REQ);
|
||||||
|
if (!msg)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
printf("Tx Dedic.Mode Freq Req (maio=%u, hsn=%u, "
|
||||||
|
"fn=%d)\n", maio, hsn, fn);
|
||||||
|
|
||||||
|
ul = (struct l1ctl_info_ul *) msgb_put(msg, sizeof(*ul));
|
||||||
|
ul->chan_nr = 0;
|
||||||
|
ul->link_id = 0;
|
||||||
|
|
||||||
|
req = (struct l1ctl_dm_freq_req *) msgb_put(msg, sizeof(*req));
|
||||||
|
req->fn = htons(fn);
|
||||||
|
req->tsc = tsc;
|
||||||
|
req->h = 1;
|
||||||
|
req->h1.maio = maio;
|
||||||
|
req->h1.hsn = hsn;
|
||||||
|
req->h1.n = ma_len;
|
||||||
|
for (i = 0; i < ma_len; i++)
|
||||||
|
req->h1.ma[i] = htons(ma[i]);
|
||||||
|
|
||||||
|
return osmo_send_l1(ms, msg);
|
||||||
|
}
|
||||||
|
|
||||||
/* Transmit L1CTL_DM_REL_REQ */
|
/* Transmit L1CTL_DM_REL_REQ */
|
||||||
int l1ctl_tx_dm_rel_req(struct osmocom_ms *ms)
|
int l1ctl_tx_dm_rel_req(struct osmocom_ms *ms)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue