diff options
Diffstat (limited to 'library/IPA_Types.ttcn')
-rw-r--r-- | library/IPA_Types.ttcn | 35 |
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) |