virt_phy: avoid confusion between RSSI (dBm) and RxLev (0..63)

Change-Id: I4f2982cd8fa1b7a47f983c9cd11bf0180f7878ec
Related: OS#5500
This commit is contained in:
Vadim Yanitskiy 2023-03-12 02:06:22 +07:00 committed by fixeria
parent 4b859aae59
commit 94bfc1d051
4 changed files with 12 additions and 12 deletions

View File

@ -64,12 +64,12 @@ void l1ctl_tx_rach_conf(struct l1_model_ms *ms, uint32_t fn, uint16_t arfcn);
void l1ctl_tx_data_conf(struct l1_model_ms *ms, uint32_t fn, uint16_t snr, uint16_t arfcn);
void l1ctl_tx_data_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id,
uint8_t chan_nr, uint32_t fn, uint8_t snr,
uint8_t signal_dbm, uint8_t num_biterr,
uint8_t rxlev, uint8_t num_biterr,
uint8_t fire_crc);
void l1ctl_tx_traffic_conf(struct l1_model_ms *ms, uint32_t fn, uint16_t snr, uint16_t arfcn);
void l1ctl_tx_traffic_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id,
uint8_t chan_nr, uint32_t fn, uint8_t snr,
uint8_t signal_dbm, uint8_t num_biterr,
uint8_t rxlev, uint8_t num_biterr,
uint8_t fire_crc);
void l1ctl_tx_pm_conf(struct l1_model_ms *ms, struct l1ctl_pm_req *pm_req);
void l1ctl_tx_fbsb_conf(struct l1_model_ms *ms, uint8_t res, uint16_t arfcn);

View File

@ -84,7 +84,7 @@ void gsmtapl1_tx_to_virt_um_inst(struct l1_model_ms *ms, uint32_t fn, uint8_t tn
struct gsmtap_hdr *gh;
struct msgb *outmsg; /* msg to send with gsmtap header prepended */
uint16_t arfcn;
uint8_t signal_dbm = 63; /* signal strength */
uint8_t signal_dbm = rxlev2dbm(63); /* signal strength */
uint8_t snr = 63; /* signal noise ratio, 63 is best */
uint8_t *data = msgb_l2(msg); /* data to transmit (whole message without l1 header) */
uint8_t data_len = msgb_l2len(msg); /* length of data */
@ -242,7 +242,7 @@ static void l1ctl_from_virt_um(struct l1ctl_sock_client *lsc, struct msgb *msg,
uint8_t snr_db)
{
struct l1_model_ms *ms = lsc->priv;
uint8_t signal_dbm = dbm2rxlev(prim_pm_set_sig_strength(ms, arfcn & GSMTAP_ARFCN_MASK, MAX_SIG_LEV_DBM)); /* Power measurement with each received massage */
uint8_t rxlev = dbm2rxlev(prim_pm_set_sig_strength(ms, arfcn & GSMTAP_ARFCN_MASK, MAX_SIG_LEV_DBM));
uint8_t usf;
gsm_fn2gsmtime(&ms->state.downlink_time, fn);
@ -281,7 +281,7 @@ static void l1ctl_from_virt_um(struct l1ctl_sock_client *lsc, struct msgb *msg,
* the timeslot and subslot is fitting */
if (ms->state.dedicated.tn == timeslot
&& ms->state.dedicated.subslot == subslot) {
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0);
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0);
}
break;
case GSMTAP_CHANNEL_VOICE_F:
@ -291,7 +291,7 @@ static void l1ctl_from_virt_um(struct l1ctl_sock_client *lsc, struct msgb *msg,
if (ms->state.dedicated.tn == timeslot
&& ms->state.dedicated.subslot == subslot) {
l1ctl_tx_traffic_ind(ms, msg, arfcn, link_id, chan_nr, fn,
snr_db, signal_dbm, 0, 0);
snr_db, rxlev, 0, 0);
}
break;
case GSMTAP_CHANNEL_CBCH51:
@ -305,7 +305,7 @@ static void l1ctl_from_virt_um(struct l1ctl_sock_client *lsc, struct msgb *msg,
case GSMTAP_CHANNEL_CBCH52:
/* save to just forward here, as upper layer ignores messages that
* do not fit the current state (e.g. gsm48_rr.c:2159) */
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0);
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0);
break;
case GSMTAP_CHANNEL_RACH:
LOGPMS(DVIRPHY, LOGL_NOTICE, ms, "Ignoring unexpected RACH in downlink ?!?\n");
@ -313,7 +313,7 @@ static void l1ctl_from_virt_um(struct l1ctl_sock_client *lsc, struct msgb *msg,
case GSMTAP_CHANNEL_PACCH:
case GSMTAP_CHANNEL_PDCH:
if (gprs_dl_block_matches_ms(ms, msg, timeslot))
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0);
l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0);
usf = get_usf_from_block(msg);
ms_ul_tbf_may_transmit(ms, arfcn, timeslot, fn, usf);
break;

View File

@ -78,7 +78,7 @@ void l1ctl_rx_data_req(struct l1_model_ms *ms, struct msgb *msg)
void l1ctl_tx_data_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id,
uint8_t chan_nr, uint32_t fn, uint8_t snr,
uint8_t signal_dbm, uint8_t num_biterr, uint8_t fire_crc)
uint8_t rxlev, uint8_t num_biterr, uint8_t fire_crc)
{
struct msgb *l1ctl_msg = NULL;
struct l1ctl_data_ind * l1di;
@ -94,7 +94,7 @@ void l1ctl_tx_data_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn,
l1dl->chan_nr = chan_nr;
l1dl->frame_nr = htonl(fn);
l1dl->snr = snr;
l1dl->rx_level = signal_dbm;
l1dl->rx_level = rxlev;
l1dl->num_biterr = 0; /* no biterrors */
l1dl->fire_crc = 0;

View File

@ -75,7 +75,7 @@ void l1ctl_rx_traffic_req(struct l1_model_ms *ms, struct msgb *msg)
}
void l1ctl_tx_traffic_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id,
uint8_t chan_nr, uint32_t fn, uint8_t snr, uint8_t signal_dbm,
uint8_t chan_nr, uint32_t fn, uint8_t snr, uint8_t rxlev,
uint8_t num_biterr, uint8_t fire_crc)
{
struct msgb *l1ctl_msg = NULL;
@ -95,7 +95,7 @@ void l1ctl_tx_traffic_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arf
l1dl->chan_nr = chan_nr;
l1dl->frame_nr = htonl(fn);
l1dl->snr = snr;
l1dl->rx_level = signal_dbm;
l1dl->rx_level = rxlev;
l1dl->num_biterr = 0; /* no biterrors */
l1dl->fire_crc = 0;