sgsn: Use Random RAI when performing attach request

Change-Id: Id349c7cd0899d6b87114a3ece8bc2ee625f64116
This commit is contained in:
Harald Welte 2018-02-16 20:59:21 +01:00
parent 14a0f94881
commit 5a4fa04ec4
3 changed files with 24 additions and 7 deletions

View File

@ -163,6 +163,7 @@ group SimpleNativeTypes {
type hexstring HEX24n length(24) with { variant "" };
//hexstring with length interval
type hexstring HEX0_3n length(0..3) with { variant "" };
type hexstring HEX0_18n length(0..18) with { variant "" };
type hexstring HEX1_20n length(1..20) with { variant "" };
type hexstring HEX1_34n length(1..34) with { variant "" };

View File

@ -2,6 +2,7 @@ module L3_Common {
import from Osmocom_Types all;
import from General_Types all;
import from MobileL3_GMM_SM_Types all;
type record AuthVector {
OCT16 rand,
@ -66,6 +67,22 @@ function f_gprs_tlli_random() return OCT4 {
return tlli or4b 'c0000000'O;
}
function f_RAI(HEX0_3n mcc, HEX0_3n mnc, OCT2 lac, OCT1 rac) return RoutingAreaIdentificationV {
if (lengthof(mnc) == 2) {
mnc := mnc & 'F'H;
}
var RoutingAreaIdentificationV ret := {
mccDigit1 := mcc[0],
mccDigit2 := mcc[1],
mccDigit3 := mcc[2],
mncDigit3 := mnc[2],
mncDigit1 := mnc[0],
mncDigit2 := mnc[1],
lac := lac,
rac := rac
}
return ret;
}
}

View File

@ -247,9 +247,13 @@ function f_gmm_auth () runs on BSSGP_ConnHdlr {
deactivate(di);
}
function f_random_RAI(HEX0_3n mcc := '262'H, HEX0_3n mnc := '42'H) return RoutingAreaIdentificationV {
return f_RAI(mcc, mnc, f_rnd_octstring(2), f_rnd_octstring(1));
}
private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr {
var MobileIdentityLV mi;
var RoutingAreaIdentificationV old_ra := { '2'H, '6'H, '2'H, 'F'H, '4'H, '2'H, '2342'O, '00'O };
var RoutingAreaIdentificationV old_ra := f_random_RAI();
if (ispresent(g_pars.p_tmsi)) {
mi := valueof(ts_MI_TMSI_LV(g_pars.p_tmsi));
@ -267,12 +271,7 @@ private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr {
BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(?, ?, ?)));
BSSGP.send(ts_GMM_ATTACH_COMPL);
/*
alt {
[] as_mm_identity();
}
*/
f_sleep(5.0);
setverdict(pass);
}
testcase TC_attach() runs on test_CT {