ggsn: Submit RATType in CreatePDPContextReq
According to TS 29.060, sec 7.3.1 Create PDP Context Request: "The SGSN shall include the RAT Type IE during Primary PDP Context Activation procedure." Change-Id: Ibc57798e50ccd08ef6126f75f7c8134e56d2778a
This commit is contained in:
parent
36ab797d46
commit
38aeffb9be
|
@ -83,7 +83,8 @@ module GGSN_Tests {
|
|||
/* TEI (Data) remote side */
|
||||
OCT4 teid_remote,
|
||||
/* TEI (Control) remote side */
|
||||
OCT4 teic_remote
|
||||
OCT4 teic_remote,
|
||||
OCT1 ratType optional
|
||||
}
|
||||
|
||||
type component GT_CT {
|
||||
|
@ -236,7 +237,7 @@ module GGSN_Tests {
|
|||
|
||||
/* define an (internal) representation of a PDP context */
|
||||
template PdpContext t_DefinePDP(hexstring imsi, octetstring msisdn, octetstring apn,
|
||||
EndUserAddress eua) := {
|
||||
EndUserAddress eua, OCT1 ratType := '02'O /* GERAN */) := {
|
||||
imsi := imsi,
|
||||
msisdn := msisdn,
|
||||
nsapi := f_rnd_nsapi(),
|
||||
|
@ -244,7 +245,8 @@ module GGSN_Tests {
|
|||
pco_req := omit,
|
||||
eua := eua,
|
||||
teid := f_rnd_tei(),
|
||||
teic := f_rnd_tei()
|
||||
teic := f_rnd_tei(),
|
||||
ratType := ratType
|
||||
}
|
||||
|
||||
/* send GTP-C for a given context and increment sequence number */
|
||||
|
@ -316,7 +318,7 @@ module GGSN_Tests {
|
|||
log("sending CreatePDP");
|
||||
f_send_gtpc(ts_GTPC_CreatePDP(g_peer_c, g_c_seq_nr, ctx.imsi, g_restart_ctr,
|
||||
ctx.teid, ctx.teic, ctx.nsapi, ctx.eua, ctx.apn,
|
||||
g_sgsn_ip_c, g_sgsn_ip_u, ctx.msisdn, ctx.pco_req));
|
||||
g_sgsn_ip_c, g_sgsn_ip_u, ctx.msisdn, ctx.pco_req, ctx.ratType));
|
||||
T_default.start;
|
||||
d := activate(pingpong());
|
||||
alt {
|
||||
|
|
|
@ -287,10 +287,25 @@ module GTP_Templates {
|
|||
padding := 'F'H
|
||||
}
|
||||
|
||||
function f_ts_RATType(template (omit) OCT1 ratType := omit) return template (omit) RATType {
|
||||
var template (omit) RATType rt;
|
||||
if (istemplatekind(ratType, "omit")) {
|
||||
rt := omit;
|
||||
} else {
|
||||
rt := {
|
||||
type_gtpc := '97'O,
|
||||
lengthf := 1,
|
||||
ratTypeValue := ratType
|
||||
};
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
||||
template GTPC_PDUs ts_CreatePdpPDU(hexstring imsi, OCT1 restart_ctr, OCT4 teid_data, OCT4 teid_ctrl,
|
||||
BIT4 nsapi, EndUserAddress eua, octetstring apn,
|
||||
octetstring sgsn_ip_sign, octetstring sgsn_ip_data,
|
||||
octetstring msisdn, template ProtConfigOptions pco := omit) := {
|
||||
octetstring msisdn, template ProtConfigOptions pco := omit,
|
||||
template (omit) OCT1 ratType := omit) := {
|
||||
createPDPContextRequest := {
|
||||
imsi := ts_Imsi(imsi),
|
||||
rai := omit,
|
||||
|
@ -329,7 +344,7 @@ module GTP_Templates {
|
|||
omcId := omit,
|
||||
commonFlags := omit,
|
||||
aPN_Restriction := omit,
|
||||
ratType := omit,
|
||||
ratType := f_ts_RATType(ratType),
|
||||
userLocationInformation := omit,
|
||||
mS_TimeZone := omit,
|
||||
imeisv := omit,
|
||||
|
@ -351,12 +366,13 @@ module GTP_Templates {
|
|||
OCT4 teid_ctrl, BIT4 nsapi, EndUserAddress eua,
|
||||
octetstring apn, octetstring sgsn_ip_sign,
|
||||
octetstring sgsn_ip_data, octetstring msisdn,
|
||||
template ProtConfigOptions pco := omit) := {
|
||||
template ProtConfigOptions pco := omit,
|
||||
template (omit) OCT1 ratType := omit) := {
|
||||
peer := peer,
|
||||
gtpc := ts_GTP1C_PDU(createPDPContextRequest, '00000000'O,
|
||||
valueof(ts_CreatePdpPDU(imsi, restart_ctr, teid_data, teid_ctrl,
|
||||
nsapi, eua, apn, sgsn_ip_sign,
|
||||
sgsn_ip_data, msisdn, pco)), seq)
|
||||
sgsn_ip_data, msisdn, pco, ratType)), seq)
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue