mirror of https://gerrit.osmocom.org/libosmocore
Add function to get osmo_earfcn bit size
This function returns the number of bits necessary to pack osmo_earfcn into Repeated E-UTRAN Neighbour Cells IE (3GPP TS 44.018 Table 10.5.2.33b.1).
This commit is contained in:
parent
da1b20cd4f
commit
fbb8bfa514
|
@ -66,6 +66,7 @@ typedef uint8_t sysinfo_buf_t[GSM_MACBLOCK_LEN];
|
|||
extern const struct value_string osmo_sitype_strs[_MAX_SYSINFO_TYPE];
|
||||
int osmo_earfcn_add(struct osmo_earfcn_si2q *e, uint16_t arfcn, uint8_t meas_bw);
|
||||
int osmo_earfcn_del(struct osmo_earfcn_si2q *e, uint16_t arfcn);
|
||||
size_t osmo_earfcn_bit_size(const struct osmo_earfcn_si2q *e);
|
||||
void osmo_earfcn_init(struct osmo_earfcn_si2q *e);
|
||||
uint8_t osmo_sitype2rsl(enum osmo_sysinfo_type si_type);
|
||||
enum osmo_sysinfo_type osmo_rsl2sitype(uint8_t rsl_si);
|
||||
|
|
|
@ -31,6 +31,7 @@ dbm2rxlev;
|
|||
|
||||
osmo_earfcn_add;
|
||||
osmo_earfcn_del;
|
||||
osmo_earfcn_bit_size;
|
||||
osmo_earfcn_init;
|
||||
|
||||
gprs_cipher_gen_input_i;
|
||||
|
|
|
@ -144,6 +144,30 @@ int osmo_earfcn_add(struct osmo_earfcn_si2q *e, uint16_t arfcn, uint8_t meas_bw)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/*! \brief Return number of bits necessary to represent earfcn struct as
|
||||
* Repeated E-UTRAN Neighbour Cells IE from 3GPP TS 44.018 Table 10.5.2.33b.1
|
||||
* \param[in,out] e earfcn struct
|
||||
* \returns number of bits
|
||||
*/
|
||||
size_t osmo_earfcn_bit_size(const struct osmo_earfcn_si2q *e)
|
||||
{
|
||||
/* 1 stop bit + 5 bits for THRESH_E-UTRAN_high */
|
||||
size_t i, bits = 6;
|
||||
for (i = 0; i < e->length; i++) {
|
||||
if (e->arfcn[i] != OSMO_EARFCN_INVALID) {
|
||||
bits += 17;
|
||||
if (OSMO_EARFCN_MEAS_INVALID == e->meas_bw[i])
|
||||
bits++;
|
||||
else
|
||||
bits += 4;
|
||||
}
|
||||
}
|
||||
bits += (e->prio_valid) ? 4 : 1;
|
||||
bits += (e->thresh_lo_valid) ? 6 : 1;
|
||||
bits += (e->qrxlm_valid) ? 6 : 1;
|
||||
return bits;
|
||||
}
|
||||
|
||||
/*! \brief Delete arfcn (and corresponding measurement bandwith) from earfcn
|
||||
* struct
|
||||
* \param[in,out] e earfcn struct
|
||||
|
|
Loading…
Reference in New Issue