DIAMETER: Introduce and rework some AVP templates

All the AVP ecosystem in DIAMETER is quite a mess. There's AVPs defined
in several different specs, sometimes even with the same name and
different AVP code and vendor.
Hence, as we add more templates it becomes important to start using the
prefix in order to differentiate where they come from.

Change-Id: Iec7c51dae136629d6b754de4dd798e988ac51f6b
diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn
index 2bc9e77..be3d8a2 100644
--- a/library/DIAMETER_Templates.ttcn
+++ b/library/DIAMETER_Templates.ttcn
@@ -860,7 +860,7 @@
 	}
 }
 
-template (present) GenericAVP tr_AVP_3GPP_QoS_Information(template (present) AVP_list list := ?) := {
+template (present) GenericAVP tr_AVP_PCC_3GPP_QoS_Information(template (present) AVP_list list := ?) := {
 	avp := {
 		avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_QoS_Information),
 		avp_data := {
@@ -869,11 +869,47 @@
 	}
 }
 
-template (value) GenericAVP ts_AVP_3GPP_QosClassId(uint32_t id) := {
+template (value) GenericAVP ts_AVP_PCC_3GPP_QoS_Information(template (value) AVP_list list) := {
+	avp := {
+		avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_QoS_Information),
+		avp_data := {
+			avp_PCC_3GPP_QoS_Information := list
+		}
+	}
+}
+
+template (value) GenericAVP ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL(uint32_t val) := {
+	avp := {
+		avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL),
+		avp_data := {
+			avp_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL := int2oct(val, 4)
+		}
+	}
+}
+
+template (value) GenericAVP ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL(uint32_t val) := {
+	avp := {
+		avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL),
+		avp_data := {
+			avp_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL := int2oct(val, 4)
+		}
+	}
+}
+
+template (value) GenericAVP ts_AVP_PCC_3GPP_Default_EPS_Bearer_QoS(template (value) AVP_list list) := {
+	avp := {
+		avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_PCC_3GPP_Default_EPS_Bearer_QoS),
+		avp_data := {
+			avp_PCC_3GPP_Default_EPS_Bearer_QoS := list
+		}
+	}
+}
+
+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),
 		avp_data := {
-			avp_PCC_3GPP_QoS_Class_Identifier := int2oct(id, 4)
+			avp_PCC_3GPP_QoS_Class_Identifier := int2oct(val, 4)
 		}
 	}
 }
@@ -887,8 +923,7 @@
 	}
 }
 
-
-template (value) GenericAVP ts_AVP_3GPP_AllocRetenPrio(uint32_t prio) := {
+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),
 		avp_data := {
@@ -906,8 +941,8 @@
 		avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_AAA_3GPP_EPS_Subscribed_QoS_Profile),
 		avp_data := {
 			avp_AAA_3GPP_EPS_Subscribed_QoS_Profile := {
-				ts_AVP_3GPP_QosClassId(qos_class),
-				ts_AVP_3GPP_AllocRetenPrio(prio)
+				ts_AVP_PCC_3GPP_QoS_Class_Identifier(qos_class),
+				ts_AVP_PCC_3GPP_AllocRetenPrio(prio)
 			}
 		}
 	}