This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Max gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/6484 VLR tests: add simple LU generator Generate LU REQ using function instead of hardcoded hex strings. Change-Id: Iab8b07b3276b6f6ac0387df14abb98355ea0e99a Related: OS#2864 --- M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_hlr_reject.c M tests/msc_vlr/msc_vlr_test_hlr_timeout.c M tests/msc_vlr/msc_vlr_test_ms_timeout.c M tests/msc_vlr/msc_vlr_test_no_authen.c M tests/msc_vlr/msc_vlr_test_reject_concurrency.c M tests/msc_vlr/msc_vlr_test_rest.c M tests/msc_vlr/msc_vlr_tests.c M tests/msc_vlr/msc_vlr_tests.h 10 files changed, 432 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/84/6484/1 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c index 660a38b..4ccd7e3 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c @@ -34,7 +34,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -224,7 +232,14 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -500,7 +515,14 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -596,7 +618,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -711,13 +741,14 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("080108" "09710000000156f0"); - ms_sends_msg("0508" /* MM LU */ - "7" /* ciph key seq: no key available */ - "0" /* LU type: normal */ - "ffffff" "0000" /* LAI, LAC */ - "30" /* classmark 1: GSM phase 2 */ - "089910070000106005" /* IMSI */ - ); + + tx_loc_upd_req(imsi, + 0 /* LU type: normal */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 0, 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 09c8369..0b3652a 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -35,7 +35,14 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -247,7 +254,14 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -485,7 +499,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -586,7 +608,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -684,7 +714,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.c b/tests/msc_vlr/msc_vlr_test_hlr_reject.c index 2d9b863..ac33bf9 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.c +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.c @@ -32,7 +32,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -58,7 +66,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -89,7 +105,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -144,7 +168,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -175,7 +207,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -231,7 +271,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -259,7 +307,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -294,7 +350,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -349,7 +413,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -389,7 +461,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -412,7 +492,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c b/tests/msc_vlr/msc_vlr_test_hlr_timeout.c index 4dc453b..a609a1f 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.c @@ -36,7 +36,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -73,7 +81,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.c b/tests/msc_vlr/msc_vlr_test_ms_timeout.c index 569bbf5..aa733c9 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.c +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.c @@ -34,7 +34,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -94,7 +102,15 @@ btw("Location Update request causes a GSUP Send Auth Info request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -195,7 +211,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.c b/tests/msc_vlr/msc_vlr_test_no_authen.c index 55c14cd..91b3172 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.c +++ b/tests/msc_vlr/msc_vlr_test_no_authen.c @@ -35,7 +35,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -174,7 +182,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -393,7 +409,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -461,7 +485,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -537,7 +569,15 @@ btw("Location Update request causes an IMEISV ID request back to the MS"); lu_result_sent = RES_NONE; dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(dtap_tx_confirmed); btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); @@ -597,7 +637,15 @@ btw("Location Update request causes an IMEISV ID request back to the MS"); lu_result_sent = RES_NONE; dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(dtap_tx_confirmed); btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); @@ -674,7 +722,15 @@ btw("Location Update request causes an IMEISV ID request back to the MS"); lu_result_sent = RES_NONE; dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(dtap_tx_confirmed); btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); @@ -729,7 +785,15 @@ btw("Location Update request causes an IMEISV ID request back to the MS"); lu_result_sent = RES_NONE; dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(dtap_tx_confirmed); btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); @@ -812,7 +876,15 @@ btw("Location Update request causes an IMEISV ID request back to the MS"); lu_result_sent = RES_NONE; dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(dtap_tx_confirmed); btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c index c7af200..30885dd 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c @@ -31,7 +31,15 @@ btw("Location Update Request on one connection"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); EXPECT_CONN_COUNT(1); @@ -40,7 +48,15 @@ conn1 = g_conn; g_conn = NULL; expect_bssap_clear(); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); EXPECT_CONN_COUNT(1); @@ -67,12 +83,20 @@ comment_end(nr, imsi); } -void _normal_lu_part1() +static inline void _normal_lu_part1(const char *imsi) { btw("Location Update Request"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); EXPECT_CONN_COUNT(1); @@ -96,10 +120,10 @@ EXPECT_CONN_COUNT(0); } -void _normal_lu() +void _normal_lu(const char *imsi) { BTW("Subscriber does a normal LU"); - _normal_lu_part1(); + _normal_lu_part1(imsi); _normal_lu_part2(); } @@ -192,10 +216,18 @@ { comment_start(nr, imsi); - _normal_lu_part1(); + _normal_lu_part1(imsi); BTW("Another Location Update Request from the same subscriber on the same conn is dropped silently"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); EXPECT_CONN_COUNT(1); @@ -210,7 +242,7 @@ { comment_start(nr, imsi); - _normal_lu_part1(); + _normal_lu_part1(imsi); BTW("A CM Service Request in the middle of a LU is rejected"); cm_service_result_sent = RES_NONE; @@ -231,7 +263,7 @@ { comment_start(nr, imsi); - _normal_lu_part1(); + _normal_lu_part1(imsi); BTW("An erratic Paging Response is dropped silently"); ms_sends_msg("06270703305882089910070000006402"); @@ -249,13 +281,21 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _normal_cm_service_req(); btw("A LU request on an open conn is dropped silently"); /* TODO: accept periodic LU on an already open conn? */ lu_result_sent = RES_NONE; - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); EXPECT_CONN_COUNT(1); @@ -273,7 +313,7 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _normal_cm_service_req(); btw("A second CM Service Request on the same conn is accepted without another auth dance"); @@ -296,7 +336,7 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _normal_cm_service_req(); BTW("An erratic Paging Response on the same conn is dropped silently"); @@ -321,7 +361,7 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _page(imsi); _paging_resp_part1(); @@ -338,13 +378,21 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _page(imsi); _paging_resp_part1(); BTW("MS sends erratic LU Request, which is dropped silently"); lu_result_sent = RES_NONE; - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); EXPECT_CONN_COUNT(1); @@ -358,7 +406,7 @@ { comment_start(nr, imsi); - _normal_lu(); + _normal_lu(imsi); _page(imsi); _paging_resp_part1(); diff --git a/tests/msc_vlr/msc_vlr_test_rest.c b/tests/msc_vlr/msc_vlr_test_rest.c index 8bf8c3a..3fb9f89 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.c +++ b/tests/msc_vlr/msc_vlr_test_rest.c @@ -85,7 +85,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -115,7 +123,15 @@ btw("Location Update request causes a GSUP LU request to HLR"); lu_result_sent = RES_NONE; gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); + + tx_loc_upd_req(imsi, + 2 /* LU type: IMSI ATTACH */, + 1 /* Revision level: GSM */, + true, true, 0, + 0xFFF /* MCC */, 0xFF /* MNC */, + 1 /* LAC */, + 7 /* ciph key seq: no key available */); + OSMO_ASSERT(gsup_tx_confirmed); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index c3d3d37..26bdd67 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -765,6 +765,42 @@ msgb_free(msg); } +void tx_loc_upd_req(const char *imsi, uint8_t lu_type, uint8_t rev_lv, + bool a5_1, bool es_ind, uint8_t pwr_lv, uint16_t mcc, uint16_t mnc, uint8_t lac, uint8_t key_seq) +{ + struct msgb *nmsg = gsm48_msgb_alloc_name("3GPP TS 24.008 LU"); + struct gsm48_hdr *ngh; + struct gsm48_loc_upd_req *nlu; /* NOTE: mi_len is part of struct */ + uint8_t buf[11]; + + ngh = (struct gsm48_hdr *)msgb_put(nmsg, sizeof(*ngh)); + nlu = (struct gsm48_loc_upd_req *)msgb_put(nmsg, sizeof(*nlu)); + + ngh->proto_discr = GSM48_PDISC_MM; + ngh->msg_type = GSM48_MT_MM_LOC_UPD_REQUEST; + + /* location updating type */ + nlu->type = lu_type; + + /* cipering key */ + nlu->key_seq = key_seq; + + gsm48_generate_lai(&nlu->lai, mcc, mnc, lac); + + /* classmark 1 */ + gsm48_encode_classmark1(&nlu->classmark1, rev_lv, es_ind, a5_1, pwr_lv); + + /* MI */ + gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); + + msgb_put(nmsg, buf[1]); /* length is part of nlu */ + memcpy(&nlu->mi_len, buf + 1, 1 + buf[1]); + + ms_sends_msg(msgb_hexdump(nmsg)); + + msgb_free(nmsg); +} + const struct timeval fake_time_start_time = { 123, 456 }; void fake_time_start() diff --git a/tests/msc_vlr/msc_vlr_tests.h b/tests/msc_vlr/msc_vlr_tests.h index a59b5d9..2ac20ce 100644 --- a/tests/msc_vlr/msc_vlr_tests.h +++ b/tests/msc_vlr/msc_vlr_tests.h @@ -135,6 +135,8 @@ void paging_expect_imsi(const char *imsi); void paging_expect_tmsi(uint32_t tmsi); void tx_identity_resp(const char *imsi, uint8_t mi_type, uint8_t seq); +void tx_loc_upd_req(const char *imsi, uint8_t lu_type, uint8_t rev_lv, + bool a5_1, bool es_ind, uint8_t pwr_lv, uint16_t mcc, uint16_t mnc, uint8_t lac, uint8_t key_seq); void ms_sends_msg(const char *hex); void ms_sends_security_mode_complete(); void gsup_rx(const char *rx_hex, const char *expect_tx_hex); -- To view, visit https://gerrit.osmocom.org/6484 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iab8b07b3276b6f6ac0387df14abb98355ea0e99a Gerrit-PatchSet: 1 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de>