L3_Templates: add GSM 04.80 RELEASE_COMPLETE message

Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc
This commit is contained in:
Vadim Yanitskiy 2018-05-29 03:35:16 +07:00
parent d5a30625cf
commit 0319813c41
1 changed files with 117 additions and 0 deletions

View File

@ -1318,6 +1318,25 @@ private template Facility_LV tr_FacLV(template OCTN facility) := {
facilityInformation := facility
}
private function f_facility_or_omit(template (omit) OCTN facility)
return template (omit) Facility_TLV {
if (istemplatekind(facility, "omit")) {
return omit;
} else {
return ts_FacTLV(valueof(facility));
}
}
private function f_facility_or_wc(template OCTN facility)
return template Facility_TLV {
if (istemplatekind(facility, "*")) {
return *;
} else if (istemplatekind(facility, "?")) {
return ?;
} else {
return tr_FacTLV(facility);
}
}
template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_REGISTER(
uint3_t tid, BIT1 ti_flag,
OCTN facility,
@ -1502,6 +1521,104 @@ template PDU_ML3_NW_MS tr_ML3_MT_SS_FACILITY(
}
}
template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_RELEASE_COMPLETE(
uint3_t tid, BIT1 ti_flag,
template (omit) ML3_Cause_TLV cause := omit,
template (omit) OCTN facility := omit
) := {
discriminator := '1011'B,
tiOrSkip := {
transactionId := {
tio := int2bit(tid, 3),
tiFlag := ti_flag,
tIExtension := omit
}
},
msgs := {
ss := {
releaseComplete_MS_NW := {
messageType := '101010'B,
nsd := '00'B,
cause := cause,
facility := f_facility_or_omit(facility)
}
}
}
}
template PDU_ML3_MS_NW tr_ML3_MO_SS_RELEASE_COMPLETE(
template uint3_t tid, template BIT1 ti_flag,
template ML3_Cause_TLV cause := *,
template OCTN facility := *
) := {
discriminator := '1011'B,
tiOrSkip := {
transactionId := {
tio := f_tid_or_wc(tid),
tiFlag := ti_flag,
tIExtension := omit
}
},
msgs := {
ss := {
releaseComplete_MS_NW := {
messageType := '101010'B,
nsd := '00'B,
cause := cause,
facility := f_facility_or_wc(facility)
}
}
}
}
template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_RELEASE_COMPLETE(
uint3_t tid, BIT1 ti_flag,
template (omit) ML3_Cause_TLV cause := omit,
template (omit) OCTN facility := omit
) := {
discriminator := '1011'B,
tiOrSkip := {
transactionId := {
tio := int2bit(tid, 3),
tiFlag := ti_flag,
tIExtension := omit
}
},
msgs := {
ss := {
releaseComplete_NW_MS := {
messageType := '101010'B,
nsd := '00'B,
cause := cause,
facility := f_facility_or_omit(facility)
}
}
}
}
template PDU_ML3_NW_MS tr_ML3_MT_SS_RELEASE_COMPLETE(
template uint3_t tid, template BIT1 ti_flag,
template ML3_Cause_TLV cause := *,
template OCTN facility := *
) := {
discriminator := '1011'B,
tiOrSkip := {
transactionId := {
tio := f_tid_or_wc(tid),
tiFlag := ti_flag,
tIExtension := omit
}
},
msgs := {
ss := {
releaseComplete_NW_MS := {
messageType := '101010'B,
nsd := '00'B,
cause := cause,
facility := f_facility_or_wc(facility)
}
}
}
}
/***********************************************************************
* GPRS Mobility Management
***********************************************************************/