Osmocom_Gb_Types: Extend RADIO-STATUS templates
RADIO-STATUS can occur with TLLI, but also with P-TMSI or IMSI. Update our templates accordingly while keeping backwards compatibility. Related: OS#4951 Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296
This commit is contained in:
parent
650bd72849
commit
112bc1469a
|
@ -897,6 +897,22 @@ octetstring sdu) := {
|
||||||
},
|
},
|
||||||
tLLI_Value := tlli
|
tLLI_Value := tlli
|
||||||
}
|
}
|
||||||
|
private function f_ts_BSSGP_TLLI(template (omit) GprsTlli tlli) return template (omit) TLLI_BSSGP {
|
||||||
|
if (istemplatekind(tlli, "omit")) {
|
||||||
|
return omit;
|
||||||
|
} else {
|
||||||
|
return ts_BSSGP_TLLI(valueof(tlli));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private function f_tr_BSSGP_TLLI(template GprsTlli tlli) return template TLLI_BSSGP {
|
||||||
|
if (istemplatekind(tlli, "omit")) {
|
||||||
|
return omit;
|
||||||
|
} else if (istemplatekind(tlli, "*")) {
|
||||||
|
return *;
|
||||||
|
} else {
|
||||||
|
return tr_BSSGP_TLLI(valueof(tlli));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template (value) Suspend_Reference_Number ts_BSSGP_SUSP_REF(template (value) OCT1 susp_ref) := {
|
template (value) Suspend_Reference_Number ts_BSSGP_SUSP_REF(template (value) OCT1 susp_ref) := {
|
||||||
iEI := '1D'O,
|
iEI := '1D'O,
|
||||||
|
@ -932,6 +948,22 @@ octetstring sdu) := {
|
||||||
oddevenIndicator := f_hex_is_odd_length(imsi),
|
oddevenIndicator := f_hex_is_odd_length(imsi),
|
||||||
digits := imsi
|
digits := imsi
|
||||||
}
|
}
|
||||||
|
private function f_ts_BSSGP_IMSI(template (omit) hexstring imsi) return template (omit) IMSI_BSSGP {
|
||||||
|
if (istemplatekind(imsi, "omit")) {
|
||||||
|
return omit;
|
||||||
|
} else {
|
||||||
|
return ts_BSSGP_IMSI(valueof(imsi));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private function f_tr_BSSGP_IMSI(template hexstring imsi) return template IMSI_BSSGP {
|
||||||
|
if (istemplatekind(imsi, "omit")) {
|
||||||
|
return omit;
|
||||||
|
} else if (istemplatekind(imsi, "*")) {
|
||||||
|
return *;
|
||||||
|
} else {
|
||||||
|
return tr_BSSGP_IMSI(imsi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template (present) TMSI_BSSGP tr_BSSGP_TMSI(GsmTmsi tmsi) := {
|
template (present) TMSI_BSSGP tr_BSSGP_TMSI(GsmTmsi tmsi) := {
|
||||||
iEI := '20'O,
|
iEI := '20'O,
|
||||||
|
@ -2324,22 +2356,25 @@ octetstring sdu) := {
|
||||||
|
|
||||||
/* 10.3.5 */
|
/* 10.3.5 */
|
||||||
template (value) PDU_BSSGP
|
template (value) PDU_BSSGP
|
||||||
ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := {
|
ts_BSSGP_RADIO_STATUS(template (omit) GprsTlli tlli, template (value) BssgpRadioCause cause,
|
||||||
|
template (omit) GsmTmsi tmsi := omit,
|
||||||
|
template (omit) hexstring imsi := omit) := {
|
||||||
pDU_BSSGP_RADIO_STATUS := {
|
pDU_BSSGP_RADIO_STATUS := {
|
||||||
bssgpPduType := '0a'O,
|
bssgpPduType := '0a'O,
|
||||||
tLLI := ts_BSSGP_TLLI(tlli),
|
tLLI := f_ts_BSSGP_TLLI(tlli),
|
||||||
tMSI := omit,
|
tMSI := f_ts_BSSGP_TMSI(tmsi),
|
||||||
iMSI := omit,
|
iMSI := f_ts_BSSGP_IMSI(imsi),
|
||||||
radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
|
radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
template (present) PDU_BSSGP
|
template (present) PDU_BSSGP
|
||||||
tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := {
|
tr_BSSGP_RADIO_STATUS(template GprsTlli tlli, template (present) BssgpRadioCause cause,
|
||||||
|
template GsmTmsi tmsi := *, template hexstring imsi := *) := {
|
||||||
pDU_BSSGP_RADIO_STATUS := {
|
pDU_BSSGP_RADIO_STATUS := {
|
||||||
bssgpPduType := '0a'O,
|
bssgpPduType := '0a'O,
|
||||||
tLLI := ts_BSSGP_TLLI(tlli),
|
tLLI := f_tr_BSSGP_TLLI(tlli),
|
||||||
tMSI := omit,
|
tMSI := f_tr_BSSGP_TMSI(tmsi),
|
||||||
iMSI := omit,
|
iMSI := f_tr_BSSGP_IMSI(imsi),
|
||||||
radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
|
radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue