aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-03-11 17:55:52 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2024-03-14 11:44:22 +0100
commita7823b96cb566dd9ce6a9f640803833c9f6c6a9f (patch)
treedf80caa22190c32eadf2e37a7da90d459468f8bd /library
parentd9ff19ee7338e8b9ef62a821f69074984670d250 (diff)
epdg: Introduce test TC_hss_initiated_deregister_permanent_termination
Diffstat (limited to 'library')
-rw-r--r--library/DIAMETER_Templates.ttcn4
-rw-r--r--library/DIAMETER_ts29_273_Templates.ttcn69
2 files changed, 71 insertions, 2 deletions
diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn
index 31ea8216..933c97b4 100644
--- a/library/DIAMETER_Templates.ttcn
+++ b/library/DIAMETER_Templates.ttcn
@@ -569,11 +569,11 @@ template (value) GenericAVP ts_AVP_SuppVendorIdRaw(uint32_t vendor_id) := {
template (value) GenericAVP ts_AVP_SuppVendorId(Vendor_Id vendor_id) :=
ts_AVP_SuppVendorIdRaw(enum2int(vendor_id));
-template (value) GenericAVP ts_AVP_ResultCode(DIAMETER_Resultcode res_code) := {
+template (value) GenericAVP ts_AVP_ResultCode(template (value) DIAMETER_Resultcode res_code) := {
avp := {
avp_header := ts_DIA_Hdr(c_AVP_Code_BASE_NONE_Result_Code),
avp_data := {
- avp_BASE_NONE_Result_Code := int2oct(enum2int(res_code), 4)
+ avp_BASE_NONE_Result_Code := int2oct(enum2int(valueof(res_code)), 4)
}
}
}
diff --git a/library/DIAMETER_ts29_273_Templates.ttcn b/library/DIAMETER_ts29_273_Templates.ttcn
index 0a42d6a6..e1a07006 100644
--- a/library/DIAMETER_ts29_273_Templates.ttcn
+++ b/library/DIAMETER_ts29_273_Templates.ttcn
@@ -486,4 +486,73 @@ tr_DIA_S6b_STA(template (present) DIAMETER_Resultcode res_code := ?,
/* Lots other Optional */
));
+
+/* TS 29.273 9.2.2.4.1 Abort-Session-Request (ASR) */
+template (present) PDU_DIAMETER
+tr_DIA_S6b_ASR(template (present) charstring username_nai := ?,
+ template (present) octetstring sess_id := ?,
+ template (present) charstring orig_host := ?,
+ template (present) charstring orig_realm := ?,
+ template (present) charstring dest_realm := ?,
+ template (present) charstring dest_host := ?,
+ template (present) UINT32 hbh_id := ?,
+ template (present) UINT32 ete_id := ?) :=
+ tr_DIAMETER(flags := '1???????'B,
+ cmd_code := Abort_Session,
+ app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4),
+ hbh_id := hbh_id,
+ ete_id := ete_id,
+ avps := superset(
+ tr_AVP_SessionId(sess_id),
+ /* Optional: DRMP, */
+ tr_AVP_OriginHost(orig_host),
+ tr_AVP_OriginRealm(orig_realm),
+ tr_AVP_DestinationRealm(dest_realm),
+ tr_AVP_DestinationHost(dest_host),
+ tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)),
+ tr_AVP_UserName(char2oct_tmpl_present(username_nai)),
+ tr_AVP_AuthSessionState(NO_STATE_MAINTAINED)
+ ));
+
+/* TS 29.273 9.2.2.4.2 Abort-Session-Answer (ASA) */
+template (present) PDU_DIAMETER
+tr_DIA_S6b_ASA(template (present) DIAMETER_Resultcode res_code := ?,
+ template (present) octetstring sess_id := ?,
+ template (present) charstring orig_host := ?,
+ template (present) charstring orig_realm := ?,
+ template (present) charstring dest_realm := ?,
+ template (present) UINT32 hbh_id := ?,
+ template (present) UINT32 ete_id := ?) :=
+ tr_DIAMETER(flags := '0???????'B,
+ cmd_code := Abort_Session,
+ app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4),
+ hbh_id := hbh_id, ete_id := ete_id,
+ avps := superset(
+ tr_AVP_SessionId(sess_id),
+ /* Optional: DRMP */
+ tr_AVP_ResultCode(res_code),
+ tr_AVP_OriginHost(orig_host),
+ tr_AVP_OriginRealm(orig_realm)
+ ));
+
+template (value) PDU_DIAMETER
+ts_DIA_S6b_ASA(template (value) DIAMETER_Resultcode res_code := DIAMETER_SUCCESS,
+ template (value) octetstring sess_id := c_def_sess_id,
+ template (value) charstring orig_host := "aaa.localdomain",
+ template (value) charstring orig_realm := "localdomain",
+ template (value) charstring dest_realm := "localdomain",
+ template (value) UINT32 hbh_id := '00000000'O,
+ template (value) UINT32 ete_id := '00000000'O) :=
+ ts_DIAMETER(flags := '01000000'B,
+ cmd_code := Abort_Session,
+ app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4),
+ hbh_id := hbh_id, ete_id := ete_id,
+ avps := {
+ ts_AVP_SessionId(sess_id),
+ /* Optional: DRMP, */
+ ts_AVP_ResultCode(res_code),
+ ts_AVP_OriginHost(orig_host),
+ ts_AVP_OriginRealm(orig_realm)
+ });
+
}