pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34713?usp=email )
Change subject: library/DIAMETER: Add several missing tr templates
......................................................................
library/DIAMETER: Add several missing tr templates
Change-Id: I21da18a5e1f0d368176d653494e0e0cde0beb656
---
M library/DIAMETER_Templates.ttcn
M library/Osmocom_Types.ttcn
2 files changed, 171 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/34713/1
diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn
index 8bb53e0..fde071b 100644
--- a/library/DIAMETER_Templates.ttcn
+++ b/library/DIAMETER_Templates.ttcn
@@ -852,6 +852,14 @@
/* TS 29.272 7.3.27 Context-Identifier */
+template (present) GenericAVP tr_AVP_3GPP_ContextId(template (present) uint32_t ctx := ?)
:= {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Context_Identifier),
+ avp_data := {
+ avp_AAA_3GPP_Context_Identifier := int2oct_tmpl(ctx, 4)
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_ContextId(uint32_t ctx) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Context_Identifier),
@@ -871,6 +879,15 @@
}
}
+template (present) GenericAVP tr_AVP_3GPP_SubscrRauTauTmr(template (present) uint32_t tmr
:= ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Subscribed_Periodic_RAU_TAU_Timer),
+ avp_data := {
+ avp_AAA_3GPP_Subscribed_Periodic_RAU_TAU_Timer := int2oct_tmpl(tmr, 4)
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_3GPP_SubscrRauTauTmr(uint32_t tmr) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_Subscribed_Periodic_RAU_TAU_Timer),
@@ -881,6 +898,14 @@
}
/* TS 29.272 7.3.33 All-APN-Configurations-Included-Indicator */
+template (present) GenericAVP tr_AVP_3GPP_AllApnConfigsIncl(template (present)
AAA_3GPP_All_APN_Configurations_Included_Indicator ind := ?) := {
+ avp := {
+ avp_header :=
tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_All_APN_Configurations_Included_Indicator),
+ avp_data := {
+ avp_AAA_3GPP_All_APN_Configurations_Included_Indicator := ind
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_AllApnConfigsIncl(template (value)
AAA_3GPP_All_APN_Configurations_Included_Indicator ind := All_APN_CONFIGURATIONS_INCLUDED)
:= {
avp := {
avp_header :=
ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_All_APN_Configurations_Included_Indicator),
@@ -891,6 +916,14 @@
}
/* TS 29.272 7.3.34 APN-Configuration-Profile */
+template (present) GenericAVP tr_AVP_3GPP_ApnConfigProfile(template (present) AVP_list
content := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_APN_Configuration_Profile),
+ avp_data := {
+ avp_AAA_3GPP_APN_Configuration_Profile := content
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_ApnConfigProfile(template (value) AVP_list
content) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_APN_Configuration_Profile),
@@ -901,6 +934,21 @@
}
/* TS 29.272 7.3.35 APN-Configuration */
+template (present) GenericAVP tr_AVP_3GPP_ApnConfig(template (present) uint32_t ctx :=
?,
+ template (present) AAA_3GPP_PDN_Type pdn_type := ?,
+ template (present) charstring apn := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_APN_Configuration_Profile),
+ avp_data := {
+ avp_AAA_3GPP_APN_Configuration := {
+ tr_AVP_3GPP_ContextId(ctx),
+ tr_AVP_3GPP_PdnType(pdn_type),
+ tr_AVP_3GPP_EpsSubscrQosProfile(?, ?),
+ tr_AVP_ServiceSelection(apn)
+ }
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_ApnConfig(uint32_t ctx, AAA_3GPP_PDN_Type
pdn_type,
charstring apn) := {
avp := {
@@ -917,6 +965,14 @@
}
/* TS 29.272 7.3.36 Service-Selection (refers to 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(charstring apn) := {
avp := {
avp_header := ts_DIA_Hdr(c_AVP_Code_MIPv6_NONE_Service_Selection),
@@ -971,6 +1027,15 @@
}
}
+template (present) GenericAVP tr_AVP_PCC_3GPP_QoS_Class_Identifier(template (present)
uint32_t val := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_QoS_Class_Identifier),
+ avp_data := {
+ avp_PCC_3GPP_QoS_Class_Identifier := int2oct_tmpl(val, 4)
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_PCC_3GPP_QoS_Class_Identifier(uint32_t val) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_QoS_Class_Identifier),
@@ -980,6 +1045,15 @@
}
}
+template (present) GenericAVP tr_AVP_3GPP_PriorityLevel(template (present) uint32_t prio
:= ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_Priority_Level),
+ avp_data := {
+ avp_PCC_3GPP_Priority_Level := int2oct_tmpl(prio, 4)
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_3GPP_PriorityLevel(uint32_t prio) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_Priority_Level),
@@ -989,6 +1063,18 @@
}
}
+template (present) GenericAVP tr_AVP_PCC_3GPP_AllocRetenPrio(template (present) uint32_t
prio := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_Allocation_Retention_Priority),
+ avp_data := {
+ avp_PCC_3GPP_Allocation_Retention_Priority := {
+ tr_AVP_3GPP_PriorityLevel(prio)
+ /* pre-emption capability */
+ /* pre-emption vulnerability */
+ }
+ }
+ }
+}
template (value) GenericAVP ts_AVP_PCC_3GPP_AllocRetenPrio(uint32_t prio) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_Allocation_Retention_Priority),
@@ -1002,6 +1088,19 @@
}
}
+template (present) GenericAVP tr_AVP_3GPP_EpsSubscrQosProfile(template (present) uint32_t
qos_class := ?,
+ template (present) uint32_t prio := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_EPS_Subscribed_QoS_Profile),
+ avp_data := {
+ avp_AAA_3GPP_EPS_Subscribed_QoS_Profile := {
+ tr_AVP_PCC_3GPP_QoS_Class_Identifier(qos_class),
+ tr_AVP_PCC_3GPP_AllocRetenPrio(prio)
+ }
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_3GPP_EpsSubscrQosProfile(uint32_t qos_class, uint32_t
prio) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_EPS_Subscribed_QoS_Profile),
@@ -1016,6 +1115,17 @@
/* TS 29.272 7.3.41 AMBR */
+template (present) GenericAVP tr_AVP_3GPP_AMBR(template (present) uint32_t ul := ?,
template (present) uint32_t dl := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_AMBR),
+ avp_data := {
+ avp_AAA_3GPP_AMBR := {
+ tr_AVP_3GPP_MaxReqBwUL(ul),
+ tr_AVP_3GPP_MaxReqBwDL(dl)
+ }
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_AMBR(uint32_t ul, uint32_t dl) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_AMBR),
@@ -1028,6 +1138,15 @@
}
}
+template (present) GenericAVP tr_AVP_3GPP_MaxReqBwUL(template (present) uint32_t bw := ?)
:= {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_UL),
+ avp_data := {
+ avp_RX_3GPP_Max_Requested_Bandwidth_UL := int2oct_tmpl(bw, 4)
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_3GPP_MaxReqBwUL(uint32_t bw) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_UL),
@@ -1037,6 +1156,15 @@
}
}
+template (present) GenericAVP tr_AVP_3GPP_MaxReqBwDL(template (present) uint32_t bw := ?)
:= {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_DL),
+ avp_data := {
+ avp_RX_3GPP_Max_Requested_Bandwidth_DL := int2oct_tmpl(bw, 4)
+ }
+ }
+}
+
template (value) GenericAVP ts_AVP_3GPP_MaxReqBwDL(uint32_t bw) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_RX_3GPP_Max_Requested_Bandwidth_DL),
@@ -1209,6 +1337,14 @@
}
/* TS 29.272 7.3.62 PDN-Type */
+template (present) GenericAVP tr_AVP_3GPP_PdnType(template (present) AAA_3GPP_PDN_Type
pdn_type := ?) := {
+ avp := {
+ avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_PDN_Type),
+ avp_data := {
+ avp_AAA_3GPP_PDN_Type := pdn_type
+ }
+ }
+}
template (value) GenericAVP ts_AVP_3GPP_PdnType(template (value) AAA_3GPP_PDN_Type
pdn_type) := {
avp := {
avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_PDN_Type),
diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn
index 8892631..ce22c1e 100644
--- a/library/Osmocom_Types.ttcn
+++ b/library/Osmocom_Types.ttcn
@@ -153,6 +153,32 @@
}
}
+function int2oct_tmpl(template integer inp, integer num_oct) return template octetstring
+{
+ if (istemplatekind(inp, "omit")) {
+ return omit;
+ } else if (istemplatekind(inp, "*")) {
+ return *;
+ } else if (istemplatekind(inp, "?")) {
+ return ?;
+ } else {
+ return int2oct(valueof(inp), num_oct);
+ }
+}
+
+function char2oct_tmpl(template charstring inp) return template octetstring
+{
+ if (istemplatekind(inp, "omit")) {
+ return omit;
+ } else if (istemplatekind(inp, "*")) {
+ return *;
+ } else if (istemplatekind(inp, "?")) {
+ return ?;
+ } else {
+ return char2oct(valueof(inp));
+ }
+}
+
function f_array_contains(IntegerRecord arr, integer key) return boolean {
for (var integer i:= 0; i< sizeof(arr); i := i + 1) {
if (arr[i] == key) {
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34713?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I21da18a5e1f0d368176d653494e0e0cde0beb656
Gerrit-Change-Number: 34713
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange