aboutsummaryrefslogtreecommitdiffstats
path: root/library/AbisOML_Types.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'library/AbisOML_Types.ttcn')
-rw-r--r--library/AbisOML_Types.ttcn54
1 files changed, 50 insertions, 4 deletions
diff --git a/library/AbisOML_Types.ttcn b/library/AbisOML_Types.ttcn
index 0a562ae9..99ad2520 100644
--- a/library/AbisOML_Types.ttcn
+++ b/library/AbisOML_Types.ttcn
@@ -616,6 +616,15 @@ type record OML_FOM_T200 {
uint8_t sacch_rch_sapi3_10ms
};
+/* Section 9.4.64 */
+type record OML_FOM_ARI {
+ uint16_t len,
+ uint8_t non_reported_attr_len,
+ set of uint8_t non_reported_attr optional,
+ OML_FOM_IE_List ies optional
+} with { variant (len) "LENGTHTO(non_reported_attr_len,non_reported_attr,ies)"
+ variant (non_reported_attr_len) "LENGTHTO(non_reported_attr)" };
+
type union OML_FOM_IE_Body {
OML_FOM_AbisChannel abis_channel,
OML_FOM_AdministrativeState adm_state,
@@ -669,6 +678,8 @@ type union OML_FOM_IE_Body {
uint16_t paging_cfg,
OCT2 freq_ctrl,
+ OML_FOM_ARI ari,
+
OML_IE_L16V other
};
@@ -728,6 +739,8 @@ type record OML_FOM_IE {
paging_cfg, iei = NM_ATT_IPACC_PAGING_CFG;
freq_ctrl, iei = NM_ATT_IPACC_FREQ_CTRL;
+ ari, iei = NM_ATT_GET_ARI;
+
other, OTHERWISE;
)" };
@@ -1124,6 +1137,20 @@ template OML_PDU tr_OML_GetAttributes(template OML_FOM_ObjectClass obj_class,
tr_OML_IE(NM_ATT_LIST_REQ_ATTR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, req_attr)})
});
+/* 8.11.3 Get Attributes Response */
+template (value) OML_PDU ts_OML_GetAttributesResponse(template (value) OML_FOM_ObjectClass obj_class,
+ template (value) OML_FOM_ObjectInstance obj_inst,
+ template (value) octetstring req_attr) :=
+ ts_OML_MsgType(NM_MT_GET_ATTR_RESP, obj_class, obj_inst, {
+ ts_OML_IE(NM_ATT_GET_ARI, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, req_attr)})
+ });
+template OML_PDU tr_OML_GetAttributesResponse(template OML_FOM_ObjectClass obj_class,
+ template OML_FOM_ObjectInstance obj_inst,
+ template OML_FOM_ARI ari := ?) :=
+ tr_OML_MsgType(NM_MT_GET_ATTR_RESP, obj_class, obj_inst, {
+ tr_OML_IE(NM_ATT_GET_ARI, OML_FOM_IE_Body:{ari := ari})
+ });
+
/* convert a request into an ACK */
function f_OML_make_ack(OML_PDU orig) return OML_PDU {
var OML_PDU resp := orig;
@@ -1199,6 +1226,21 @@ function f_OML_make_nack_exp(OML_PDU orig, template OML_FOM_NackCause cause) ret
return resp;
}
+function f_OML_FOM_IE_List_get_ie(OML_FOM_IE_List ie_list, OML_FOM_IE_Type iei) return OML_FOM_IE_Body
+{
+ for (var integer i := 0; i < lengthof(ie_list); i := i + 1) {
+ if (ie_list[i].iei == iei) {
+ return ie_list[i].body;
+ }
+ }
+ var OML_FOM_IE_Body dummy;
+ return dummy; /*TODO: setverdict(fail?) */
+}
+
+function f_OML_FOM_get_ie(OML_FOM fom, OML_FOM_IE_Type iei) return OML_FOM_IE_Body
+{
+ return f_OML_FOM_IE_List_get_ie(fom.ies, iei);
+}
/***********************************************************************
@@ -1207,13 +1249,17 @@ function f_OML_make_nack_exp(OML_PDU orig, template OML_FOM_NackCause cause) ret
-template (value) OML_PDU ts_OML_IPA_RslConnect(uint8_t stream_id, uint16_t port_nr) :=
- ts_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, ts_OML_ObjectInstance(0,0,255), {
+template (value) OML_PDU ts_OML_IPA_RslConnect(template (value) OML_FOM_ObjectInstance obj_inst,
+ template (value) uint8_t stream_id,
+ template (value) uint16_t port_nr) :=
+ ts_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, obj_inst, {
ts_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}),
ts_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr})
});
-template OML_PDU tr_OML_IPA_RslConnect(template uint8_t stream_id, template uint16_t port_nr) :=
- tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, tr_OML_ObjectInstance(0,0,255), {
+template OML_PDU tr_OML_IPA_RslConnect(template (present) OML_FOM_ObjectInstance obj_inst,
+ template (present) uint8_t stream_id,
+ template (present) uint16_t port_nr) :=
+ tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, obj_inst, {
tr_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}),
tr_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr})
});