diff --git a/openbsc/doc/examples/osmo-nitb/hsl/openbsc.cfg b/openbsc/doc/examples/osmo-nitb/hsl/openbsc.cfg deleted file mode 100644 index b0af85598..000000000 --- a/openbsc/doc/examples/osmo-nitb/hsl/openbsc.cfg +++ /dev/null @@ -1,90 +0,0 @@ -! -! OpenBSC (0.9.11.261-32c0) configuration saved from vty -!! -password foo -! -line vty - no login -! -e1_input - e1_line 0 driver hsl -network - network country code 262 - mobile network code 42 - short name OpenBSC - long name OpenBSC - auth policy closed - location updating reject cause 13 - encryption a5 0 - neci 1 - paging any use tch 0 - rrlp mode none - mm info 0 - handover 0 - handover window rxlev averaging 10 - handover window rxqual averaging 1 - handover window rxlev neighbor averaging 10 - handover power budget interval 6 - handover power budget hysteresis 3 - handover maximum distance 9999 - timer t3101 10 - timer t3103 0 - timer t3105 0 - timer t3107 0 - timer t3109 4 - timer t3111 0 - timer t3113 60 - timer t3115 0 - timer t3117 0 - timer t3119 0 - timer t3122 0 - timer t3141 0 - dtx-used 1 - subscriber-keep-in-ram 0 - bts 0 - type hsl_femto - band DCS1800 - cell_identity 0 - location_area_code 1 - training_sequence_code 0 - base_station_id_code 0 - ms max power 15 - cell reselection hysteresis 4 - rxlev access min 0 - channel allocator ascending - rach tx integer 9 - rach max transmission 1 - hsl serial-number 8303701 - neighbor-list mode automatic - oml hsl line 0 - gprs mode none - trx 0 - rf_locked 0 - arfcn 871 - nominal power 23 - max_power_red 20 - rsl e1 tei 0 - timeslot 0 - phys_chan_config CCCH+SDCCH4 - hopping enabled 0 - timeslot 1 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 2 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 3 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 4 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 5 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 6 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 7 - phys_chan_config TCH/F - hopping enabled 0 diff --git a/openbsc/include/openbsc/bss.h b/openbsc/include/openbsc/bss.h index 1c6b5c342..49df547a1 100644 --- a/openbsc/include/openbsc/bss.h +++ b/openbsc/include/openbsc/bss.h @@ -13,7 +13,6 @@ extern int bts_init(void); extern int bts_model_bs11_init(void); extern int bts_model_rbs2k_init(void); extern int bts_model_nanobts_init(void); -extern int bts_model_hslfemto_init(void); extern int bts_model_nokia_site_init(void); extern int bts_model_sysmobts_init(void); #endif diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h index a42b6bbc6..3ef145765 100644 --- a/openbsc/include/openbsc/gsm_data_shared.h +++ b/openbsc/include/openbsc/gsm_data_shared.h @@ -393,7 +393,6 @@ enum gsm_bts_type { GSM_BTS_TYPE_BS11, GSM_BTS_TYPE_NANOBTS, GSM_BTS_TYPE_RBS2000, - GSM_BTS_TYPE_HSL_FEMTO, GSM_BTS_TYPE_NOKIA_SITE, GSM_BTS_TYPE_OSMO_SYSMO, _NUM_GSM_BTS_TYPE @@ -630,9 +629,6 @@ struct gsm_bts { struct gsm_abis_mo mo; } tf; } rbs2000; - struct { - unsigned long serno; - } hsl; struct { uint8_t bts_type; unsigned int configured:1, diff --git a/openbsc/osmoappdesc.py b/openbsc/osmoappdesc.py index 19ec6c3c9..9d6fbe67e 100644 --- a/openbsc/osmoappdesc.py +++ b/openbsc/osmoappdesc.py @@ -33,7 +33,7 @@ app_configs = { "mgcp": ["doc/examples/osmo-bsc_mgcp/mgcp.cfg"], "gbproxy": ["doc/examples/osmo-gbproxy/osmo-gbproxy.cfg"], "sgsn": ["doc/examples/osmo-sgsn/osmo-sgsn.cfg"], - "nitb": ["doc/examples/osmo-nitb/hsl/openbsc.cfg", + "nitb": ["doc/examples/osmo-nitb/nanobts/openbsc-multitrx.cfg", "doc/examples/osmo-nitb/nanobts/openbsc.cfg"] } @@ -47,6 +47,6 @@ apps = [(4242, "src/osmo-bsc/osmo-bsc", "OsmoBSC", "osmo-bsc"), ] vty_command = ["./src/osmo-nitb/osmo-nitb", "-c", - "doc/examples/osmo-nitb/hsl/openbsc.cfg"] + "doc/examples/osmo-nitb/nanobts/openbsc.cfg"] vty_app = apps[-1] diff --git a/openbsc/src/libbsc/Makefile.am b/openbsc/src/libbsc/Makefile.am index f5b1ff1da..42fabab6d 100644 --- a/openbsc/src/libbsc/Makefile.am +++ b/openbsc/src/libbsc/Makefile.am @@ -12,7 +12,6 @@ libbsc_a_SOURCES = abis_nm.c abis_nm_vty.c \ bts_ipaccess_nanobts.c \ bts_siemens_bs11.c \ bts_nokia_site.c \ - bts_hsl_femtocell.c \ bts_unknown.c \ bts_sysmobts.c \ chan_alloc.c \ diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c index adc2362fa..ee1fc9c98 100644 --- a/openbsc/src/libbsc/abis_nm.c +++ b/openbsc/src/libbsc/abis_nm.c @@ -632,10 +632,6 @@ static int abis_nm_rcvmsg_fom(struct msgb *mb) osmo_signal_dispatch(SS_NM, S_NM_IPACC_RESTART_NACK, NULL); break; case NM_MT_SET_BTS_ATTR_ACK: - /* The HSL wants an OPSTART _after_ the SI has been set */ - if (sign_link->trx->bts->type == GSM_BTS_TYPE_HSL_FEMTO) { - abis_nm_opstart(sign_link->trx->bts, NM_OC_BTS, 255, 255, 255); - } break; } diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 7aae590fc..41bfcdc92 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -722,12 +722,6 @@ static int rsl_rf_chan_release(struct gsm_lchan *lchan, int error, rc = abis_rsl_sendmsg(msg); /* BTS will respond by RF CHAN REL ACK */ -#ifdef HSL_SR_1_0 - /* The HSL Femto seems to 'forget' sending a REL ACK for TS1...TS7 */ - if (lchan->ts->trx->bts->type == GSM_BTS_TYPE_HSL_FEMTO && lchan->ts->nr != 0) - rc = rsl_rx_rf_chan_rel_ack(lchan); -#endif - return rc; } diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 2fb4f1301..8fd72cf46 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -38,7 +38,6 @@ /* global pointer to the gsm network data structure */ extern struct gsm_network *bsc_gsmnet; -extern int hsl_setup(struct gsm_network *gsmnet); /* Callback function for NACK on the OML NM */ static int oml_msg_nack(struct nm_nack_signal_data *nack) @@ -98,7 +97,7 @@ int bsc_shutdown_net(struct gsm_network *net) static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) { struct gsm_bts *bts = trx->bts; - int rc, j; + int rc; DEBUGP(DRR, "SI%s: %s\n", get_value_string(osmo_sitype_strs, i), osmo_hexdump(GSM_BTS_SI(bts, i), GSM_MACBLOCK_LEN)); @@ -108,26 +107,8 @@ static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) case SYSINFO_TYPE_5bis: case SYSINFO_TYPE_5ter: case SYSINFO_TYPE_6: - if (trx->bts->type == GSM_BTS_TYPE_HSL_FEMTO) { - /* HSL has mistaken SACCH INFO MODIFY for SACCH FILLING, - * so we need a special workaround here */ - /* This assumes a combined BCCH and TCH on TS1...7 */ - for (j = 0; j < 4; j++) - rsl_sacch_info_modify(&trx->ts[0].lchan[j], - osmo_sitype2rsl(i), - GSM_BTS_SI(bts, i), si_len); - for (j = 1; j < 8; j++) { - rsl_sacch_info_modify(&trx->ts[j].lchan[0], - osmo_sitype2rsl(i), - GSM_BTS_SI(bts, i), si_len); - rsl_sacch_info_modify(&trx->ts[j].lchan[1], - osmo_sitype2rsl(i), - GSM_BTS_SI(bts, i), si_len); - } - rc = 0; - } else - rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), - GSM_BTS_SI(bts, i), si_len); + rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), + GSM_BTS_SI(bts, i), si_len); break; default: rc = rsl_bcch_info(trx, osmo_sitype2rsl(i), diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index b98ef1544..6c58ff10b 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -276,8 +276,6 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " Unit ID: %u/%u/0, OML Stream ID 0x%02x%s", bts->ip_access.site_id, bts->ip_access.bts_id, bts->oml_tei, VTY_NEWLINE); - else if (bts->type == GSM_BTS_TYPE_HSL_FEMTO) - vty_out(vty, " Serial Number: %lu%s", bts->hsl.serno, VTY_NEWLINE); else if (bts->type == GSM_BTS_TYPE_NOKIA_SITE) vty_out(vty, " Skip Reset: %d%s", bts->nokia.skip_reset, VTY_NEWLINE); @@ -560,11 +558,6 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " oml ip.access stream_id %u line %u%s", bts->oml_tei, bts->oml_e1_link.e1_nr, VTY_NEWLINE); break; - case GSM_BTS_TYPE_HSL_FEMTO: - vty_out(vty, " hsl serial-number %lu%s", bts->hsl.serno, VTY_NEWLINE); - vty_out(vty, " oml hsl line %u%s", - bts->oml_e1_link.e1_nr, VTY_NEWLINE); - break; case GSM_BTS_TYPE_NOKIA_SITE: vty_out(vty, " nokia_site skip-reset %d%s", bts->nokia.skip_reset, VTY_NEWLINE); break; @@ -1665,25 +1658,6 @@ DEFUN(cfg_bts_rsl_ip, } -DEFUN(cfg_bts_serno, - cfg_bts_serno_cmd, - "hsl serial-number STRING", - "HSL BTS specific options\n" - "Set the HSL Serial Number of this BTS\n" - "Serial Number of this HSL BTS\n") -{ - struct gsm_bts *bts = vty->index; - - if (bts->type != GSM_BTS_TYPE_HSL_FEMTO) { - vty_out(vty, "%% BTS is not of HSL type%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bts->hsl.serno = strtoul(argv[0], NULL, 10); - - return CMD_SUCCESS; -} - DEFUN(cfg_bts_nokia_site_skip_reset, cfg_bts_nokia_site_skip_reset_cmd, "nokia_site skip-reset (0|1)", @@ -1728,26 +1702,6 @@ DEFUN(cfg_bts_stream_id, return CMD_SUCCESS; } -DEFUN(cfg_bts_hsl_oml, - cfg_bts_hsl_oml_cmd, - "oml hsl line E1_LINE", - OML_STR "HSL femto Specific Options\n" - "Set OML link of this HSL femto BTS\n" - "Virtual E1/T1 line number\n") -{ - struct gsm_bts *bts = vty->index; - int linenr = atoi(argv[0]); - - if (!(bts->type == GSM_BTS_TYPE_HSL_FEMTO)) { - vty_out(vty, "%% BTS is not of HSL type%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bts->oml_e1_link.e1_nr = linenr; - - return CMD_SUCCESS; -} - #define OML_E1_STR OML_STR "OML E1/T1 Configuration\n" DEFUN(cfg_bts_oml_e1, @@ -3084,10 +3038,8 @@ int bsc_vty_init(const struct log_info *cat) install_element(BTS_NODE, &cfg_bts_rsl_ip_cmd); install_element(BTS_NODE, &cfg_bts_timezone_cmd); install_element(BTS_NODE, &cfg_bts_no_timezone_cmd); - install_element(BTS_NODE, &cfg_bts_serno_cmd); install_element(BTS_NODE, &cfg_bts_nokia_site_skip_reset_cmd); install_element(BTS_NODE, &cfg_bts_stream_id_cmd); - install_element(BTS_NODE, &cfg_bts_hsl_oml_cmd); install_element(BTS_NODE, &cfg_bts_oml_e1_cmd); install_element(BTS_NODE, &cfg_bts_oml_e1_tei_cmd); install_element(BTS_NODE, &cfg_bts_challoc_cmd); diff --git a/openbsc/src/libbsc/bts_hsl_femtocell.c b/openbsc/src/libbsc/bts_hsl_femtocell.c deleted file mode 100644 index 1ce3eaaa1..000000000 --- a/openbsc/src/libbsc/bts_hsl_femtocell.c +++ /dev/null @@ -1,309 +0,0 @@ -/* OpenBSC support code for HSL Femtocell */ - -/* (C) 2011 by Harald Welte - * (C) 2011 by OnWaves - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * 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 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 . - * - */ - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int bts_model_hslfemto_start(struct gsm_network *net); -static void bts_model_hslfemto_e1line_bind_ops(struct e1inp_line *line); - -static struct gsm_bts_model model_hslfemto = { - .type = GSM_BTS_TYPE_HSL_FEMTO, - .start = bts_model_hslfemto_start, - .e1line_bind_ops = &bts_model_hslfemto_e1line_bind_ops, - .nm_att_tlvdef = { - .def = { - /* no HSL specific OML attributes that we know of */ - }, - }, -}; - - -static const uint8_t l1_msg[] = { -#ifdef HSL_SR_1_0 - 0x80, 0x8a, -#else - 0x81, 0x8a, -#endif - 0xC4, 0x0b, -}; - -static const uint8_t conn_trau_msg[] = { -#ifdef HSL_SR_1_0 - 0x80, 0x81, -#else - 0x81, 0x81, -#endif - 0xC1, 16, - 0x02, 0x00, 0x00, 0x00, 0xC0, 0xA8, 0xEA, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const uint8_t conn_trau_msg2[] = { -#ifdef HSL_SR_1_0 - 0x80, 0x81, -#else - 0x81, 0x81, -#endif - 0xC1, 16, - 0x02, 0x00, 0xd4, 0x07, 0xC0, 0xA8, 0xEA, 0x01, - 0x38, 0xA4, 0x45, 0x00, 0x04, 0x59, 0x40, 0x00 -}; - -static uint8_t oml_arfcn_bsic[] = { -#ifdef HSL_SR_1_0 - 0x81, 0x80, 0x00, 10, -#else - 0x80, 0x80, 0x00, 10, -#endif - NM_MT_SET_BTS_ATTR, NM_OC_BTS, 0xff, 0xff, 0xff, - NM_ATT_BCCH_ARFCN, 0x03, 0x67, - NM_ATT_BSIC, 0x00 -}; - -static inline struct msgb *hsl_alloc_msgb(void) -{ - return msgb_alloc_headroom(1024, 127, "HSL"); -} - -static int hslfemto_bootstrap_om(struct gsm_bts *bts) -{ - struct msgb *msg; - - msg = hsl_alloc_msgb(); - msgb_put(msg, sizeof(l1_msg)); - memcpy(msg->data, l1_msg, sizeof(l1_msg)); - msg->dst = bts->c0->rsl_link; - abis_rsl_sendmsg(msg); - -#if 1 - msg = hsl_alloc_msgb(); - msgb_put(msg, sizeof(conn_trau_msg)); - memcpy(msg->data, conn_trau_msg, sizeof(conn_trau_msg)); - msg->dst = bts->c0->rsl_link; - abis_rsl_sendmsg(msg); -#endif - msg = hsl_alloc_msgb(); - msgb_put(msg, sizeof(conn_trau_msg2)); - memcpy(msg->data, conn_trau_msg2, sizeof(conn_trau_msg2)); - msg->dst = bts->c0->rsl_link; - abis_rsl_sendmsg(msg); - - *((uint16_t *)oml_arfcn_bsic+10) = htons(bts->c0->arfcn); - oml_arfcn_bsic[13] = bts->bsic; - - msg = hsl_alloc_msgb(); - msgb_put(msg, sizeof(oml_arfcn_bsic)); - memcpy(msg->data, oml_arfcn_bsic, sizeof(oml_arfcn_bsic)); - msg->dst = bts->c0->rsl_link; - abis_sendmsg(msg); - - /* Delay the OPSTART until after SI have been set via RSL */ - //abis_nm_opstart(bts, NM_OC_BTS, 255, 255, 255); - - return 0; -} - -/* Callback function to be called every time we receive a signal from INPUT */ -static int inp_sig_cb(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct input_signal_data *isd = signal_data; - - if (subsys != SS_L_INPUT) - return 0; - - switch (signal) { - case S_L_INP_TEI_UP: - switch (isd->link_type) { - case E1INP_SIGN_OML: - if (isd->trx->bts->type == GSM_BTS_TYPE_HSL_FEMTO) - hslfemto_bootstrap_om(isd->trx->bts); - break; - } - } - - return 0; -} - -static struct gsm_network *hsl_gsmnet; - -static int bts_model_hslfemto_start(struct gsm_network *net) -{ - model_hslfemto.features.data = &model_hslfemto._features_data[0]; - model_hslfemto.features.data_len = sizeof(model_hslfemto._features_data); - - gsm_btsmodel_set_feature(&model_hslfemto, BTS_FEAT_GPRS); - gsm_btsmodel_set_feature(&model_hslfemto, BTS_FEAT_EGPRS); - - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); - - hsl_gsmnet = net; - return 0; -} - -int bts_model_hslfemto_init(void) -{ - return gsm_bts_model_register(&model_hslfemto); -} - -#define OML_UP 0x0001 -#define RSL_UP 0x0002 - -struct gsm_bts *find_bts_by_serno(struct gsm_network *net, uint64_t serno) -{ - struct gsm_bts *bts; - - llist_for_each_entry(bts, &net->bts_list, list) { - if (bts->type != GSM_BTS_TYPE_HSL_FEMTO) - continue; - - if (serno == bts->hsl.serno) - return bts; - } - return NULL; -} - -/* This function is called once the OML/RSL link becomes up. */ -static struct e1inp_sign_link * -hsl_sign_link_up(void *unit_data, struct e1inp_line *line, - enum e1inp_sign_type type) -{ - struct hsl_unit *dev = unit_data; - struct gsm_bts *bts; - - bts = find_bts_by_serno(hsl_gsmnet, dev->serno); - if (!bts) { - LOGP(DLINP, LOGL_ERROR, "Unable to find BTS config for " - "serial number %"PRIx64"\n", dev->serno); - return NULL; - } - DEBUGP(DLINP, "Identified HSL BTS Serial Number %"PRIx64"\n", dev->serno); - - /* we shouldn't hardcode it, but HSL femto also hardcodes it... */ - bts->oml_tei = 255; - bts->c0->rsl_tei = 0; - bts->oml_link = e1inp_sign_link_create(&line->ts[E1INP_SIGN_OML-1], - E1INP_SIGN_OML, bts->c0, - bts->oml_tei, 0); - bts->c0->rsl_link = e1inp_sign_link_create(&line->ts[E1INP_SIGN_OML-1], - E1INP_SIGN_RSL, bts->c0, - bts->c0->rsl_tei, 0); - e1inp_event(&line->ts[E1INP_SIGN_OML-1], S_L_INP_TEI_UP, 255, 0); - e1inp_event(&line->ts[E1INP_SIGN_OML-1], S_L_INP_TEI_UP, 0, 0); - bts->ip_access.flags |= OML_UP; - bts->ip_access.flags |= (RSL_UP << 0); - - return bts->oml_link; -} - -void hsl_drop_oml(struct gsm_bts *bts) -{ - if (!bts->oml_link) - return; - - e1inp_sign_link_destroy(bts->oml_link); - bts->oml_link = NULL; - - e1inp_sign_link_destroy(bts->c0->rsl_link); - bts->c0->rsl_link = NULL; - - bts->ip_access.flags = 0; -} - -static void hsl_sign_link_down(struct e1inp_line *line) -{ - /* No matter what link went down, we close both signal links. */ - struct e1inp_ts *ts = &line->ts[E1INP_SIGN_OML-1]; - struct e1inp_sign_link *link; - - llist_for_each_entry(link, &ts->sign.sign_links, list) { - struct gsm_bts *bts = link->trx->bts; - - hsl_drop_oml(bts); - /* Yes, we only use the first element of the list. */ - break; - } -} - -/* This function is called if we receive one OML/RSL message. */ -static int hsl_sign_link(struct msgb *msg) -{ - int ret = 0; - struct e1inp_sign_link *link = msg->dst; - struct e1inp_ts *e1i_ts = link->ts; - - switch (link->type) { - case E1INP_SIGN_OML: - if (!(link->trx->bts->ip_access.flags & OML_UP)) { - e1inp_event(e1i_ts, S_L_INP_TEI_UP, - link->tei, link->sapi); - link->trx->bts->ip_access.flags |= OML_UP; - } - ret = abis_nm_rcvmsg(msg); - break; - case E1INP_SIGN_RSL: - if (!(link->trx->bts->ip_access.flags & - (RSL_UP << link->trx->nr))) { - e1inp_event(e1i_ts, S_L_INP_TEI_UP, - link->tei, link->sapi); - link->trx->bts->ip_access.flags |= - (RSL_UP << link->trx->nr); - } - ret = abis_rsl_rcvmsg(msg); - break; - default: - LOGP(DLINP, LOGL_ERROR, "Unknown signal link type %d\n", - link->type); - msgb_free(msg); - break; - } - return ret; -} - -static struct e1inp_line_ops hsl_e1inp_line_ops = { - .cfg = { - .ipa = { - .addr = "0.0.0.0", - .role = E1INP_LINE_R_BSC, - }, - }, - .sign_link_up = hsl_sign_link_up, - .sign_link_down = hsl_sign_link_down, - .sign_link = hsl_sign_link, -}; - -static void bts_model_hslfemto_e1line_bind_ops(struct e1inp_line *line) -{ - e1inp_line_bind_ops(line, &hsl_e1inp_line_ops); -} diff --git a/openbsc/src/libbsc/bts_init.c b/openbsc/src/libbsc/bts_init.c index ae41ecce7..d6b152a79 100644 --- a/openbsc/src/libbsc/bts_init.c +++ b/openbsc/src/libbsc/bts_init.c @@ -23,7 +23,6 @@ int bts_init(void) bts_model_bs11_init(); bts_model_rbs2k_init(); bts_model_nanobts_init(); - bts_model_hslfemto_init(); bts_model_nokia_site_init(); bts_model_sysmobts_init(); /* Your new BTS here. */ diff --git a/openbsc/src/libbsc/e1_config.c b/openbsc/src/libbsc/e1_config.c index d3dff4880..d82b009c7 100644 --- a/openbsc/src/libbsc/e1_config.c +++ b/openbsc/src/libbsc/e1_config.c @@ -185,8 +185,7 @@ int e1_reconfig_bts(struct gsm_bts *bts) /* skip signal link initialization, this is done later for these BTS. */ if (bts->type == GSM_BTS_TYPE_NANOBTS || - bts->type == GSM_BTS_TYPE_OSMO_SYSMO || - bts->type == GSM_BTS_TYPE_HSL_FEMTO) + bts->type == GSM_BTS_TYPE_OSMO_SYSMO) return e1inp_line_update(line); /* OML link */ diff --git a/openbsc/src/libbsc/system_information.c b/openbsc/src/libbsc/system_information.c index 88b81dcb1..c901a4ae6 100644 --- a/openbsc/src/libbsc/system_information.c +++ b/openbsc/src/libbsc/system_information.c @@ -596,7 +596,6 @@ static int generate_si5(uint8_t *output, struct gsm_bts *bts) switch (bts->type) { case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMO_SYSMO: - case GSM_BTS_TYPE_HSL_FEMTO: *output++ = (l2_plen << 2) | 1; l2_plen++; break; @@ -632,7 +631,6 @@ static int generate_si5bis(uint8_t *output, struct gsm_bts *bts) switch (bts->type) { case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMO_SYSMO: - case GSM_BTS_TYPE_HSL_FEMTO: *output++ = (l2_plen << 2) | 1; l2_plen++; break; @@ -677,7 +675,6 @@ static int generate_si5ter(uint8_t *output, struct gsm_bts *bts) switch (bts->type) { case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMO_SYSMO: - case GSM_BTS_TYPE_HSL_FEMTO: *output++ = (l2_plen << 2) | 1; l2_plen++; break; @@ -714,7 +711,6 @@ static int generate_si6(uint8_t *output, struct gsm_bts *bts) switch (bts->type) { case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMO_SYSMO: - case GSM_BTS_TYPE_HSL_FEMTO: *output++ = (l2_plen << 2) | 1; l2_plen++; break; diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c index dd1d93bc2..5f7e32e73 100644 --- a/openbsc/src/libcommon/gsm_data.c +++ b/openbsc/src/libcommon/gsm_data.c @@ -189,7 +189,6 @@ const struct value_string bts_type_names[_NUM_GSM_BTS_TYPE+1] = { { GSM_BTS_TYPE_BS11, "bs11" }, { GSM_BTS_TYPE_NANOBTS, "nanobts" }, { GSM_BTS_TYPE_RBS2000, "rbs2000" }, - { GSM_BTS_TYPE_HSL_FEMTO, "hsl_femto" }, { GSM_BTS_TYPE_NOKIA_SITE, "nokia_site" }, { GSM_BTS_TYPE_OSMO_SYSMO, "sysmobts" }, { 0, NULL } @@ -200,7 +199,6 @@ const struct value_string bts_type_descs[_NUM_GSM_BTS_TYPE+1] = { { GSM_BTS_TYPE_BS11, "Siemens BTS (BS-11 or compatible)" }, { GSM_BTS_TYPE_NANOBTS, "ip.access nanoBTS or compatible" }, { GSM_BTS_TYPE_RBS2000, "Ericsson RBS2000 Series" }, - { GSM_BTS_TYPE_HSL_FEMTO, "HSL 2.75G femto" }, { GSM_BTS_TYPE_NOKIA_SITE, "Nokia {Metro,Ultra,In}Site" }, { GSM_BTS_TYPE_OSMO_SYSMO, "sysmocom sysmoBTS" }, { 0, NULL } @@ -349,8 +347,6 @@ int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type) } switch (bts->type) { - case GSM_BTS_TYPE_HSL_FEMTO: - bts->c0->rsl_tei = 0; case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMO_SYSMO: /* Set the default OML Stream ID to 0xff */