Small improvements to DIAMETER_ts29_272_Templates.ttcn
* Move Service-Selection template to the TS 29.272 since it belongs
there.
* Set some parameter types to "template (value)" which makes it easier
for users, since both a template and a value can then be passed.
Change-Id: Ic57b2c5ec0a953f9a1751d4ce4ad441daafd3c87
diff --git a/library/DIAMETER_ts29_272_Templates.ttcn b/library/DIAMETER_ts29_272_Templates.ttcn
index d3c7a95..0aa5c64 100644
--- a/library/DIAMETER_ts29_272_Templates.ttcn
+++ b/library/DIAMETER_ts29_272_Templates.ttcn
@@ -238,11 +238,11 @@
}
}
}
-template (value) GenericAVP ts_AVP_3GPP_ContextId(uint32_t ctx) := {
+template (value) GenericAVP ts_AVP_3GPP_ContextId(template (value) uint32_t ctx) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Context_Identifier),
avp_data := {
- avp_AAA_3GPP_Context_Identifier := int2oct(ctx, 4)
+ avp_AAA_3GPP_Context_Identifier := int2oct(valueof(ctx), 4)
}
}
}
@@ -345,8 +345,9 @@
}
}
}
-template (value) GenericAVP ts_AVP_3GPP_ApnConfig(uint32_t ctx, AAA_3GPP_PDN_Type pdn_type,
- charstring apn) := {
+template (value) GenericAVP ts_AVP_3GPP_ApnConfig(template (value) uint32_t ctx,
+ template (value) AAA_3GPP_PDN_Type pdn_type,
+ template (value) charstring apn) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_APN_Configuration),
avp_data := {
@@ -360,6 +361,23 @@
}
}
+/* Service-Selection, TS 29.272 7.3.36, TS 29.273 5.2.3.5, (RFC 5778) */
+template (present) GenericAVP tr_AVP_ServiceSelection(template (present) charstring apn := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr(c_AVP_Code_MIPv6_NONE_Service_Selection),
+ avp_data := {
+ avp_MIPv6_NONE_Service_Selection := char2oct_tmpl(apn)
+ }
+ }
+}
+template (value) GenericAVP ts_AVP_ServiceSelection(template (value) charstring apn) := {
+ avp := {
+ avp_header := ts_DIA_Hdr(c_AVP_Code_MIPv6_NONE_Service_Selection),
+ avp_data := {
+ avp_MIPv6_NONE_Service_Selection := char2oct(valueof(apn))
+ }
+ }
+}
/* TS 29.272 7.3.41 AMBR */
template (present) GenericAVP tr_AVP_3GPP_AMBR(template (present) uint32_t ul := ?, template (present) uint32_t dl := ?) := {
@@ -373,7 +391,8 @@
}
}
}
-template (value) GenericAVP ts_AVP_3GPP_AMBR(uint32_t ul, uint32_t dl) := {
+template (value) GenericAVP ts_AVP_3GPP_AMBR(template (value) uint32_t ul,
+ template (value) uint32_t dl) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_AMBR),
avp_data := {
@@ -394,11 +413,11 @@
}
}
-template (value) GenericAVP ts_AVP_3GPP_MaxReqBwUL(uint32_t bw) := {
+template (value) GenericAVP ts_AVP_3GPP_MaxReqBwUL(template (value) uint32_t bw) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_UL),
avp_data := {
- avp_RX_3GPP_Max_Requested_Bandwidth_UL := int2oct(bw, 4)
+ avp_RX_3GPP_Max_Requested_Bandwidth_UL := int2oct(valueof(bw), 4)
}
}
}
@@ -412,11 +431,11 @@
}
}
-template (value) GenericAVP ts_AVP_3GPP_MaxReqBwDL(uint32_t bw) := {
+template (value) GenericAVP ts_AVP_3GPP_MaxReqBwDL(template (value) uint32_t bw) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_DL),
avp_data := {
- avp_RX_3GPP_Max_Requested_Bandwidth_DL := int2oct(bw, 4)
+ avp_RX_3GPP_Max_Requested_Bandwidth_DL := int2oct(valueof(bw), 4)
}
}
}