aboutsummaryrefslogtreecommitdiffstats
path: root/library/IPA_Types.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'library/IPA_Types.ttcn')
-rw-r--r--library/IPA_Types.ttcn35
1 files changed, 34 insertions, 1 deletions
diff --git a/library/IPA_Types.ttcn b/library/IPA_Types.ttcn
index 110e5b17..fc729fbf 100644
--- a/library/IPA_Types.ttcn
+++ b/library/IPA_Types.ttcn
@@ -35,7 +35,8 @@ type enumerated IpaExtStreamId {
IPAC_PROTO_EXT_ORC ('04'H),
IPAC_PROTO_EXT_GSUP ('05'H),
IPAC_PROTO_EXT_OAP ('06'H),
- IPAC_PROTO_EXT_RSPRO ('07'H)
+ IPAC_PROTO_EXT_RSPRO ('07'H),
+ IPAC_PROTO_EXT_OSMO_PCU ('08'H)
} with { variant "FIELDLENGTH(8)" }
external function enc_PDU_IPA(in PDU_IPA pdu) return octetstring
@@ -131,6 +132,38 @@ with { extension "prototype(convert)"
extension "decode(RAW)"
}
+/* Example: 1234/0/0 (site_id=1234, bts_id=0, trx_id=0) */
+type record IpaUnitId {
+ integer site_id,
+ integer bts_id,
+ integer trx_id
+} with {
+ encode "TEXT"
+ variant "SEPARATOR('/')"
+ /* workaround for https://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/725 */
+ variant (trx_id) "TEXT_CODING(,,'\d+')"
+};
+
+external function enc_IpaUnitId(in IpaUnitId unit_id) return charstring
+ with { extension "prototype(convert) encode(TEXT)" }
+external function dec_IpaUnitId(in charstring stream) return IpaUnitId
+ with { extension "prototype(convert) decode(TEXT)" }
+
+template (value) IpaUnitId ts_IpaUnitId(integer site_id := 1234,
+ integer bts_id := 0,
+ integer trx_id := 0) := {
+ site_id := site_id,
+ bts_id := bts_id,
+ trx_id := trx_id
+};
+template (present) IpaUnitId tr_IpaUnitId(template (present) integer site_id := ?,
+ template (present) integer bts_id := ?,
+ template (present) integer trx_id := ?) := {
+ site_id := site_id,
+ bts_id := bts_id,
+ trx_id := trx_id
+};
+
/* Finds an IE with the given tag in IPA IDENTITY RESPONSE.
* Returns index of an IE if found, -1 otherwise. */
function f_ipa_id_resp_find_ie(in IpaCcmIdResp resp, IpaCcmIdTag tag)