diff options
Diffstat (limited to 'src/osmo-bts-virtual/main.c')
-rw-r--r-- | src/osmo-bts-virtual/main.c | 45 |
1 files changed, 36 insertions, 9 deletions
diff --git a/src/osmo-bts-virtual/main.c b/src/osmo-bts-virtual/main.c index e5e44edf..367d923b 100644 --- a/src/osmo-bts-virtual/main.c +++ b/src/osmo-bts-virtual/main.c @@ -12,7 +12,7 @@ * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. @@ -61,26 +61,53 @@ int bts_model_init(struct gsm_bts *bts) bts->model_priv = bts_virt; bts->variant = BTS_OSMO_VIRTUAL; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); + bts->gprs.cell.support.gprs_codings = NM_IPAC_MASK_GPRS_CODING_CS + | NM_IPAC_MASK_GPRS_CODING_MCS; + /* order alphabetically */ + osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); - osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); - osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); - osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); - osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); return 0; } int bts_model_trx_init(struct gsm_bts_trx *trx) { + /* Frequency bands indicated to the BSC */ + trx->support.freq_bands = NM_IPAC_F_FREQ_BAND_PGSM + | NM_IPAC_F_FREQ_BAND_EGSM + | NM_IPAC_F_FREQ_BAND_RGSM + | NM_IPAC_F_FREQ_BAND_DCS + | NM_IPAC_F_FREQ_BAND_PCS + | NM_IPAC_F_FREQ_BAND_850 + | NM_IPAC_F_FREQ_BAND_480 + | NM_IPAC_F_FREQ_BAND_450; + + /* Channel types and modes indicated to the BSC */ + trx->support.chan_types = NM_IPAC_MASK_CHANT_COMMON + | NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH + | NM_IPAC_F_CHANT_SDCCH8_CBCH + | NM_IPAC_F_CHANT_PDCHF + | NM_IPAC_F_CHANT_TCHF_PDCHF; + trx->support.chan_modes = NM_IPAC_MASK_CHANM_SPEECH + | NM_IPAC_MASK_CHANM_CSD_NT + | NM_IPAC_MASK_CHANM_CSD_T; + /* TODO: NM_IPAC_F_CHANM_CSD_T_14k4 (see OS#6167) */ + trx->support.chan_modes &= ~NM_IPAC_F_CHANM_CSD_T_14k4; + return 0; } void bts_model_print_help() { - LOGP(DSUM, LOGL_NOTICE, "Unimplemented %s\n", __func__); + LOGP(DLGLOBAL, LOGL_NOTICE, "Unimplemented %s\n", __func__); } int bts_model_handle_options(int argc, char **argv) @@ -126,18 +153,18 @@ void bts_model_phy_link_set_defaults(struct phy_link *plink) void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) { - LOGP(DSUM, LOGL_NOTICE, "Unimplemented %s\n", __func__); + LOGP(DLGLOBAL, LOGL_NOTICE, "Unimplemented %s\n", __func__); } int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) { - LOGP(DSUM, LOGL_NOTICE, "Unimplemented %s\n", __func__); + LOGP(DLGLOBAL, LOGL_NOTICE, "Unimplemented %s\n", __func__); return -ENOTSUP; } void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { - LOGP(DSUM, LOGL_NOTICE, "Unimplemented %s\n", __func__); + LOGP(DLGLOBAL, LOGL_NOTICE, "Unimplemented %s\n", __func__); } int main(int argc, char **argv) |