Move SI-related defines
* move SI2quater related defines to shared header * add define from OsmoBTS which checks for presence of a given SI message in gsm_bts struct. Rename it to avoid conflicts with OsmoBTS code and to match naming conventions of similar macros. Change-Id: I11432c93c772d1ead6d45a7bb0f1d13d492c82f1 Related: OS#1660
This commit is contained in:
parent
a60bb3dd28
commit
9b97b007df
|
@ -26,6 +26,12 @@
|
||||||
|
|
||||||
#include <openbsc/common_cs.h>
|
#include <openbsc/common_cs.h>
|
||||||
|
|
||||||
|
/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018: 4-bit index is used (2#1111 = 10#15) */
|
||||||
|
#define SI2Q_MAX_NUM 16
|
||||||
|
/* length in bits (for single SI2quater message) */
|
||||||
|
#define SI2Q_MAX_LEN 160
|
||||||
|
#define SI2Q_MIN_LEN 18
|
||||||
|
|
||||||
struct osmo_bsc_data;
|
struct osmo_bsc_data;
|
||||||
|
|
||||||
struct osmo_bsc_sccp_con;
|
struct osmo_bsc_sccp_con;
|
||||||
|
@ -486,6 +492,7 @@ struct gsm_bts_trx {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GSM_BTS_SI2Q(bts) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater])
|
#define GSM_BTS_SI2Q(bts) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater])
|
||||||
|
#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i))
|
||||||
#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i])
|
#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i])
|
||||||
#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i])
|
#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i])
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,6 @@
|
||||||
#include <openbsc/gsm_04_08.h>
|
#include <openbsc/gsm_04_08.h>
|
||||||
#include <osmocom/gsm/sysinfo.h>
|
#include <osmocom/gsm/sysinfo.h>
|
||||||
|
|
||||||
/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018: 4-bit index is used */
|
|
||||||
#define SI2Q_MAX_NUM 16
|
|
||||||
/* length in bits (for single SI2quater message) */
|
|
||||||
#define SI2Q_MAX_LEN 160
|
|
||||||
#define SI2Q_MIN_LEN 18
|
|
||||||
|
|
||||||
/* generate SI1 rest octets */
|
/* generate SI1 rest octets */
|
||||||
int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net);
|
int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net);
|
||||||
int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts);
|
int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts);
|
||||||
|
|
|
@ -186,7 +186,7 @@ int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx)
|
||||||
|
|
||||||
for (n = 0; n < n_si; n++) {
|
for (n = 0; n < n_si; n++) {
|
||||||
i = gen_si[n];
|
i = gen_si[n];
|
||||||
if (!(bts->si_valid & (1 << i)))
|
if (!GSM_BTS_HAS_SI(bts, i))
|
||||||
continue;
|
continue;
|
||||||
rc = rsl_si(trx, i, si_len[i]);
|
rc = rsl_si(trx, i, si_len[i]);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
|
|
|
@ -774,13 +774,13 @@ static int generate_si3(enum osmo_sysinfo_type t, struct gsm_bts *bts)
|
||||||
/* allow/disallow DTXu */
|
/* allow/disallow DTXu */
|
||||||
gsm48_set_dtx(&si3->cell_options, bts->dtxu, bts->dtxu, true);
|
gsm48_set_dtx(&si3->cell_options, bts->dtxu, bts->dtxu, true);
|
||||||
|
|
||||||
if ((bts->si_valid & (1 << SYSINFO_TYPE_2ter))) {
|
if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter)) {
|
||||||
LOGP(DRR, LOGL_INFO, "SI 2ter is included.\n");
|
LOGP(DRR, LOGL_INFO, "SI 2ter is included.\n");
|
||||||
si_info.si2ter_indicator = 1;
|
si_info.si2ter_indicator = 1;
|
||||||
} else {
|
} else {
|
||||||
si_info.si2ter_indicator = 0;
|
si_info.si2ter_indicator = 0;
|
||||||
}
|
}
|
||||||
if ((bts->si_valid & (1 << SYSINFO_TYPE_2quater))) {
|
if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater)) {
|
||||||
LOGP(DRR, LOGL_INFO, "SI 2quater is included, based on %zu EARFCNs and %zu UARFCNs.\n",
|
LOGP(DRR, LOGL_INFO, "SI 2quater is included, based on %zu EARFCNs and %zu UARFCNs.\n",
|
||||||
si2q_earfcn_count(&bts->si_common.si2quater_neigh_list), bts->si_common.uarfcn_length);
|
si2q_earfcn_count(&bts->si_common.si2quater_neigh_list), bts->si_common.uarfcn_length);
|
||||||
si_info.si2quater_indicator = 1;
|
si_info.si2quater_indicator = 1;
|
||||||
|
|
|
@ -105,7 +105,7 @@ static inline void gen(struct gsm_bts *bts, const char *s)
|
||||||
r = gsm_generate_si(bts, SYSINFO_TYPE_2quater);
|
r = gsm_generate_si(bts, SYSINFO_TYPE_2quater);
|
||||||
if (r > 0)
|
if (r > 0)
|
||||||
printf("generated %s SI2quater [%02u/%02u]: [%d] %s\n",
|
printf("generated %s SI2quater [%02u/%02u]: [%d] %s\n",
|
||||||
(bts->si_valid & (1 << SYSINFO_TYPE_2quater)) ? "valid" : "invalid",
|
GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) ? "valid" : "invalid",
|
||||||
bts->si2q_index, bts->si2q_count, r,
|
bts->si2q_index, bts->si2q_count, r,
|
||||||
osmo_hexdump((void *)GSM_BTS_SI2Q(bts), GSM_MACBLOCK_LEN));
|
osmo_hexdump((void *)GSM_BTS_SI2Q(bts), GSM_MACBLOCK_LEN));
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue