diff options
Diffstat (limited to 'tests/gb')
-rw-r--r-- | tests/gb/gprs_bssgp_rim_test.c | 135 | ||||
-rw-r--r-- | tests/gb/gprs_bssgp_rim_test.ok | 56 | ||||
-rw-r--r-- | tests/gb/gprs_bssgp_test.c | 133 | ||||
-rw-r--r-- | tests/gb/gprs_bssgp_test.ok | 56 |
4 files changed, 191 insertions, 189 deletions
diff --git a/tests/gb/gprs_bssgp_rim_test.c b/tests/gb/gprs_bssgp_rim_test.c index 8c6a00d0..d08421b1 100644 --- a/tests/gb/gprs_bssgp_rim_test.c +++ b/tests/gb/gprs_bssgp_rim_test.c @@ -24,6 +24,137 @@ #include <string.h> #include <unistd.h> +void dump_rim_ri(struct bssgp_rim_routing_info *ri) +{ + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + printf("GERAN cell identifier\n"); + printf(" * mcc: %u\n", ri->geran.raid.mcc); + printf(" mnc: %u\n", ri->geran.raid.mnc); + printf(" mnc 3 digits: %u\n", ri->geran.raid.mnc_3_digits); + printf(" lac: %u\n", ri->geran.raid.lac); + printf(" rac: %u\n", ri->geran.raid.rac); + printf(" * cell id: %04x\n", ri->geran.cid); + break; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + printf("UTRAN RNC identifier\n"); + printf(" * mcc: %u\n", ri->utran.raid.mcc); + printf(" mnc: %u\n", ri->utran.raid.mnc); + printf(" mnc 3 digits: %u\n", ri->utran.raid.mnc_3_digits); + printf(" lac: %u\n", ri->utran.raid.lac); + printf(" rac: %u\n", ri->utran.raid.rac); + printf(" * rnc id: %04x\n", ri->utran.rncid); + break; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + printf("EUTRAN eNB identifier\n"); + printf(" * mcc: %u\n", ri->eutran.tai.mcc); + printf(" mnc: %u\n", ri->eutran.tai.mnc); + printf(" mnc 3 digits: %u\n", ri->eutran.tai.mnc_3_digits); + printf(" tac: %u\n", ri->eutran.tai.tac); + printf(" * global_enb_id: %s\n", + osmo_hexdump_nospc(ri->eutran.global_enb_id, + ri->eutran.global_enb_id_len)); + break; + default: + OSMO_ASSERT(false); + } +} + +static void test_bssgp_parse_rim_ri() +{ + int rc; + struct bssgp_rim_routing_info result; + uint8_t testvec_geran[] = + { 0x00, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + uint8_t testvec_utran[] = + { 0x01, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + uint8_t testvec_eutran[] = + { 0x02, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + + printf("----- %s START\n", __func__); + + rc = bssgp_parse_rim_ri(&result, testvec_geran, + sizeof(testvec_geran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_utran, + sizeof(testvec_utran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_eutran, + sizeof(testvec_eutran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_create_rim_ri() +{ + int rc; + struct bssgp_rim_routing_info ri; + uint8_t result[15]; + + printf("----- %s START\n", __func__); + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_GERAN; + + ri.geran.raid.mcc = 262; + ri.geran.raid.mnc = 42; + ri.geran.raid.mnc_3_digits = false; + ri.geran.raid.lac = 13200; + ri.geran.raid.rac = 0; + ri.geran.cid = 0x51e1; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_UTRAN; + ri.utran.raid.mcc = 262; + ri.utran.raid.mnc = 42; + ri.utran.raid.mnc_3_digits = 0; + ri.utran.raid.lac = 13200; + ri.utran.raid.rac = 0; + ri.utran.rncid = 0x51e1; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_EUTRAN; + ri.eutran.tai.mcc = 262; + ri.eutran.tai.mnc = 42; + ri.eutran.tai.mnc_3_digits = 0; + ri.eutran.tai.tac = 13200; + ri.eutran.global_enb_id[0] = 0x00; + ri.eutran.global_enb_id[1] = 0x51; + ri.eutran.global_enb_id[2] = 0xe1; + ri.eutran.global_enb_id_len = 3; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + printf("----- %s END\n", __func__); +} + void dump_bssgp_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *app_cont) { printf(" app_cont: bssgp_ran_inf_req_app_cont_nacc:\n"); @@ -636,6 +767,10 @@ int main(int argc, char **argv) { printf("===== BSSGP RIM test START\n"); + /* RIM routing information */ + test_bssgp_parse_rim_ri(); + test_bssgp_create_rim_ri(); + /* RIM containers */ test_bssgp_dec_ran_inf_req_rim_cont_nacc(); test_bssgp_enc_ran_inf_req_rim_cont_nacc(); diff --git a/tests/gb/gprs_bssgp_rim_test.ok b/tests/gb/gprs_bssgp_rim_test.ok index d075ca3e..df5a41df 100644 --- a/tests/gb/gprs_bssgp_rim_test.ok +++ b/tests/gb/gprs_bssgp_rim_test.ok @@ -1,4 +1,60 @@ ===== BSSGP RIM test START +----- test_bssgp_parse_rim_ri START +rc=9 +GERAN cell identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * cell id: 51e1 + +rc=9 +UTRAN RNC identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * rnc id: 51e1 + +rc=9 +EUTRAN eNB identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + tac: 13200 + * global_enb_id: 0051e1 + +----- test_bssgp_parse_rim_ri END +----- test_bssgp_create_rim_ri START +GERAN cell identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * cell id: 51e1 +rc=9, result=0062f22433900051e1 + +UTRAN RNC identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * rnc id: 51e1 +rc=9, result=0162f22433900051e1 + +EUTRAN eNB identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + tac: 13200 + * global_enb_id: 0051e1 +rc=9, result=0262f22433900051e1 + +----- test_bssgp_create_rim_ri END ----- test_bssgp_dec_ran_inf_req_rim_cont_nacc START rc=0, bssgp_ran_inf_req_rim_cont: app_id = 01 diff --git a/tests/gb/gprs_bssgp_test.c b/tests/gb/gprs_bssgp_test.c index e1c920a9..52e986e8 100644 --- a/tests/gb/gprs_bssgp_test.c +++ b/tests/gb/gprs_bssgp_test.c @@ -289,137 +289,6 @@ static void test_bssgp_msgb_copy() printf("----- %s END\n", __func__); } -void dump_rim_ri(struct bssgp_rim_routing_info *ri) -{ - switch (ri->discr) { - case BSSGP_RIM_ROUTING_INFO_GERAN: - printf("GERAN cell identifier\n"); - printf(" * mcc: %u\n", ri->geran.raid.mcc); - printf(" mnc: %u\n", ri->geran.raid.mnc); - printf(" mnc 3 digits: %u\n", ri->geran.raid.mnc_3_digits); - printf(" lac: %u\n", ri->geran.raid.lac); - printf(" rac: %u\n", ri->geran.raid.rac); - printf(" * cell id: %04x\n", ri->geran.cid); - break; - case BSSGP_RIM_ROUTING_INFO_UTRAN: - printf("UTRAN RNC identifier\n"); - printf(" * mcc: %u\n", ri->utran.raid.mcc); - printf(" mnc: %u\n", ri->utran.raid.mnc); - printf(" mnc 3 digits: %u\n", ri->utran.raid.mnc_3_digits); - printf(" lac: %u\n", ri->utran.raid.lac); - printf(" rac: %u\n", ri->utran.raid.rac); - printf(" * rnc id: %04x\n", ri->utran.rncid); - break; - case BSSGP_RIM_ROUTING_INFO_EUTRAN: - printf("EUTRAN eNB identifier\n"); - printf(" * mcc: %u\n", ri->eutran.tai.mcc); - printf(" mnc: %u\n", ri->eutran.tai.mnc); - printf(" mnc 3 digits: %u\n", ri->eutran.tai.mnc_3_digits); - printf(" tac: %u\n", ri->eutran.tai.tac); - printf(" * global_enb_id: %s\n", - osmo_hexdump_nospc(ri->eutran.global_enb_id, - ri->eutran.global_enb_id_len)); - break; - default: - OSMO_ASSERT(false); - } -} - -static void test_bssgp_parse_rim_ri() -{ - int rc; - struct bssgp_rim_routing_info result; - uint8_t testvec_geran[] = - { 0x00, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - uint8_t testvec_utran[] = - { 0x01, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - uint8_t testvec_eutran[] = - { 0x02, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - - printf("----- %s START\n", __func__); - - rc = bssgp_parse_rim_ri(&result, testvec_geran, - sizeof(testvec_geran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - rc = bssgp_parse_rim_ri(&result, testvec_utran, - sizeof(testvec_utran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - rc = bssgp_parse_rim_ri(&result, testvec_eutran, - sizeof(testvec_eutran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - printf("----- %s END\n", __func__); -} - -static void test_bssgp_create_rim_ri() -{ - int rc; - struct bssgp_rim_routing_info ri; - uint8_t result[15]; - - printf("----- %s START\n", __func__); - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_GERAN; - - ri.geran.raid.mcc = 262; - ri.geran.raid.mnc = 42; - ri.geran.raid.mnc_3_digits = false; - ri.geran.raid.lac = 13200; - ri.geran.raid.rac = 0; - ri.geran.cid = 0x51e1; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_UTRAN; - ri.utran.raid.mcc = 262; - ri.utran.raid.mnc = 42; - ri.utran.raid.mnc_3_digits = 0; - ri.utran.raid.lac = 13200; - ri.utran.raid.rac = 0; - ri.utran.rncid = 0x51e1; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_EUTRAN; - ri.eutran.tai.mcc = 262; - ri.eutran.tai.mnc = 42; - ri.eutran.tai.mnc_3_digits = 0; - ri.eutran.tai.tac = 13200; - ri.eutran.global_enb_id[0] = 0x00; - ri.eutran.global_enb_id[1] = 0x51; - ri.eutran.global_enb_id[2] = 0xe1; - ri.eutran.global_enb_id_len = 3; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - printf("----- %s END\n", __func__); -} - static struct log_info info = {}; int main(int argc, char **argv) @@ -448,8 +317,6 @@ int main(int argc, char **argv) test_bssgp_bad_reset(); test_bssgp_flow_control_bvc(); test_bssgp_msgb_copy(); - test_bssgp_parse_rim_ri(); - test_bssgp_create_rim_ri(); printf("===== BSSGP test END\n\n"); exit(EXIT_SUCCESS); diff --git a/tests/gb/gprs_bssgp_test.ok b/tests/gb/gprs_bssgp_test.ok index 744f1a79..c5b3e7d1 100644 --- a/tests/gb/gprs_bssgp_test.ok +++ b/tests/gb/gprs_bssgp_test.ok @@ -17,61 +17,5 @@ Got message: 26 1e 81 2a 05 82 10 22 03 82 c0 40 01 82 08 11 1c 82 60 20 3c 81 7 Old msgb: [L3]> 22 04 82 00 02 07 81 08 New msgb: [L3]> 22 04 82 00 02 07 81 08 ----- test_bssgp_msgb_copy END ------ test_bssgp_parse_rim_ri START -rc=9 -GERAN cell identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * cell id: 51e1 - -rc=9 -UTRAN RNC identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * rnc id: 51e1 - -rc=9 -EUTRAN eNB identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - tac: 13200 - * global_enb_id: 0051e1 - ------ test_bssgp_parse_rim_ri END ------ test_bssgp_create_rim_ri START -GERAN cell identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * cell id: 51e1 -rc=9, result=0062f22433900051e1 - -UTRAN RNC identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * rnc id: 51e1 -rc=9, result=0162f22433900051e1 - -EUTRAN eNB identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - tac: 13200 - * global_enb_id: 0051e1 -rc=9, result=0262f22433900051e1 - ------ test_bssgp_create_rim_ri END ===== BSSGP test END |