aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/emu/pcu_emu.cpp24
-rw-r--r--tests/tbf/TbfTest.cpp49
2 files changed, 44 insertions, 29 deletions
diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp
index 7f993551..98da13e4 100644
--- a/tests/emu/pcu_emu.cpp
+++ b/tests/emu/pcu_emu.cpp
@@ -93,15 +93,28 @@ void create_and_connect_bssgp(struct gprs_rlcmac_bts *bts,
uint32_t sgsn_ip, uint16_t sgsn_port)
{
struct gprs_bssgp_pcu *pcu;
+ struct osmo_sockaddr local, remote;
+
+ local.u.sin.sin_family = AF_INET;
+ local.u.sin.sin_addr.s_addr = 0;
+ local.u.sin.sin_port = 0;
+
+ remote.u.sin.sin_family = AF_INET;
+ remote.u.sin.sin_addr.s_addr = htonl(sgsn_ip);
+ remote.u.sin.sin_port = htons(sgsn_port);
+
+ pcu = gprs_bssgp_init(bts, 20, 20, 901, 99, false, 1, 0, 0);
+ gprs_nsvc_create_and_connect(bts, &local, &remote,
+ 20, 20);
- pcu = gprs_bssgp_create_and_connect(bts, 0, sgsn_ip, sgsn_port,
- 20, 20, 20, 901, 99, false, 1, 0, 0);
pcu->on_unblock_ack = bvci_unblocked;
pcu->on_dl_unit_data = bssgp_data;
}
int main(int argc, char **argv)
{
+ struct gprs_rlcmac_bts *bts = bts_main_data();
+
tall_pcu_ctx = talloc_named_const(NULL, 1, "moiji-mobile Emu-PCU context");
if (!tall_pcu_ctx)
abort();
@@ -109,8 +122,8 @@ int main(int argc, char **argv)
msgb_talloc_ctx_init(tall_pcu_ctx, 0);
osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, &gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
@@ -121,7 +134,8 @@ int main(int argc, char **argv)
current_test = 0;
init_main_bts();
- create_and_connect_bssgp(bts_main_data(), INADDR_LOOPBACK, 23000);
+ bssgp_set_bssgp_callback(gprs_gp_send_cb, bts->nsi);
+ create_and_connect_bssgp(bts, INADDR_LOOPBACK, 23000);
for (;;)
osmo_select_main(0);
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index b16c089b..15a79d0c 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -470,15 +470,15 @@ static void test_tbf_exhaustion()
fprintf(stderr, "=== start %s ===\n", __func__);
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts = the_bts.bts_data();
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
- bts = the_bts.bts_data();
setup_bts(&the_bts, ts_no);
- gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 1234, 1234, 1234, 1, 1, false, 0, 0, 0);
+ gprs_bssgp_init(bts, 1234, 1234, 1, 1, false, 0, 0, 0);
for (i = 0; i < 1024; i++) {
uint32_t tlli = 0xc0000000 + i;
@@ -497,7 +497,7 @@ static void test_tbf_exhaustion()
OSMO_ASSERT(rc == -EBUSY);
fprintf(stderr, "=== end %s ===\n", __func__);
- gprs_bssgp_destroy();
+ gprs_bssgp_destroy(bts);
}
static void test_tbf_dl_llc_loss()
@@ -514,20 +514,20 @@ static void test_tbf_dl_llc_loss()
uint8_t buf[19];
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts = the_bts.bts_data();
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
fprintf(stderr, "=== start %s ===\n", __func__);
- bts = the_bts.bts_data();
setup_bts(&the_bts, ts_no);
/* keep the MS object 10 seconds */
OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2030, 10, OSMO_TDEF_S) == 0);
- gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 2234, 2234, 2234, 1, 1, false, 0, 0, 0);
+ gprs_bssgp_init(bts, 2234, 2234, 1, 1, false, 0, 0, 0);
/* Handle LLC frame 1 */
memset(buf, 1, sizeof(buf));
@@ -582,7 +582,7 @@ static void test_tbf_dl_llc_loss()
fprintf(stderr, "=== end %s ===\n", __func__);
- gprs_bssgp_destroy();
+ gprs_bssgp_destroy(bts);
}
static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(BTS *the_bts,
@@ -2165,19 +2165,19 @@ static void test_tbf_gprs_egprs()
fprintf(stderr, "=== start %s ===\n", __func__);
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts = the_bts.bts_data();
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
- bts = the_bts.bts_data();
setup_bts(&the_bts, ts_no);
/* EGPRS-only */
bts->egprs_enabled = 1;
- gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 3234, 3234, 3234, 1, 1, false, 0, 0, 0);
+ gprs_bssgp_init(bts, 3234, 3234, 1, 1, false, 0, 0, 0);
/* Does not support EGPRS */
rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0,
@@ -2186,12 +2186,13 @@ static void test_tbf_gprs_egprs()
OSMO_ASSERT(rc == -EBUSY);
fprintf(stderr, "=== end %s ===\n", __func__);
- gprs_bssgp_destroy();
+ gprs_bssgp_destroy(bts);
}
static inline void ws_check(gprs_rlcmac_dl_tbf *dl_tbf, const char *test, uint8_t exp_slots, uint16_t exp_ws,
bool free, bool end)
{
+ gprs_rlcmac_bts *bts = dl_tbf->bts->bts_data();
if (!dl_tbf) {
fprintf(stderr, "%s(): FAILED (NULL TBF)\n", test);
return;
@@ -2213,7 +2214,7 @@ static inline void ws_check(gprs_rlcmac_dl_tbf *dl_tbf, const char *test, uint8_
if (end) {
fprintf(stderr, "=== end %s ===\n", test);
- gprs_bssgp_destroy();
+ gprs_bssgp_destroy(bts);
}
}
@@ -2228,13 +2229,13 @@ static void test_tbf_ws()
fprintf(stderr, "=== start %s ===\n", __func__);
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts = the_bts.bts_data();
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
- bts = the_bts.bts_data();
setup_bts(&the_bts, ts_no);
bts->ws_base = 128;
@@ -2245,7 +2246,7 @@ static void test_tbf_ws()
bts->trx[0].pdch[4].enable();
bts->trx[0].pdch[5].enable();
- gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 4234, 4234, 4234, 1, 1, false, 0, 0, 0);
+ gprs_bssgp_init(bts, 4234, 4234, 1, 1, false, 0, 0, 0);
/* Does no support EGPRS */
ms = the_bts.ms_alloc(ms_class, 0);
@@ -2274,13 +2275,13 @@ static void test_tbf_update_ws(void)
fprintf(stderr, "=== start %s ===\n", __func__);
- bssgp_nsi = gprs_ns_instantiate(&gprs_bssgp_ns_cb, tall_pcu_ctx);
- if (!bssgp_nsi) {
+ bts = the_bts.bts_data();
+ bts->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL);
+ if (!bts->nsi) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n");
abort();
}
- bts = the_bts.bts_data();
setup_bts(&the_bts, ts_no);
bts->ws_base = 128;
@@ -2291,7 +2292,7 @@ static void test_tbf_update_ws(void)
bts->trx[0].pdch[4].enable();
bts->trx[0].pdch[5].enable();
- gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 5234, 5234, 5234, 1, 1, false, 0, 0, 0);
+ gprs_bssgp_init(bts, 5234, 5234, 1, 1, false, 0, 0, 0);
/* EGPRS-only */
bts->egprs_enabled = 1;