aboutsummaryrefslogtreecommitdiffstats
path: root/tests/handover/handover_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/handover/handover_test.c')
-rw-r--r--tests/handover/handover_test.c62
1 files changed, 25 insertions, 37 deletions
diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c
index c9799af7..f1235f53 100644
--- a/tests/handover/handover_test.c
+++ b/tests/handover/handover_test.c
@@ -28,6 +28,7 @@
#include <osmo-bts/logging.h>
#include <osmo-bts/abis.h>
#include <osmo-bts/bts.h>
+#include <osmo-bts/bts_sm.h>
#include <osmo-bts/vty.h>
#include <osmo-bts/bts_model.h>
#include <osmo-bts/pcu_if.h>
@@ -58,6 +59,7 @@ int main(int argc, char **argv)
{
void *tall_bts_ctx;
struct e1inp_line *line;
+ struct e1inp_ts *sign_ts;
struct gsm_lchan *lchan;
struct osmo_phsap_prim nl1sap;
struct msgb *msg;
@@ -70,7 +72,12 @@ int main(int argc, char **argv)
osmo_init_logging2(tall_bts_ctx, &bts_log_info);
osmo_stderr_target->categories[DHO].loglevel = LOGL_DEBUG;
- bts = gsm_bts_alloc(tall_bts_ctx, 0);
+ g_bts_sm = gsm_bts_sm_alloc(tall_bts_ctx);
+ if (!g_bts_sm) {
+ fprintf(stderr, "Failed to create BTS Site Manager structure\n");
+ exit(1);
+ }
+ bts = gsm_bts_alloc(g_bts_sm, 0);
if (!bts) {
fprintf(stderr, "Failed to create BTS structure\n");
exit(1);
@@ -85,35 +92,31 @@ int main(int argc, char **argv)
fprintf(stderr, "Failed to alloc TRX structure\n");
exit(1);
}
- if (bts_trx_init(trx) < 0) {
- fprintf(stderr, "unable to init TRX\n");
- exit(1);
- }
libosmo_abis_init(NULL);
line = e1inp_line_create(0, "ipa");
OSMO_ASSERT(line);
-
- e1inp_ts_config_sign(&line->ts[E1INP_SIGN_RSL-1], line);
- trx->rsl_link = e1inp_sign_link_create(&line->ts[E1INP_SIGN_RSL-1], E1INP_SIGN_RSL, NULL, 0, 0);
- OSMO_ASSERT(trx->rsl_link);
- trx->rsl_link->trx = trx;
+ sign_ts = e1inp_line_ipa_rsl_ts(line, 0);
+ e1inp_ts_config_sign(sign_ts, line);
+ trx->bb_transc.rsl.link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_RSL, NULL, 0, 0);
+ OSMO_ASSERT(trx->bb_transc.rsl.link);
+ trx->bb_transc.rsl.link->trx = trx;
fprintf(stderr, "test 1: without timeout\n");
/* create two lchans for handover */
lchan = &trx->ts[1].lchan[0];
lchan->type = GSM_LCHAN_SDCCH;
- l1sap_chan_act(lchan->ts->trx, 0x09, NULL);
+ l1sap_chan_act(lchan->ts->trx, 0x09);
lchan = &trx->ts[2].lchan[0];
lchan->type = GSM_LCHAN_TCH_F;
lchan->ho.active = HANDOVER_ENABLED;
lchan->ho.ref = 23;
- l1sap_chan_act(lchan->ts->trx, 0x0a, NULL);
- OSMO_ASSERT(msgb_dequeue(&trx->rsl_link->tx_list));
- OSMO_ASSERT(msgb_dequeue(&trx->rsl_link->tx_list));
- OSMO_ASSERT(!msgb_dequeue(&trx->rsl_link->tx_list));
+ l1sap_chan_act(lchan->ts->trx, 0x0a);
+ OSMO_ASSERT(msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
+ OSMO_ASSERT(msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
+ OSMO_ASSERT(!msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
/* send access burst with wrong ref */
memset(&nl1sap, 0, sizeof(nl1sap));
@@ -126,7 +129,7 @@ int main(int argc, char **argv)
/* expect no action */
OSMO_ASSERT(modify_count == 0);
- OSMO_ASSERT(!msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(!msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
/* send access burst with correct ref */
nl1sap.u.rach_ind.ra = 23;
@@ -137,10 +140,10 @@ int main(int argc, char **argv)
expect_phys_info(&trx->ts[2].lchan[0].lapdm_ch.lapdm_dcch);
/* expect exactly one HO.DET */
- OSMO_ASSERT(msg = msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(msg = msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
rslh = msgb_l2(msg);
OSMO_ASSERT(rslh->c.msg_type == RSL_MT_HANDO_DET);
- OSMO_ASSERT(!msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(!msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
/* expect T3105 running */
OSMO_ASSERT(osmo_timer_pending(&trx->ts[2].lchan[0].ho.t3105))
@@ -168,10 +171,10 @@ int main(int argc, char **argv)
expect_phys_info(&trx->ts[2].lchan[0].lapdm_ch.lapdm_dcch);
/* expect exactly one HO.DET */
- OSMO_ASSERT(msg = msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(msg = msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
rslh = msgb_l2(msg);
OSMO_ASSERT(rslh->c.msg_type == RSL_MT_HANDO_DET);
- OSMO_ASSERT(!msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(!msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
for (i = 0; i < bts->ny1 - 1; i++) {
/* expect T3105 running */
@@ -193,10 +196,10 @@ int main(int argc, char **argv)
OSMO_ASSERT(!osmo_timer_pending(&trx->ts[2].lchan[0].ho.t3105))
/* expect exactly one CONN.FAIL */
- OSMO_ASSERT(msg = msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(msg = msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
rslh = msgb_l2(msg);
OSMO_ASSERT(rslh->c.msg_type == RSL_MT_CONN_FAIL);
- OSMO_ASSERT(!msgb_dequeue(&trx->rsl_link->tx_list));
+ OSMO_ASSERT(!msgb_dequeue(&trx->bb_transc.rsl.link->tx_list));
#if 0
while (!quit) {
@@ -268,18 +271,3 @@ done:
msgb_free(msg);
return rc;
}
-
-int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, void *obj) { return 0; }
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int obj_kind, void *obj) { return 0; }
-int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) { return 0; }
-int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) { return 0; }
-int bts_model_init(struct gsm_bts *bts) { return 0; }
-int bts_model_trx_init(struct gsm_bts_trx *trx) { return 0; }
-int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { return 0; }
-int bts_model_trx_close(struct gsm_bts_trx *trx) { return 0; }
-void trx_get_hlayer1(void) {}
-int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; }
-int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) { return 0; }
-void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return; }
-int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { return 0; }
-int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { return 0; }