From 4176c6b073bdff2b471be546a0c84ec586e2cc2b Mon Sep 17 00:00:00 2001 From: erititan <elemer.lelik@ericsson.com> Date: Tue, 19 Jun 2018 09:46:47 +0200 Subject: [PATCH] R40A -> R55A --- demo/DIAMETER_Types.ttcn | 6 +- ...rotocolModule_Generator_CNL113462_1551.doc | Bin 397312 -> 419840 bytes ...ProtocolModule_Generator_CNL113462_PRI.doc | Bin 164864 -> 204288 bytes src/AAAInterface_3GPP_TS29272_940.ddf | 2 +- src/AAAInterface_3GPP_TS29272_950.ddf | 2 +- src/AAAInterface_3GPP_TS29272_970.ddf | 2 +- src/AAAInterface_3GPP_TS29272_a30.ddf | 2 +- src/AAAInterface_3GPP_TS29272_a60.ddf | 2 +- src/AAAInterface_3GPP_TS29272_b60.ddf | 2 +- src/AAAInterface_3GPP_TS29272_bd0.ddf | 2 +- src/AAAInterface_3GPP_TS29272_d70.ddf | 1177 ++++++++ src/AAAInterface_3GPP_TS29272_f10.ddf | 1055 +++++++ src/AAAInterface_3GPP_TS29273_840.ddf | 2 +- src/AAAInterface_3GPP_TS29273_940.ddf | 2 +- src/AAAInterface_3GPP_TS29273_b30.ddf | 2 +- src/AAAInterface_3GPP_TS29273_d60.ddf | 114 + src/AAAInterface_3GPP_TS29273_f00.ddf | 211 ++ src/AVP.awk | 0 src/AVP.sh | 7 +- src/AVP_encdec.awk | 42 +- src/Acision_Specific.ddf | 2 +- src/Alcatel_Lucent_Specific_AVPs.ddf | 2 +- src/BaseTypes_IETF_RFC3588.ddf | 20 +- src/Base_IETF_RFC3588.ddf | 118 +- src/CLCInterface_Vodafone_Rev2.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_850.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_870.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_900.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_940.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_9b0.ddf | 2 +- ...plications_3GPP_TS32299_AdviceOfCharge.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_a60.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_be0.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_c60.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_d40.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_d70.ddf | 2457 ++++++++++++++++ src/ChargingApplications_3GPP_TS32299_d90.ddf | 2473 +++++++++++++++++ src/CreditControl_IETF_RFC4006.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_6a0.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_840.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_880.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_920.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_c30.ddf | 2 +- ...terface_Ericsson_1551_FAY301_0059_PC26.ddf | 2 +- src/DIAMETER_EncDec.cc | 32 +- src/DIAMETER_EncDec.tpl | 374 +-- src/DOIC_RFC7683.ddf | 61 + src/DelegatedIPv6Prefix_IETF_RFC4818.ddf | 2 +- ...terRoutingMessagePriority_IETF_RFC7944.ddf | 46 + src/DigestAuthentication_IETF_RFC5090.ddf | 2 +- src/EricssonSCAPv1_1553APR_10148.ddf | 2 +- src/Ericsson_Specific_AVPs.ddf | 303 +- ...bleAuthenticationProtocol_IETF_RFC4072.ddf | 2 +- src/GiInterface_3GPP_TS29061_770.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_810.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_930.ddf | 2 +- ...nterface_3GPP_TS29061_930_QoS_Detailed.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_980.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_b90.ddf | 2 +- ...nterface_3GPP_TS29061_b90_QoS_Detailed.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_d70.ddf | 220 ++ src/GmbInterface_3GPP_TS29061_6f0.ddf | 2 +- src/GmbInterface_3GPP_TS29061_720.ddf | 2 +- src/GmbInterface_3GPP_TS29061_810.ddf | 2 +- src/GmbInterface_3GPP_TS29061_930.ddf | 2 +- src/GmbInterface_3GPP_TS29061_970.ddf | 2 +- src/GmbInterface_3GPP_TS29061_980.ddf | 2 +- src/GmbInterface_3GPP_TS29061_d70.ddf | 224 ++ src/GqInterface_PC_3GPP_TS29209_670.ddf | 2 +- src/GqInterface_S3_ETSI_TS183017_231.ddf | 2 +- src/GxInterface_CRP_3GPP_TS29210_670.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_740.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_820.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_830.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_840.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_8a0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_8b1.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_910.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_930.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_970.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_9b0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_aa0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_c52.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_d70.ddf | 1099 ++++++++ src/GxInterface_PCC_3GPP_TS29212_e00.ddf | 1073 +++++++ src/GxInterface_PCC_3GPP_TS29212_f10.ddf | 1128 ++++++++ src/GxaInterface_3GPP2_X_S0057_0_300.ddf | 2 +- src/MobileIPv4_Application_IETF_RFC4004.ddf | 2 +- src/MobileIPv6_HAAA_IETF_RFC5779.ddf | 2 +- src/MobileIPv6_HA_IETF_RFC5778.ddf | 2 +- src/MobileIPv6_NAS_IETF_RFC5447.ddf | 2 +- src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf | 2 +- src/NetworkAccessServer_IETF_RFC4005.ddf | 2 +- src/RqInterface_ETSI_ES283026_241.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_830.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_8a0.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_990.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_a70.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_c10.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_d10.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_f20.ddf | 437 +++ src/S6Interfaces_3GPP_TS29336_f00.ddf | 324 +++ src/S6cInterface_3GPP_TS29338_f00.ddf | 113 + src/S9Interface_3GPP_TS29215_b40.ddf | 2 +- src/SGdGddInterface_3GPP_TS29338_f00.ddf | 99 + src/SGmbInterface_3GPP_TS29061_940.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_980.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_b90.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_d70.ddf | 91 + src/SKT_Specific_AVPs.ddf | 10 +- src/SLgInterface_3GPP_TS29172_d10.ddf | 2 +- src/SLhInterface_3GPP_TS29173_d00.ddf | 2 +- src/ShInterface_3GPP_TS29329_620.ddf | 2 +- src/ShInterface_3GPP_TS29329_750.ddf | 2 +- src/ShInterface_3GPP_TS29329_820.ddf | 2 +- src/ShInterface_3GPP_TS29329_a30.ddf | 2 +- src/ShInterface_3GPP_TS29329_a50.ddf | 2 +- src/SyInterface_3GPP_TS29219_b30.ddf | 2 +- src/T6Interfaces_3GPP_TS29128_f00.ddf | 130 + src/TCOM_Specific_AVPs.ddf | 2 +- src/Verizon_Specific_AVPs.ddf | 10 +- src/Vimpelcom_Specific.ddf | 7 +- src/Vodafone_Specific.ddf | 2 +- src/WgInterface_3GPP_TS29234_910.ddf | 2 +- src/a2Interface_ETSI_ES183059_1_211.ddf | 2 +- src/a4Interface_ETSI_ES183066_211.ddf | 2 +- src/e2Interface_ETSI_ES283035_121.ddf | 2 +- src/e4Interface_ETSI_ES283034_220.ddf | 2 +- 128 files changed, 13229 insertions(+), 422 deletions(-) create mode 100644 src/AAAInterface_3GPP_TS29272_d70.ddf create mode 100644 src/AAAInterface_3GPP_TS29272_f10.ddf create mode 100644 src/AAAInterface_3GPP_TS29273_d60.ddf create mode 100644 src/AAAInterface_3GPP_TS29273_f00.ddf mode change 100644 => 100755 src/AVP.awk mode change 100644 => 100755 src/AVP.sh create mode 100644 src/ChargingApplications_3GPP_TS32299_d70.ddf create mode 100644 src/ChargingApplications_3GPP_TS32299_d90.ddf create mode 100644 src/DOIC_RFC7683.ddf create mode 100644 src/DiameterRoutingMessagePriority_IETF_RFC7944.ddf create mode 100644 src/GiSGiInterface_3GPP_TS29061_d70.ddf create mode 100644 src/GmbInterface_3GPP_TS29061_d70.ddf create mode 100644 src/GxInterface_PCC_3GPP_TS29212_d70.ddf create mode 100644 src/GxInterface_PCC_3GPP_TS29212_e00.ddf create mode 100644 src/GxInterface_PCC_3GPP_TS29212_f10.ddf create mode 100644 src/RxInterface_PCC_3GPP_TS29214_f20.ddf create mode 100644 src/S6Interfaces_3GPP_TS29336_f00.ddf create mode 100644 src/S6cInterface_3GPP_TS29338_f00.ddf create mode 100644 src/SGdGddInterface_3GPP_TS29338_f00.ddf create mode 100644 src/SGmbInterface_3GPP_TS29061_d70.ddf create mode 100644 src/T6Interfaces_3GPP_TS29128_f00.ddf diff --git a/demo/DIAMETER_Types.ttcn b/demo/DIAMETER_Types.ttcn index 571e45d..66f83d2 100644 --- a/demo/DIAMETER_Types.ttcn +++ b/demo/DIAMETER_Types.ttcn @@ -40,7 +40,7 @@ module DIAMETER_Types { // // File: BaseTypes_IETF_RFC3588.ddf // Description: DDF for the Diameter base types -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -273,7 +273,7 @@ command_code, application_id, hop_by_hop_id, end_to_end_id, avps)"; // // File: Base_IETF_RFC3588.ddf // Description: DDF for the Diameter base AVPs -// Rev: <RnXnn> +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -666,7 +666,7 @@ type AVP_Grouped BASE_NONE_Vendor_Specific_Application_Id // // File: Ericsson_Specific_AVPs.ddf // Description: Ericsson specific AVP definitions -// Rev: <RnXnn> +// Rev: R55A // Prodnr: CNL 113 462 // Reference: http://snmp.ericsson.se/diameter-assignments.html // diff --git a/doc/DIAMETER_ProtocolModule_Generator_CNL113462_1551.doc b/doc/DIAMETER_ProtocolModule_Generator_CNL113462_1551.doc index f7f7e5f3ac337619eec6e20b6a1c8d0f6a4bdc23..00d0beab04100e566f14144ad895a4e59aa26b20 100644 GIT binary patch delta 53766 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 bH`Uy#$Mm%P+m5EXwtAN@Y@#+hn{59F!3)f= delta 44615 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 diff --git a/doc/DIAMETER_ProtocolModule_Generator_CNL113462_PRI.doc b/doc/DIAMETER_ProtocolModule_Generator_CNL113462_PRI.doc index c68861af6d3aebdec82dc3d44529b08da84ea95e..7ae08b098f39fdfff65b9c01265e422ad7f1aa7f 100644 GIT binary patch literal 204288 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⋘ya!79qy!i}4gMZp8+3SmfwgnqXI*b1~JY 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%0DM(M$$#4 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 literal 164864 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 G;Qs?9vJ9XA diff --git a/src/AAAInterface_3GPP_TS29272_940.ddf b/src/AAAInterface_3GPP_TS29272_940.ddf index c7f0a69..8accb60 100644 --- a/src/AAAInterface_3GPP_TS29272_940.ddf +++ b/src/AAAInterface_3GPP_TS29272_940.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_940.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29272_950.ddf b/src/AAAInterface_3GPP_TS29272_950.ddf index 2f6bb07..584b858 100644 --- a/src/AAAInterface_3GPP_TS29272_950.ddf +++ b/src/AAAInterface_3GPP_TS29272_950.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_950.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.5.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_970.ddf b/src/AAAInterface_3GPP_TS29272_970.ddf index 2b97450..e35c46f 100644 --- a/src/AAAInterface_3GPP_TS29272_970.ddf +++ b/src/AAAInterface_3GPP_TS29272_970.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_970.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_a30.ddf b/src/AAAInterface_3GPP_TS29272_a30.ddf index 0f71f85..f6693df 100644 --- a/src/AAAInterface_3GPP_TS29272_a30.ddf +++ b/src/AAAInterface_3GPP_TS29272_a30.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_a30.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V10.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_a60.ddf b/src/AAAInterface_3GPP_TS29272_a60.ddf index 90d61d0..6ff3e0c 100644 --- a/src/AAAInterface_3GPP_TS29272_a60.ddf +++ b/src/AAAInterface_3GPP_TS29272_a60.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_a60.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V10.6.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_b60.ddf b/src/AAAInterface_3GPP_TS29272_b60.ddf index b4b0dff..a6ee726 100644 --- a/src/AAAInterface_3GPP_TS29272_b60.ddf +++ b/src/AAAInterface_3GPP_TS29272_b60.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_b60.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V11.6.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_bd0.ddf b/src/AAAInterface_3GPP_TS29272_bd0.ddf index e928eec..9005564 100644 --- a/src/AAAInterface_3GPP_TS29272_bd0.ddf +++ b/src/AAAInterface_3GPP_TS29272_bd0.ddf @@ -11,7 +11,7 @@ // // File: AAAInterface_3GPP_TS29272_bd0.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V11.13.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_d70.ddf b/src/AAAInterface_3GPP_TS29272_d70.ddf new file mode 100644 index 0000000..b52e099 --- /dev/null +++ b/src/AAAInterface_3GPP_TS29272_d70.ddf @@ -0,0 +1,1177 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation and initial documentation +* Kalman Mikecz +******************************************************************************/ +// +// File: AAAInterface_3GPP_TS29272_d70.ddf +// Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: AAA +// APPLICATION-REVISION: V13_7_0 + +// AVP implementations according to: +// 3GPP TS 29.272 V13.7.0 - Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol + +// 3GPP TS 29.272 V13.7.0 +// 7.2.2 +type enumerated Command_Code +{ + Update_Location (316), + Cancel_Location (317), + Authentication_Information (318), + Insert_Subscriber_Data (319), + Delete_Subscriber_Data (320), + Purge_UE (321), + Reset (322), + Notify (323), + ME_Identity_Check (324), + Update_VCSG_Location (8388638), + Cancel_VCSG_Location (8388642) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.2 +// AVP: Subscription-Data (1400) 3GPP (10415) +type AVP_Grouped Subscription_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.3 +// AVP: Terminal-Information (1401) 3GPP (10415) +type AVP_Grouped Terminal_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.4 +// AVP: IMEI (1402) 3GPP (10415) +type AVP_UTF8String IMEI; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.5 +// AVP: Software-Version (1403) 3GPP (10415) +type AVP_UTF8String Software_Version; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.77 +// AVP: QoS-Subscribed (1404) 3GPP (10415) +type AVP_OctetString QoS_Subscribed; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.7 +// AVP: ULR-Flags (1405) 3GPP (10415) +type AVP_Unsigned32 ULR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.8 +// AVP: ULA-Flags (1406) 3GPP (10415) +type AVP_Unsigned32 ULA_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.9 +// AVP: Visited-PLMN-Id (1407) 3GPP (10415) +type AVP_OctetString Visited_PLMN_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.11 +// AVP: Requested-EUTRAN-Authentication-Info (1408) 3GPP (10415) +type AVP_Grouped Requested_EUTRAN_Authentication_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.12 +// AVP: Requested-UTRAN-GERAN-Authentication-Info (1409) 3GPP (10415) +type AVP_Grouped Requested_UTRAN_GERAN_Authentication_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.14 +// AVP: Number-Of-Requested-Vectors (1410) 3GPP (10415) +type AVP_Unsigned32 Number_Of_Requested_Vectors; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.15 +// AVP: Re-Synchronization-Info (1411) 3GPP (10415) +type AVP_OctetString Re_Synchronization_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.16 +// AVP: Immediate-Response-Preferred (1412) 3GPP (10415) +type AVP_Unsigned32 Immediate_Response_Preferred; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.17 +// AVP: Authentication-Info (1413) 3GPP (10415) +type AVP_Grouped Authentication_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.18 +// AVP: E-UTRAN-Vector (1414) 3GPP (10415) +type AVP_Grouped E_UTRAN_Vector; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.19 +// AVP: UTRAN-Vector (1415) 3GPP (10415) +type AVP_Grouped UTRAN_Vector; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.20 +// AVP: GERAN-Vector (1416) 3GPP (10415) +type AVP_Grouped GERAN_Vector; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.21 +// AVP: Network-Access-Mode (1417) 3GPP (10415) +type enumerated Network_Access_Mode +{ + PACKET_AND_CIRCUIT (0), + Reserved (1), + ONLY_PACKET (2) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.22 +// AVP: HPLMN-ODB (1418) 3GPP (10415) +type AVP_Unsigned32 HPLMN_ODB; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.23 +// AVP: Item-Number (1419) 3GPP (10415) +type AVP_Unsigned32 Item_Number; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.24 +// AVP: Cancellation-Type (1420) 3GPP (10415) +type enumerated Cancellation_Type +{ + MME_UPDATE_PROCEDURE (0), + SGSN_UPDATE_PROCEDURE (1), + SUBSCRIPTION_WITHDRAWAL (2), + UPDATE_PROCEDURE_IWF (3), + INITIAL_ATTACH_PROCEDURE (4) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.25 +// AVP: DSR-Flags (1421) 3GPP (10415) +type AVP_Unsigned32 DSR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.26 +// AVP: DSA-Flags (1422) 3GPP (10415) +type AVP_Unsigned32 DSA_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.27 +// AVP: Context-Identifier (1423) 3GPP (10415) +type AVP_Unsigned32 Context_Identifier; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.29 +// AVP: Subscriber-Status (1424) 3GPP (10415) +type enumerated Subscriber_Status +{ + SERVICE_GRANTED (0), + OPERATOR_DETERMINED_BARRING (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.30 +// AVP: Operator-Determined-Barring (1425) 3GPP (10415) +type AVP_Unsigned32 Operator_Determined_Barring; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.31 +// AVP: Access-Restriction-Data (1426) 3GPP (10415) +type AVP_Unsigned32 Access_Restriction_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.32 +// AVP: APN-OI-Replacement (1427) 3GPP (10415) +type AVP_UTF8String APN_OI_Replacement; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.33 +// AVP: All-APN-Configurations-Included-Indicator (1428) 3GPP (10415) +type enumerated All_APN_Configurations_Included_Indicator +{ + All_APN_CONFIGURATIONS_INCLUDED (0), + MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.34 +// AVP: APN-Configuration-Profile (1429) 3GPP (10415) +type AVP_Grouped APN_Configuration_Profile; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.35 +// AVP: APN-Configuration (1430) 3GPP (10415) +type AVP_Grouped APN_Configuration; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.37 +// AVP: EPS-Subscribed-QoS-Profile (1431) 3GPP (10415) +type AVP_Grouped EPS_Subscribed_QoS_Profile; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.38 +// AVP: VPLMN-Dynamic-Address-Allowed (1432) 3GPP (10415) +type enumerated VPLMN_Dynamic_Address_Allowed +{ + NOTALLOWED (0), + ALLOWED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.39 +// AVP: STN-SR (1433) 3GPP (10415) +type AVP_OctetString STN_SR; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.83 +// AVP: Alert-Reason (1434) 3GPP (10415) +type enumerated Alert_Reason; +{ + UE_PRESENT (0), + UE_MEMORY_AVAILABLE (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.41 +// AVP: AMBR (1435) 3GPP (10415) +type AVP_Grouped AMBR; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.78 +// AVP: CSG-Subscription-Data (1436) 3GPP (10415) +type AVP_Grouped CSG_Subscription_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.79 +// AVP: CSG-Id (1437) 3GPP (10415) +type AVP_Unsigned32 CSG_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.44 +// AVP: PDN-GW-Allocation-Type (1438) 3GPP (10415) +type enumerated PDN_GW_Allocation_Type +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.80 +// AVP: Expiration-Date (1439) 3GPP (10415) +type AVP_Time Expiration_Date; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.46 +// AVP: RAT-Frequency-Selection-Priority-ID (1440) 3GPP (10415) +type AVP_Unsigned32 RAT_Frequency_Selection_Priority_ID; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.47 +// AVP: IDA-Flags (1441) 3GPP (10415) +type AVP_Unsigned32 IDA_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.48 +// AVP: PUA-Flags (1442) 3GPP (10415) +type AVP_Unsigned32 PUA_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.49 +// AVP: NOR-Flags (1443) 3GPP (10415) +type AVP_Unsigned32 NOR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.50 +// AVP: User-Id (1444) 3GPP (10415) +type AVP_UTF8String User_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.51 +// AVP: Equipment-Status (1445) 3GPP (10415) +type enumerated Equipment_Status +{ + WHITELISTED (0), + BLACKLISTED (1), + GREYLISTED (2) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.52 +// AVP: Regional-Subscription-Zone-Code (1446) 3GPP (10415) +type AVP_OctetString Regional_Subscription_Zone_Code; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.53 +// AVP: RAND (1447) 3GPP (10415) +type AVP_OctetString RAND; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.54 +// AVP: XRES (1448) 3GPP (10415) +type AVP_OctetString XRES; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.55 +// AVP: AUTN (1449) 3GPP (10415) +type AVP_OctetString AUTN; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.56 +// AVP: KASME (1450) 3GPP (10415) +type AVP_OctetString KASME; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.98 +// AVP: Trace-Collection-Entity (1452) 3GPP (10415) +type AVP_Address Trace_Collection_Entity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.59 +// AVP: Kc (1453) 3GPP (10415) +type AVP_OctetString Kc; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.60 +// AVP: SRES (1454) 3GPP (10415) +type AVP_OctetString SRES; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.62 +// AVP: PDN-Type (1456) 3GPP (10415) +type enumerated PDN_Type; +{ + IPv4 (0), + IPv6 (1), + IPv4v6 (2), + IPv4_OR_IPv6 (3) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.81 +// AVP: Roaming-Restricted-Due-To-Unsupported-Feature (1457) 3GPP (10415) +type enumerated Roaming_Restricted_Due_To_Unsupported_Feature +{ + Roaming_Restricted_Due_To_Unsupported_Feature (0) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.63 +// AVP: Trace-Data (1458) 3GPP (10415) +type AVP_Grouped Trace_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.64 +// AVP: Trace-Reference (1459) 3GPP (10415) +type AVP_OctetString Trace_Reference; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.67 +// AVP: Trace-Depth (1462) 3GPP (10415) +// FS 3.3.2.10 +type AVP_Unsigned32 Trace_Depth; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.68 +// AVP: Trace-NE-Type-List (1463) 3GPP (10415) +type AVP_OctetString Trace_NE_Type_List; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.69 +// AVP: Trace-Interface-List (1464) 3GPP (10415) +type AVP_OctetString Trace_Interface_List; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.70 +// AVP: Trace-Event-List (1465) 3GPP (10415) +type AVP_OctetString Trace_Event_List; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.71 +// AVP: OMC-Id (1466) 3GPP (10415) +type AVP_OctetString OMC_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.72 +// AVP: GPRS-Subscription-Data (1467) 3GPP (10415) +type AVP_Grouped GPRS_Subscription_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.73 +// AVP: Complete-Data-List-Included-Indicator (1468) 3GPP (10415) +type enumerated Complete_Data_List_Included_Indicator +{ + All_PDP_CONTEXTS_INCLUDED (0), + MODIFIED_ADDED_PDP_CONTEXTS_INCLUDED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.74 +// AVP: PDP-Context (1469) 3GPP (10415) +type AVP_Grouped PDP_Context; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.75 +// AVP: PDP-Type (1470) 3GPP (10415) +type AVP_OctetString PDP_Type; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.6 +// AVP: 3GPP2-MEID (1471) 3GPP (10415) +type AVP_OctetString 3GPP2_MEID; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.82 +// AVP: Specific-APN-Info (1472) 3GPP (10415) +type AVP_Grouped Specific_APN_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.84 +// AVP: LCS-Info (1473) 3GPP (10415) +type AVP_Grouped LCS_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.85 +// AVP: GMLC-Number (1474) 3GPP (10415) +type AVP_OctetString GMLC_Number; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.86 +// AVP: LCS-PrivacyException (1475) 3GPP (10415) +type AVP_Grouped LCS_PrivacyException; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.87 +// AVP: SS-Code (1476) 3GPP (10415) +type AVP_OctetString SS_Code; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.88 +// AVP: SS-Status (1477) 3GPP (10415) +type AVP_OctetString SS_Status; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.89 +// AVP: Notification-To-UE-User (1478) 3GPP (10415) +type enumerated Notification_To_UE_User +{ + NOTIFY_LOCATION_ALLOWED (0), + NOTIFYANDVERIFY_LOCATION_ALLOWED_IF_NO_RESPONSE (1), + NOTIFYANDVERIFY_LOCATION_NOT_ALLOWED_IF_NO_RESPONSE (2), + LOCATION_NOT_ALLOWED (3) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.90 +// AVP: External-Client (1479) 3GPP (10415) +type AVP_Grouped External_Client; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.91 +// AVP: Client-Identity (1480) 3GPP (10415) +type AVP_OctetString Client_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.92 +// AVP: GMLC-Restriction (1481) 3GPP (10415) +type enumerated GMLC_Restriction +{ + GMLC_LIST (0), + HOME_COUNTRY (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.93 +// AVP: PLMN-Client (1482) 3GPP (10415) +type enumerated PLMN_Client +{ + BROADCAST_SERVICE (0), + O_AND_M_HPLMN (1), + O_AND_M_VPLMN (2), + ANONYMOUS_LOCATION (3), + TARGET_UE_SUBSCRIBED_SERVICE (4) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.94 +// AVP: Service-Type (1483) 3GPP (10415) +type AVP_Grouped Service_Type; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.95 +// AVP: ServiceTypeIdentity (1484) 3GPP (10415) +type AVP_Unsigned32 ServiceTypeIdentity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.96 +// AVP: MO-LR (1485) 3GPP (10415) +type AVP_Grouped MO_LR; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.99 +// AVP: Teleservice-List (1486) 3GPP (10415) +type AVP_Grouped Teleservice_List; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.100 +// AVP: TS-Code (1487) 3GPP (10415) +type AVP_OctetString TS_Code; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.101 +// AVP: Call-Barring-Info (1488) 3GPP (10415) +type AVP_Grouped Call_Barring_Info; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.102 +// AVP: SGSN-Number (1489) 3GPP (10415) +type AVP_OctetString SGSN_Number; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.103 +// AVP: IDR-Flags (1490) 3GPP (10415) +type AVP_Unsigned32 IDR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.104 +// AVP: ICS-Indicator (1491) 3GPP (10415) +type enumerated ICS_Indicator +{ + FALSE (0), + TRUE (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.106 +// AVP: IMS-Voice-Over-PS-Sessions-Supported (1492) 3GPP (10415) +type enumerated IMS_Voice_Over_PS_Sessions_Supported +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.107 +// AVP: Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions (1493) 3GPP (10415) +type enumerated Homogeneous_Support_of_IMS_Voice_Over_PS_Sessions +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.108 +// AVP: Last-UE-Activity-Time (1494) 3GPP (10415) +type AVP_Time Last_UE_Activity_Time; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.110 +// AVP: EPS-User-State (1495) 3GPP (10415) +type AVP_Grouped EPS_User_State; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.111 +// AVP: EPS-Location-Information (1496) 3GPP (10415) +type AVP_Grouped EPS_Location_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.112 +// AVP: MME-User-State (1497) 3GPP (10415) +type AVP_Grouped MME_User_State; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.113 +// AVP: SGSN-User-State (1498) 3GPP (10415) +type AVP_Grouped SGSN_User_State; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.114 +// AVP: User-State (1499) 3GPP (10415) +type enumerated User_State +{ + DETACHED (0), + ATTACHED_NOT_REACHABLE_FOR_PAGING (1), + ATTACHED_REACHABLE_FOR_PAGING (2), + CONNECTED_NOT_REACHABLE_FOR_PAGING (3), + CONNECTED_REACHABLE_FOR_PAGING (4), + NETWORK_DETERMINED_NOT_REACHABLE (5) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.115 +// AVP: MME-Location-Information (1600) 3GPP (10415) +type AVP_Grouped MME_Location_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.116 +// AVP: SGSN-Location-Information (1601) 3GPP (10415) +type AVP_Grouped SGSN_Location_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.117 +// AVP: E-UTRAN-Cell-Global-Identity (1602) 3GPP (10415) +type AVP_OctetString E_UTRAN_Cell_Global_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.118 +// AVP: Tracking-Area-Identity (1603) 3GPP (10415) +type AVP_OctetString Tracking_Area_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.119 +// AVP: Cell-Global-Identity (1604) 3GPP (10415) +type AVP_OctetString Cell_Global_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.120 +// AVP: Routing-Area-Identity (1605) 3GPP (10415) +type AVP_OctetString Routing_Area_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.121 +// AVP: Location-Area-Identity (1606) 3GPP (10415) +type AVP_OctetString Location_Area_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.122 +// AVP: Service-Area-Identity (1607) 3GPP (10415) +type AVP_OctetString Service_Area_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.123 +// AVP: Geographical-Information (1608) 3GPP (10415) +type AVP_OctetString Geographical_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.124 +// AVP: Geodetic-Information (1609) 3GPP (10415) +type AVP_OctetString Geodetic_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.125 +// AVP: Current-Location-Retrieved (1610) 3GPP (10415) +type enumerated Current_Location_Retrieved +{ + ACTIVE_LOCATION_RETRIEVAL (0) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.126 +// AVP: Age-Of-Location-Information (1611) 3GPP (10415) +type AVP_Unsigned32 Age_Of_Location_Information; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.127 +// AVP: Active-APN (1612) 3GPP (10415) +type AVP_Grouped Active_APN; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.128 +// AVP: Error-Diagnostic (1614) 3GPP (10415) +type enumerated Error_Diagnostic +{ + GPRS_DATA_SUBSCRIBED (0), + NO_GPRS_DATA_SUBSCRIBED (1), + ODB_ALL_APN (2), + ODB_HPLMN_APN (3), + ODB_VPLMN_APN (4) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.129 +// AVP: Ext-PDP-Address (1621) 3GPP (10415) +type AVP_Address Ext_PDP_Address; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.130 +// AVP: UE-SRVCC-Capability (1615) 3GPP (10415) +type enumerated UE_SRVCC_Capability +{ + UE_SRVCC_NOT_SUPPORTED (0), + UE_SRVCC_SUPPORTED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.131 +// AVP: MPS-Priority (1616) 3GPP (10415) +type AVP_Unsigned32 MPS_Priority; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.132 +// AVP: VPLMN-LIPA-Allowed (1617) 3GPP (10415) +type enumerated VPLMN_LIPA_Allowed +{ + LIPA_NOTALLOWED (0), + LIPA_ALLOWED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.133 +// AVP: LIPA-Permission (1618) 3GPP (10415) +type enumerated LIPA_Permission +{ + LIPA_PROHIBITED (0), + LIPA_ONLY (1), + LIPA_CONDITIONAL (2) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.134 +// AVP: Subscribed-Periodic-RAU-TAU-Timer (1619) 3GPP (10415) +type AVP_Unsigned32 Subscribed_Periodic_RAU_TAU_Timer; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.75A +// AVP: Ext-PDP-Type (1620) 3GPP (10415) +type AVP_OctetString Ext_PDP_Type; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.135 +// AVP: SIPTO-Permission (1613) 3GPP (10415) +type enumerated SIPTO_Permission +{ + SIPTO_ALLOWED (0), + SIPTO_NOTALLOWED (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.136 +// AVP: MDT-Configuration (1622) 3GPP (10415) +type AVP_Grouped MDT_Configuration; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.137 +// AVP: Job-Type (1623) 3GPP (10415) +type enumerated Job_Type +{ + IMMEDIATE_MDT_ONLY (0), + LOGGED_MDT_ONLY (1), + TRACE_ONLY (2), + IMMEDIATE_MDT_AND_TRACE (3) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.138 +// AVP: Area-Scope (1624) 3GPP (10415) +type AVP_Grouped Area_Scope; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.139 +// AVP: List-Of-Measurements (1625) 3GPP (10415) +type AVP_Unsigned32 List_Of_Measurements; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.140 +// AVP: Reporting-Trigger (1626) 3GPP (10415) +type AVP_Unsigned32 Reporting_Trigger; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.141 +// AVP: Report-Interval (1627) 3GPP (10415) +type enumerated Report_Interval +{ + RI_UMTS_250ms (0), + RI_UMTS_500ms (1), + RI_UMTS_1000ms (2), + RI_UMTS_2000ms (3), + RI_UMTS_3000ms (4), + RI_UMTS_4000ms (5), + RI_UMTS_6000ms (6), + RI_UMTS_8000ms (7), + RI_UMTS_12000ms (8), + RI_UMTS_16000ms (9), + RI_UMTS_20000ms (10), + RI_UMTS_24000ms (11), + RI_UMTS_28000ms (12), + RI_UMTS_32000ms (13), + RI_UMTS_64000ms (14), + RI_LTE_120ms (15), + RI_LTE_240ms (16), + RI_LTE_480ms (17), + RI_LTE_640ms (18), + RI_LTE_1024ms (19), + RI_LTE_2048ms (20), + RI_LTE_5120ms (21), + RI_LTE_10240ms (22), + RI_LTE_1min (23), + RI_LTE_6min (24), + RI_LTE_12min (25), + RI_LTE_30min (26), + RI_LTE_60min (27) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.142 +// AVP: Report-Amount (1628) 3GPP (10415) +type enumerated Report_Amount +{ + ONE (0), + TWO (1), + FOUR (2), + EIGHT (3), + SIXTEEN (4), + THIRTYTWO (5), + SIXTYFOUR (6), + INFINITY_AMOUNT (7) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.143 +// AVP: Event-Threshold-RSRP (1629) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRP; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.144 +// AVP: Event-Threshold-RSRQ (1630) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRQ; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.145 +// AVP: Logging-Interval (1631) 3GPP (10415) +type enumerated Logging_Interval +{ + LI_128 (0), + LI_256 (1), + LI_512 (2), + LI_1024 (3), + LI_2048 (4), + LI_3072 (5), + LI_4096 (6), + LI_6144 (7) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.146 +// AVP: Logging-Duration (1632) 3GPP (10415) +type enumerated Logging_Duration +{ + LD_600_SEC (0), + LD_1200_SEC (1), + LD_2400_SEC (2), + LD_3600_SEC (3), + LD_5400_SEC (4), + LD_7200_SEC (5) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.147 +// AVP: Relay-Node-Indicator (1633) 3GPP (10415) +type enumerated Relay_Node_Indicator +{ + NOT_RELAY_NODE (0), + RELAY_NODE (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.148 +// AVP: MDT-User-Consent (1634) 3GPP (10415) +type enumerated MDT_User_Consent +{ + CONSENT_NOT_GIVEN (0), + CONSENT_GIVEN (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.149 +// AVP: PUR-Flags (1635) 3GPP (10415) +type AVP_Unsigned32 PUR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.150 +// AVP: Subscribed-VSRVCC (1636) 3GPP (10415) +type enumerated Subscribed_VSRVCC +{ + VSRVCC_SUBSCRIBED (0) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.151 +// AVP: Equivalent-PLMN-List (1637) 3GPP (10415) +type AVP_Grouped Equivalent_PLMN_List; + + +// 3GPP TS 29.272 V13.7.0 +// 7.3.152 +// AVP: CLR-Flags (1638) 3GPP (10415) +type AVP_Unsigned32 CLR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.153 +// AVP: UVR-Flags (1639) 3GPP (10415) +type AVP_Unsigned32 UVR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.154 +// AVP: UVA-Flags (1640) 3GPP (10415) +type AVP_Unsigned32 UVA_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.155 +// AVP: VPLMN-CSG-Subscription-Data (1641) 3GPP (10415) +type AVP_Grouped VPLMN_CSG_Subscription_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.156 +// AVP: Local-Time-Zone (1649) 3GPP (10415) +type AVP_Grouped Local_Time_Zone; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.157 +// AVP: A-MSISDN (1643) 3GPP (10415) +type AVP_OctetString A_MSISDN; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.159 +// AVP: MME-Number-for-MT-SMS (1645) 3GPP (10415) +type AVP_OctetString MME_Number_for_MT_SMS; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.162 +// AVP: SMS-Register-Request (1648) 3GPP (10415) +type enumerated SMS_Register_Request +{ + SMS_REGISTRATION_REQUIRED (0), + SMS_REGISTRATION_NOT_PREFERRED (1), + NO_PREFERENCE (2) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.163 +// AVP: Time-Zone (1642) 3GPP (10415) +type AVP_UTF8String Time_Zone; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.164 +// AVP: Daylight-Saving-Time (1650) 3GPP (10415) +type enumerated Daylight_Saving_Time +{ + NO_ADJUSTMENT (0), + PLUS_ONE_HOUR_ADJUSTMENT (1), + PLUS_TWO_HOURS_ADJUSTMENT (2) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.165 +// AVP: Subscription-Data-Flags (1654) 3GPP (10415) +type AVP_Unsigned32 Subscription_Data_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.166 +// AVP: Measurement-Period-LTE (1656) 3GPP (10415) +type enumerated Measurement_Period_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.167 +// AVP: Measurement-Period-UMTS (1655) 3GPP (10415) +type enumerated Measurement_Period_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.168 +// AVP: Collection-Period-RRM-LTE (1657) 3GPP (10415) +type enumerated Collection_Period_RRM_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.169 +// AVP: Collection-Period-RRM-UMTS (1658) 3GPP (10415) +type enumerated Collection_Period_RRM_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.170 +// AVP: Positioning-Method (1659) 3GPP (10415) +type AVP_OctetString Positioning_Method; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.171 +// AVP: Measurement_Quantity (1660) 3GPP (10415) +type AVP_OctetString Measurement_Quantity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.172 +// AVP: Event-Threshold-Event-1F (1661) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1F; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.173 +// AVP: Event-Threshold-Event-1I (1662) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1I; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.174 +// AVP: Restoration-Priority (1663) 3GPP (10415) +type AVP_Unsigned32 Restoration_Priority; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.175 +// AVP: SGs-MME-Identity (1664) 3GPP (10415) +type AVP_UTF8String SGs_MME_Identity; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.176 +// AVP: SIPTO-Local-Network-Permission (1665) 3GPP (10415) +type AVP_Unsigned32 SIPTO_Local_Network_Permission; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.177 +// AVP: Coupled-Node-Diameter-ID (1666) 3GPP (10415) +type AVP_DiameterIdentity Coupled_Node_Diameter_ID; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.181 +// AVP: WLAN-offloadability (1667) 3GPP (10415) +type AVP_Grouped WLAN_offloadability; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.182 +// AVP: WLAN-offloadability-EUTRAN (1668) 3GPP (10415) +type AVP_Unsigned32 WLAN_offloadability_EUTRAN; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.183 +// AVP: WLAN-offloadability-UTRAN (1669) 3GPP (10415) +type AVP_Unsigned32 WLAN_offloadability_UTRAN; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.184 +// AVP: Reset-ID (1670) 3GPP (10415) +type AVP_OctetString Reset_ID; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.185 +// AVP: MDT-Allowed-PLMN-Id (1671) 3GPP (10415) +type AVP_OctetString MDT_Allowed_PLMN_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.186 +// AVP: Adjacent-PLMNs (1672) 3GPP (10415) +type AVP_Grouped Adjacent_PLMNs; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.187 +// AVP: Adjacent-Access-Restriction-Data (1673) 3GPP (10415) +type AVP_Grouped Adjacent_Access_Restriction_Data; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.188 +// AVP: DL-Buffering-Suggested-Packet-Count (1674) 3GPP (10415) +type AVP_Integer32 DL_Buffering_Suggested_Packet_Count; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.189 +// AVP: IMSI-Group-Id (1675) 3GPP (10415) +type AVP_Grouped IMSI_Group_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.190 +// AVP: Group-Service-Id (1676) 3GPP (10415) +type AVP_Unsigned32 Group_Service_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.191 +// AVP: Group-PLMN-Id (1677) 3GPP (10415) +type AVP_OctetString Group_PLMN_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.192 +// AVP: Local-Group-Id (1678) 3GPP (10415) +type AVP_OctetString Local_Group_Id; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.201 +// AVP: AIR-Flags (1679) 3GPP (10415) +type AVP_Unsigned32 AIR_Flags; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.202 +// AVP: UE-Usage-Type (1680) 3GPP (10415) +type AVP_Unsigned32 UE_Usage_Type; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.204 +// AVP: Non-IP-PDN-Type-Indicator (1681) 3GPP (10415) +type enumerated Non_IP_PDN_Type_Indicator +{ + FALSE_VALUE (0), + TRUE_VALUE (1) +} + +// 3GPP TS 29.272 V13.7.0 +// 7.3.205 +// AVP: Non-IP-Data-Delivery-Mechanism (1682) 3GPP (10415) +type AVP_Unsigned32 Non_IP_Data_Delivery_Mechanism; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.206 +// AVP: Additional-Context-ID (1683) 3GPP (10415) +type AVP_Unsigned32 Additional_Context_ID; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.207 +// AVP: SCEF-Realm (1684) 3GPP (10415) +type AVP_DiameterIdentity SCEF_Realm; + +// 3GPP TS 29.272 V13.7.0 +// 7.3.209 +// AVP: Preferred-Data-Mode (1686) 3GPP (10415) +type AVP_Unsigned32 Preferred_Data_Mode; diff --git a/src/AAAInterface_3GPP_TS29272_f10.ddf b/src/AAAInterface_3GPP_TS29272_f10.ddf new file mode 100644 index 0000000..b18539c --- /dev/null +++ b/src/AAAInterface_3GPP_TS29272_f10.ddf @@ -0,0 +1,1055 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation and initial documentation +******************************************************************************/ +// +// File: AAAInterface_3GPP_TS29272_f10.ddf +// Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V15.1.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: AAA +// APPLICATION-REVISION: V15_1_0 + +// AVP implementations according to: +// 3GPP TS 29.272 V15.1.0 - Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol + +// 7.2.2 +type enumerated Command_Code +{ + Update_Location (316), + Cancel_Location (317), + Authentication_Information (318), + Insert_Subscriber_Data (319), + Delete_Subscriber_Data (320), + Purge_UE (321), + Reset (322), + Notify (323), + ME_Identity_Check (324), + Update_VCSG_Location (8388638), + Cancel_VCSG_Location (8388642) +} + +// 7.3.2 +// AVP: Subscription-Data (1400) 3GPP (10415) +type AVP_Grouped Subscription_Data; + +// 7.3.3 +// AVP: Terminal-Information (1401) 3GPP (10415) +type AVP_Grouped Terminal_Information; + +// 7.3.4 +// AVP: IMEI (1402) 3GPP (10415) +type AVP_UTF8String IMEI; + +// 7.3.5 +// AVP: Software-Version (1403) 3GPP (10415) +type AVP_UTF8String Software_Version; + +// 7.3.77 +// AVP: QoS-Subscribed (1404) 3GPP (10415) +type AVP_OctetString QoS_Subscribed; + +// 7.3.7 +// AVP: ULR-Flags (1405) 3GPP (10415) +type AVP_Unsigned32 ULR_Flags; + +// 7.3.8 +// AVP: ULA-Flags (1406) 3GPP (10415) +type AVP_Unsigned32 ULA_Flags; + +// 7.3.9 +// AVP: Visited-PLMN-Id (1407) 3GPP (10415) +type AVP_OctetString Visited_PLMN_Id; + +// 7.3.11 +// AVP: Requested-EUTRAN-Authentication-Info (1408) 3GPP (10415) +type AVP_Grouped Requested_EUTRAN_Authentication_Info; + +// 7.3.12 +// AVP: Requested-UTRAN-GERAN-Authentication-Info (1409) 3GPP (10415) +type AVP_Grouped Requested_UTRAN_GERAN_Authentication_Info; + +// 7.3.14 +// AVP: Number-Of-Requested-Vectors (1410) 3GPP (10415) +type AVP_Unsigned32 Number_Of_Requested_Vectors; + +// 7.3.15 +// AVP: Re-Synchronization-Info (1411) 3GPP (10415) +type AVP_OctetString Re_Synchronization_Info; + +// 7.3.16 +// AVP: Immediate-Response-Preferred (1412) 3GPP (10415) +type AVP_Unsigned32 Immediate_Response_Preferred; + +// 7.3.17 +// AVP: Authentication-Info (1413) 3GPP (10415) +type AVP_Grouped Authentication_Info; + +// 7.3.18 +// AVP: E-UTRAN-Vector (1414) 3GPP (10415) +type AVP_Grouped E_UTRAN_Vector; + +// 7.3.19 +// AVP: UTRAN-Vector (1415) 3GPP (10415) +type AVP_Grouped UTRAN_Vector; + +// 7.3.20 +// AVP: GERAN-Vector (1416) 3GPP (10415) +type AVP_Grouped GERAN_Vector; + +// 7.3.21 +// AVP: Network-Access-Mode (1417) 3GPP (10415) +type enumerated Network_Access_Mode +{ + PACKET_AND_CIRCUIT (0), + Reserved (1), + ONLY_PACKET (2) +} + +// 7.3.22 +// AVP: HPLMN-ODB (1418) 3GPP (10415) +type AVP_Unsigned32 HPLMN_ODB; + +// 7.3.23 +// AVP: Item-Number (1419) 3GPP (10415) +type AVP_Unsigned32 Item_Number; + +// 7.3.24 +// AVP: Cancellation-Type (1420) 3GPP (10415) +type enumerated Cancellation_Type +{ + MME_UPDATE_PROCEDURE (0), + SGSN_UPDATE_PROCEDURE (1), + SUBSCRIPTION_WITHDRAWAL (2), + UPDATE_PROCEDURE_IWF (3), + INITIAL_ATTACH_PROCEDURE (4) +} + +// 7.3.25 +// AVP: DSR-Flags (1421) 3GPP (10415) +type AVP_Unsigned32 DSR_Flags; + +// 7.3.26 +// AVP: DSA-Flags (1422) 3GPP (10415) +type AVP_Unsigned32 DSA_Flags; + +// 7.3.27 +// AVP: Context-Identifier (1423) 3GPP (10415) +type AVP_Unsigned32 Context_Identifier; + +// 7.3.29 +// AVP: Subscriber-Status (1424) 3GPP (10415) +type enumerated Subscriber_Status +{ + SERVICE_GRANTED (0), + OPERATOR_DETERMINED_BARRING (1) +} + +// 7.3.30 +// AVP: Operator-Determined-Barring (1425) 3GPP (10415) +type AVP_Unsigned32 Operator_Determined_Barring; + +// 7.3.31 +// AVP: Access-Restriction-Data (1426) 3GPP (10415) +type AVP_Unsigned32 Access_Restriction_Data; + +// 7.3.32 +// AVP: APN-OI-Replacement (1427) 3GPP (10415) +type AVP_UTF8String APN_OI_Replacement; + +// 7.3.33 +// AVP: All-APN-Configurations-Included-Indicator (1428) 3GPP (10415) +type enumerated All_APN_Configurations_Included_Indicator +{ + All_APN_CONFIGURATIONS_INCLUDED (0), + MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED (1) +} + +// 7.3.34 +// AVP: APN-Configuration-Profile (1429) 3GPP (10415) +type AVP_Grouped APN_Configuration_Profile; + +// 7.3.35 +// AVP: APN-Configuration (1430) 3GPP (10415) +type AVP_Grouped APN_Configuration; + +// 7.3.37 +// AVP: EPS-Subscribed-QoS-Profile (1431) 3GPP (10415) +type AVP_Grouped EPS_Subscribed_QoS_Profile; + +// 7.3.38 +// AVP: VPLMN-Dynamic-Address-Allowed (1432) 3GPP (10415) +type enumerated VPLMN_Dynamic_Address_Allowed +{ + NOTALLOWED (0), + ALLOWED (1) +} + +// 7.3.39 +// AVP: STN-SR (1433) 3GPP (10415) +type AVP_OctetString STN_SR; + +// 7.3.83 +// AVP: Alert-Reason (1434) 3GPP (10415) +type enumerated Alert_Reason; +{ + UE_PRESENT (0), + UE_MEMORY_AVAILABLE (1) +} + +// 7.3.41 +// AVP: AMBR (1435) 3GPP (10415) +type AVP_Grouped AMBR; + +// 7.3.78 +// AVP: CSG-Subscription-Data (1436) 3GPP (10415) +type AVP_Grouped CSG_Subscription_Data; + +// 7.3.79 +// AVP: CSG-Id (1437) 3GPP (10415) +type AVP_Unsigned32 CSG_Id; + +// 7.3.44 +// AVP: PDN-GW-Allocation-Type (1438) 3GPP (10415) +type enumerated PDN_GW_Allocation_Type +{ + STATIC (0), + DYNAMIC (1) +} + +// 7.3.80 +// AVP: Expiration-Date (1439) 3GPP (10415) +type AVP_Time Expiration_Date; + +// 7.3.46 +// AVP: RAT-Frequency-Selection-Priority-ID (1440) 3GPP (10415) +type AVP_Unsigned32 RAT_Frequency_Selection_Priority_ID; + +// 7.3.47 +// AVP: IDA-Flags (1441) 3GPP (10415) +type AVP_Unsigned32 IDA_Flags; + +// 7.3.48 +// AVP: PUA-Flags (1442) 3GPP (10415) +type AVP_Unsigned32 PUA_Flags; + +// 7.3.49 +// AVP: NOR-Flags (1443) 3GPP (10415) +type AVP_Unsigned32 NOR_Flags; + +// 7.3.50 +// AVP: User-Id (1444) 3GPP (10415) +type AVP_UTF8String User_Id; + +// 7.3.51 +// AVP: Equipment-Status (1445) 3GPP (10415) +type enumerated Equipment_Status +{ + WHITELISTED (0), + BLACKLISTED (1), + GREYLISTED (2) +} + +// 7.3.52 +// AVP: Regional-Subscription-Zone-Code (1446) 3GPP (10415) +type AVP_OctetString Regional_Subscription_Zone_Code; + +// 7.3.53 +// AVP: RAND (1447) 3GPP (10415) +type AVP_OctetString RAND; + +// 7.3.54 +// AVP: XRES (1448) 3GPP (10415) +type AVP_OctetString XRES; + +// 7.3.55 +// AVP: AUTN (1449) 3GPP (10415) +type AVP_OctetString AUTN; + +// 7.3.56 +// AVP: KASME (1450) 3GPP (10415) +type AVP_OctetString KASME; + +// 7.3.98 +// AVP: Trace-Collection-Entity (1452) 3GPP (10415) +type AVP_Address Trace_Collection_Entity; + +// 7.3.59 +// AVP: Kc (1453) 3GPP (10415) +type AVP_OctetString Kc; + +// 7.3.60 +// AVP: SRES (1454) 3GPP (10415) +type AVP_OctetString SRES; + +// 7.3.62 +// AVP: PDN-Type (1456) 3GPP (10415) +type enumerated PDN_Type; +{ + IPv4 (0), + IPv6 (1), + IPv4v6 (2), + IPv4_OR_IPv6 (3) +} + +// 7.3.81 +// AVP: Roaming-Restricted-Due-To-Unsupported-Feature (1457) 3GPP (10415) +type enumerated Roaming_Restricted_Due_To_Unsupported_Feature +{ + Roaming_Restricted_Due_To_Unsupported_Feature (0) +} + +// 7.3.63 +// AVP: Trace-Data (1458) 3GPP (10415) +type AVP_Grouped Trace_Data; + +// 7.3.64 +// AVP: Trace-Reference (1459) 3GPP (10415) +type AVP_OctetString Trace_Reference; + +// 7.3.67 +// AVP: Trace-Depth (1462) 3GPP (10415) +// FS 3.3.2.10 +type AVP_Unsigned32 Trace_Depth; + +// 7.3.68 +// AVP: Trace-NE-Type-List (1463) 3GPP (10415) +type AVP_OctetString Trace_NE_Type_List; + +// 7.3.69 +// AVP: Trace-Interface-List (1464) 3GPP (10415) +type AVP_OctetString Trace_Interface_List; + +// 7.3.70 +// AVP: Trace-Event-List (1465) 3GPP (10415) +type AVP_OctetString Trace_Event_List; + +// 7.3.71 +// AVP: OMC-Id (1466) 3GPP (10415) +type AVP_OctetString OMC_Id; + +// 7.3.72 +// AVP: GPRS-Subscription-Data (1467) 3GPP (10415) +type AVP_Grouped GPRS_Subscription_Data; + +// 7.3.73 +// AVP: Complete-Data-List-Included-Indicator (1468) 3GPP (10415) +type enumerated Complete_Data_List_Included_Indicator +{ + All_PDP_CONTEXTS_INCLUDED (0), + MODIFIED_ADDED_PDP_CONTEXTS_INCLUDED (1) +} + +// 7.3.74 +// AVP: PDP-Context (1469) 3GPP (10415) +type AVP_Grouped PDP_Context; + +// 7.3.75 +// AVP: PDP-Type (1470) 3GPP (10415) +type AVP_OctetString PDP_Type; + +// 7.3.6 +// AVP: 3GPP2-MEID (1471) 3GPP (10415) +type AVP_OctetString 3GPP2_MEID; + +// 7.3.82 +// AVP: Specific-APN-Info (1472) 3GPP (10415) +type AVP_Grouped Specific_APN_Info; + +// 7.3.84 +// AVP: LCS-Info (1473) 3GPP (10415) +type AVP_Grouped LCS_Info; + +// 7.3.85 +// AVP: GMLC-Number (1474) 3GPP (10415) +type AVP_OctetString GMLC_Number; + +// 7.3.86 +// AVP: LCS-PrivacyException (1475) 3GPP (10415) +type AVP_Grouped LCS_PrivacyException; + +// 7.3.87 +// AVP: SS-Code (1476) 3GPP (10415) +type AVP_OctetString SS_Code; + +// 7.3.88 +// AVP: SS-Status (1477) 3GPP (10415) +type AVP_OctetString SS_Status; + +// 7.3.89 +// AVP: Notification-To-UE-User (1478) 3GPP (10415) +type enumerated Notification_To_UE_User +{ + NOTIFY_LOCATION_ALLOWED (0), + NOTIFYANDVERIFY_LOCATION_ALLOWED_IF_NO_RESPONSE (1), + NOTIFYANDVERIFY_LOCATION_NOT_ALLOWED_IF_NO_RESPONSE (2), + LOCATION_NOT_ALLOWED (3) +} + +// 7.3.90 +// AVP: External-Client (1479) 3GPP (10415) +type AVP_Grouped External_Client; + +// 7.3.91 +// AVP: Client-Identity (1480) 3GPP (10415) +type AVP_OctetString Client_Identity; + +// 7.3.92 +// AVP: GMLC-Restriction (1481) 3GPP (10415) +type enumerated GMLC_Restriction +{ + GMLC_LIST (0), + HOME_COUNTRY (1) +} + +// 7.3.93 +// AVP: PLMN-Client (1482) 3GPP (10415) +type enumerated PLMN_Client +{ + BROADCAST_SERVICE (0), + O_AND_M_HPLMN (1), + O_AND_M_VPLMN (2), + ANONYMOUS_LOCATION (3), + TARGET_UE_SUBSCRIBED_SERVICE (4) +} + +// 7.3.94 +// AVP: Service-Type (1483) 3GPP (10415) +type AVP_Grouped Service_Type; + +// 7.3.95 +// AVP: ServiceTypeIdentity (1484) 3GPP (10415) +type AVP_Unsigned32 ServiceTypeIdentity; + +// 7.3.96 +// AVP: MO-LR (1485) 3GPP (10415) +type AVP_Grouped MO_LR; + +// 7.3.99 +// AVP: Teleservice-List (1486) 3GPP (10415) +type AVP_Grouped Teleservice_List; + +// 7.3.100 +// AVP: TS-Code (1487) 3GPP (10415) +type AVP_OctetString TS_Code; + +// 7.3.101 +// AVP: Call-Barring-Info (1488) 3GPP (10415) +type AVP_Grouped Call_Barring_Info; + +// 7.3.102 +// AVP: SGSN-Number (1489) 3GPP (10415) +type AVP_OctetString SGSN_Number; + +// 7.3.103 +// AVP: IDR-Flags (1490) 3GPP (10415) +type AVP_Unsigned32 IDR_Flags; + +// 7.3.104 +// AVP: ICS-Indicator (1491) 3GPP (10415) +type enumerated ICS_Indicator +{ + FALSE (0), + TRUE (1) +} + +// 7.3.106 +// AVP: IMS-Voice-Over-PS-Sessions-Supported (1492) 3GPP (10415) +type enumerated IMS_Voice_Over_PS_Sessions_Supported +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 7.3.107 +// AVP: Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions (1493) 3GPP (10415) +type enumerated Homogeneous_Support_of_IMS_Voice_Over_PS_Sessions +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 7.3.108 +// AVP: Last-UE-Activity-Time (1494) 3GPP (10415) +type AVP_Time Last_UE_Activity_Time; + +// 7.3.110 +// AVP: EPS-User-State (1495) 3GPP (10415) +type AVP_Grouped EPS_User_State; + +// 7.3.111 +// AVP: EPS-Location-Information (1496) 3GPP (10415) +type AVP_Grouped EPS_Location_Information; + +// 7.3.112 +// AVP: MME-User-State (1497) 3GPP (10415) +type AVP_Grouped MME_User_State; + +// 7.3.113 +// AVP: SGSN-User-State (1498) 3GPP (10415) +type AVP_Grouped SGSN_User_State; + +// 7.3.114 +// AVP: User-State (1499) 3GPP (10415) +type enumerated User_State +{ + DETACHED (0), + ATTACHED_NOT_REACHABLE_FOR_PAGING (1), + ATTACHED_REACHABLE_FOR_PAGING (2), + CONNECTED_NOT_REACHABLE_FOR_PAGING (3), + CONNECTED_REACHABLE_FOR_PAGING (4), + NETWORK_DETERMINED_NOT_REACHABLE (5) +} + +// 7.3.115 +// AVP: MME-Location-Information (1600) 3GPP (10415) +type AVP_Grouped MME_Location_Information; + +// 7.3.116 +// AVP: SGSN-Location-Information (1601) 3GPP (10415) +type AVP_Grouped SGSN_Location_Information; + +// 7.3.117 +// AVP: E-UTRAN-Cell-Global-Identity (1602) 3GPP (10415) +type AVP_OctetString E_UTRAN_Cell_Global_Identity; + +// 7.3.118 +// AVP: Tracking-Area-Identity (1603) 3GPP (10415) +type AVP_OctetString Tracking_Area_Identity; + +// 7.3.119 +// AVP: Cell-Global-Identity (1604) 3GPP (10415) +type AVP_OctetString Cell_Global_Identity; + +// 7.3.120 +// AVP: Routing-Area-Identity (1605) 3GPP (10415) +type AVP_OctetString Routing_Area_Identity; + +// 7.3.121 +// AVP: Location-Area-Identity (1606) 3GPP (10415) +type AVP_OctetString Location_Area_Identity; + +// 7.3.122 +// AVP: Service-Area-Identity (1607) 3GPP (10415) +type AVP_OctetString Service_Area_Identity; + +// 7.3.123 +// AVP: Geographical-Information (1608) 3GPP (10415) +type AVP_OctetString Geographical_Information; + +// 7.3.124 +// AVP: Geodetic-Information (1609) 3GPP (10415) +type AVP_OctetString Geodetic_Information; + +// 7.3.125 +// AVP: Current-Location-Retrieved (1610) 3GPP (10415) +type enumerated Current_Location_Retrieved +{ + ACTIVE_LOCATION_RETRIEVAL (0) +} + +// 7.3.126 +// AVP: Age-Of-Location-Information (1611) 3GPP (10415) +type AVP_Unsigned32 Age_Of_Location_Information; + +// 7.3.127 +// AVP: Active-APN (1612) 3GPP (10415) +type AVP_Grouped Active_APN; + +// 7.3.128 +// AVP: Error-Diagnostic (1614) 3GPP (10415) +type enumerated Error_Diagnostic +{ + GPRS_DATA_SUBSCRIBED (0), + NO_GPRS_DATA_SUBSCRIBED (1), + ODB_ALL_APN (2), + ODB_HPLMN_APN (3), + ODB_VPLMN_APN (4) +} + +// 7.3.129 +// AVP: Ext-PDP-Address (1621) 3GPP (10415) +type AVP_Address Ext_PDP_Address; + +// 7.3.130 +// AVP: UE-SRVCC-Capability (1615) 3GPP (10415) +type enumerated UE_SRVCC_Capability +{ + UE_SRVCC_NOT_SUPPORTED (0), + UE_SRVCC_SUPPORTED (1) +} + +// 7.3.131 +// AVP: MPS-Priority (1616) 3GPP (10415) +type AVP_Unsigned32 MPS_Priority; + +// 7.3.132 +// AVP: VPLMN-LIPA-Allowed (1617) 3GPP (10415) +type enumerated VPLMN_LIPA_Allowed +{ + LIPA_NOTALLOWED (0), + LIPA_ALLOWED (1) +} + +// 7.3.133 +// AVP: LIPA-Permission (1618) 3GPP (10415) +type enumerated LIPA_Permission +{ + LIPA_PROHIBITED (0), + LIPA_ONLY (1), + LIPA_CONDITIONAL (2) +} + +// 7.3.134 +// AVP: Subscribed-Periodic-RAU-TAU-Timer (1619) 3GPP (10415) +type AVP_Unsigned32 Subscribed_Periodic_RAU_TAU_Timer; + +// 7.3.75A +// AVP: Ext-PDP-Type (1620) 3GPP (10415) +type AVP_OctetString Ext_PDP_Type; + +// 7.3.135 +// AVP: SIPTO-Permission (1613) 3GPP (10415) +type enumerated SIPTO_Permission +{ + SIPTO_ALLOWED (0), + SIPTO_NOTALLOWED (1) +} + +// 7.3.136 +// AVP: MDT-Configuration (1622) 3GPP (10415) +type AVP_Grouped MDT_Configuration; + +// 7.3.137, TS 32.422 v15.0.0 - 5.9a +// AVP: Job-Type (1623) 3GPP (10415) +type enumerated Job_Type +{ + IMMEDIATE_MDT_ONLY (0), + LOGGED_MDT_ONLY (1), + TRACE_ONLY (2), + IMMEDIATE_MDT_AND_TRACE (3), + RLF_REPORTS_ONLY (4), + RCEF_REPORTS_ONLY (5), + LOGGED_MBSFN_MDT (6) +} + +// 7.3.138 +// AVP: Area-Scope (1624) 3GPP (10415) +type AVP_Grouped Area_Scope; + +// 7.3.139 +// AVP: List-Of-Measurements (1625) 3GPP (10415) +type AVP_Unsigned32 List_Of_Measurements; + +// 7.3.140 +// AVP: Reporting-Trigger (1626) 3GPP (10415) +type AVP_Unsigned32 Reporting_Trigger; + +// 7.3.141, TS 32.422 v15.0.0 - 5.10.5 +// AVP: Report-Interval (1627) 3GPP (10415) +type enumerated Report_Interval +{ + RI_UMTS_250ms (0), + RI_UMTS_500ms (1), + RI_UMTS_1000ms (2), + RI_UMTS_2000ms (3), + RI_UMTS_3000ms (4), + RI_UMTS_4000ms (5), + RI_UMTS_6000ms (6), + RI_UMTS_8000ms (7), + RI_UMTS_12000ms (8), + RI_UMTS_16000ms (9), + RI_UMTS_20000ms (10), + RI_UMTS_24000ms (11), + RI_UMTS_28000ms (12), + RI_UMTS_32000ms (13), + RI_UMTS_64000ms (14), + RI_LTE_120ms (15), + RI_LTE_240ms (16), + RI_LTE_480ms (17), + RI_LTE_640ms (18), + RI_LTE_1024ms (19), + RI_LTE_2048ms (20), + RI_LTE_5120ms (21), + RI_LTE_10240ms (22), + RI_LTE_1min (23), + RI_LTE_6min (24), + RI_LTE_12min (25), + RI_LTE_30min (26), + RI_LTE_60min (27) +} + +// 7.3.142, TS 32.422 v15.0.0 - 5.10.6 +// AVP: Report-Amount (1628) 3GPP (10415) +type enumerated Report_Amount +{ + ONE (0), + TWO (1), + FOUR (2), + EIGHT (3), + SIXTEEN (4), + THIRTYTWO (5), + SIXTYFOUR (6), + INFINITY_AMOUNT (7) +} + +// 7.3.143 +// AVP: Event-Threshold-RSRP (1629) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRP; + +// 7.3.144 +// AVP: Event-Threshold-RSRQ (1630) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRQ; + +// 7.3.145, TS 32.422 v15.0.0 - 5.10.8 +// AVP: Logging-Interval (1631) 3GPP (10415) +type enumerated Logging_Interval +{ + LI_128 (0), + LI_256 (1), + LI_512 (2), + LI_1024 (3), + LI_2048 (4), + LI_3072 (5), + LI_4096 (6), + LI_6144 (7) +} + +// 7.3.146, TS 32.422 v15.0.0 - 5.10.9 +// AVP: Logging-Duration (1632) 3GPP (10415) +type enumerated Logging_Duration +{ + LD_600_SEC (0), + LD_1200_SEC (1), + LD_2400_SEC (2), + LD_3600_SEC (3), + LD_5400_SEC (4), + LD_7200_SEC (5) +} + +// 7.3.147 +// AVP: Relay-Node-Indicator (1633) 3GPP (10415) +type enumerated Relay_Node_Indicator +{ + NOT_RELAY_NODE (0), + RELAY_NODE (1) +} + +// 7.3.148 +// AVP: MDT-User-Consent (1634) 3GPP (10415) +type enumerated MDT_User_Consent +{ + CONSENT_NOT_GIVEN (0), + CONSENT_GIVEN (1) +} + +// 7.3.149 +// AVP: PUR-Flags (1635) 3GPP (10415) +type AVP_Unsigned32 PUR_Flags; + +// 7.3.150 +// AVP: Subscribed-VSRVCC (1636) 3GPP (10415) +type enumerated Subscribed_VSRVCC +{ + VSRVCC_SUBSCRIBED (0) +} + +// 7.3.151 +// AVP: Equivalent-PLMN-List (1637) 3GPP (10415) +type AVP_Grouped Equivalent_PLMN_List; + + +// 7.3.152 +// AVP: CLR-Flags (1638) 3GPP (10415) +type AVP_Unsigned32 CLR_Flags; + +// 7.3.153 +// AVP: UVR-Flags (1639) 3GPP (10415) +type AVP_Unsigned32 UVR_Flags; + +// 7.3.154 +// AVP: UVA-Flags (1640) 3GPP (10415) +type AVP_Unsigned32 UVA_Flags; + +// 7.3.155 +// AVP: VPLMN-CSG-Subscription-Data (1641) 3GPP (10415) +type AVP_Grouped VPLMN_CSG_Subscription_Data; + +// 7.3.156 +// AVP: Local-Time-Zone (1649) 3GPP (10415) +type AVP_Grouped Local_Time_Zone; + +// 7.3.157 +// AVP: A-MSISDN (1643) 3GPP (10415) +type AVP_OctetString A_MSISDN; + +// 7.3.159 +// AVP: MME-Number-for-MT-SMS (1645) 3GPP (10415) +type AVP_OctetString MME_Number_for_MT_SMS; + +// 7.3.162 +// AVP: SMS-Register-Request (1648) 3GPP (10415) +type enumerated SMS_Register_Request +{ + SMS_REGISTRATION_REQUIRED (0), + SMS_REGISTRATION_NOT_PREFERRED (1), + NO_PREFERENCE (2) +} + +// 7.3.163 +// AVP: Time-Zone (1642) 3GPP (10415) +type AVP_UTF8String Time_Zone; + +// 7.3.164 +// AVP: Daylight-Saving-Time (1650) 3GPP (10415) +type enumerated Daylight_Saving_Time +{ + NO_ADJUSTMENT (0), + PLUS_ONE_HOUR_ADJUSTMENT (1), + PLUS_TWO_HOURS_ADJUSTMENT (2) +} + +// 7.3.165 +// AVP: Subscription-Data-Flags (1654) 3GPP (10415) +type AVP_Unsigned32 Subscription_Data_Flags; + +// 7.3.166, TS 32.422 v15.0.0 - 5.10.23 +// AVP: Measurement-Period-LTE (1656) 3GPP (10415) +type enumerated Measurement_Period_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 7.3.167, TS 32.422 v15.0.0 - 5.10.22 +// AVP: Measurement-Period-UMTS (1655) 3GPP (10415) +type enumerated Measurement_Period_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 7.3.168, TS 32.422 v15.0.0 - 5.10.20 +// AVP: Collection-Period-RRM-LTE (1657) 3GPP (10415) +type enumerated Collection_Period_RRM_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 7.3.169, TS 32.422 v15.0.0 - 5.10.22 +// AVP: Collection-Period-RRM-UMTS (1658) 3GPP (10415) +type enumerated Collection_Period_RRM_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 7.3.170 +// AVP: Positioning-Method (1659) 3GPP (10415) +type AVP_OctetString Positioning_Method; + +// 7.3.171 +// AVP: Measurement_Quantity (1660) 3GPP (10415) +type AVP_OctetString Measurement_Quantity; + +// 7.3.172 +// AVP: Event-Threshold-Event-1F (1661) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1F; + +// 7.3.173 +// AVP: Event-Threshold-Event-1I (1662) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1I; + +// 7.3.174 +// AVP: Restoration-Priority (1663) 3GPP (10415) +type AVP_Unsigned32 Restoration_Priority; + +// 7.3.175 +// AVP: SGs-MME-Identity (1664) 3GPP (10415) +type AVP_UTF8String SGs_MME_Identity; + +// 7.3.176 +// AVP: SIPTO-Local-Network-Permission (1665) 3GPP (10415) +type AVP_Unsigned32 SIPTO_Local_Network_Permission; + +// 7.3.177 +// AVP: Coupled-Node-Diameter-ID (1666) 3GPP (10415) +type AVP_DiameterIdentity Coupled_Node_Diameter_ID; + +// 7.3.181 +// AVP: WLAN-offloadability (1667) 3GPP (10415) +type AVP_Grouped WLAN_offloadability; + +// 7.3.182 +// AVP: WLAN-offloadability-EUTRAN (1668) 3GPP (10415) +type AVP_Unsigned32 WLAN_offloadability_EUTRAN; + +// 7.3.183 +// AVP: WLAN-offloadability-UTRAN (1669) 3GPP (10415) +type AVP_Unsigned32 WLAN_offloadability_UTRAN; + +// 7.3.184 +// AVP: Reset-ID (1670) 3GPP (10415) +type AVP_OctetString Reset_ID; + +// 7.3.185 +// AVP: MDT-Allowed-PLMN-Id (1671) 3GPP (10415) +type AVP_OctetString MDT_Allowed_PLMN_Id; + +// 7.3.186 +// AVP: Adjacent-PLMNs (1672) 3GPP (10415) +type AVP_Grouped Adjacent_PLMNs; + +// 7.3.187 +// AVP: Adjacent-Access-Restriction-Data (1673) 3GPP (10415) +type AVP_Grouped Adjacent_Access_Restriction_Data; + +// 7.3.188 +// AVP: DL-Buffering-Suggested-Packet-Count (1674) 3GPP (10415) +type AVP_Integer32 DL_Buffering_Suggested_Packet_Count; + +// 7.3.189 +// AVP: IMSI-Group-Id (1675) 3GPP (10415) +type AVP_Grouped IMSI_Group_Id; + +// 7.3.190 +// AVP: Group-Service-Id (1676) 3GPP (10415) +type AVP_Unsigned32 Group_Service_Id; + +// 7.3.191 +// AVP: Group-PLMN-Id (1677) 3GPP (10415) +type AVP_OctetString Group_PLMN_Id; + +// 7.3.192 +// AVP: Local-Group-Id (1678) 3GPP (10415) +type AVP_OctetString Local_Group_Id; + +// 7.3.201 +// AVP: AIR-Flags (1679) 3GPP (10415) +type AVP_Unsigned32 AIR_Flags; + +// 7.3.202 +// AVP: UE-Usage-Type (1680) 3GPP (10415) +type AVP_Unsigned32 UE_Usage_Type; + +// 7.3.204 +// AVP: Non-IP-PDN-Type-Indicator (1681) 3GPP (10415) +type enumerated Non_IP_PDN_Type_Indicator +{ + FALSE_VALUE (0), + TRUE_VALUE (1) +} + +// 7.3.205 +// AVP: Non-IP-Data-Delivery-Mechanism (1682) 3GPP (10415) +type AVP_Unsigned32 Non_IP_Data_Delivery_Mechanism; + +// 7.3.206 +// AVP: Additional-Context-ID (1683) 3GPP (10415) +type AVP_Unsigned32 Additional_Context_ID; + +// 7.3.207 +// AVP: SCEF-Realm (1684) 3GPP (10415) +type AVP_DiameterIdentity SCEF_Realm; + +// 7.3.208 +// AVP: Subscription-Data-Deletion (1685) 3GPP (10415) +type AVP_Grouped Subscription_Data_Deletion; + +// 7.3.209 +// AVP: Preferred-Data-Mode (1686) 3GPP (10415) +type AVP_Grouped Preferred_Data_Mode; + +// 7.3.210 +// AVP: Emergency-Info (1687) 3GPP (10415) +type AVP_Grouped Emergency_Info; + +// 7.3.212 +// AVP: V2X-Subscription-Data (1688) 3GPP (10415) +type AVP_Grouped V2X_Subscription_Data; + +// 7.3.213 +// AVP: V2X-Permission (1689) 3GPP (10415) +type AVP_Unsigned32 V2X_Permission; + +// 7.3.214 +// AVP: PDN-Connection-Continuity (1690) 3GPP (10415) +type AVP_Unsigned32 PDN_Connection_Continuity; + +// 7.3.215 +// AVP: eDRX-Cycle-Length (1691) 3GPP (10415) +type AVP_Grouped eDRX_Cycle_Length; + +// 7.3.216 +// AVP: eDRX-Cycle-Length-Value (1692) 3GPP (10415) +type AVP_OctetString eDRX_Cycle_Length_Value; + +// 7.3.217 +// AVP: UE-PC5-AMBR (1693) 3GPP (10415) +type AVP_Unsigned32 UE_PC5_AMBR; + +// 7.3.219 +// AVP: MBSFN-Area (1694) 3GPP (10415) +type AVP_Grouped MBSFN_Area; + +// 7.3.220 +// AVP: MBSFN-Area-ID (1695) 3GPP (10415) +type AVP_Unsigned32 MBSFN_Area_ID; + +// 7.3.221 +// AVP: Carrier-Frequency (1696) 3GPP (10415) +type AVP_Unsigned32 Carrier_Frequency; + +// 7.3.222 +// AVP: RDS-Indicator (1697) 3GPP (10415) +type enumerated RDS_Indicator +{ + DISABLED (0), + ENABLED (1) +} + diff --git a/src/AAAInterface_3GPP_TS29273_840.ddf b/src/AAAInterface_3GPP_TS29273_840.ddf index bf7a049..50d0d42 100644 --- a/src/AAAInterface_3GPP_TS29273_840.ddf +++ b/src/AAAInterface_3GPP_TS29273_840.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_840.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V8.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29273_940.ddf b/src/AAAInterface_3GPP_TS29273_940.ddf index c36fa2c..a3adf2e 100644 --- a/src/AAAInterface_3GPP_TS29273_940.ddf +++ b/src/AAAInterface_3GPP_TS29273_940.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_940.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V9.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29273_b30.ddf b/src/AAAInterface_3GPP_TS29273_b30.ddf index 16675a4..468ecea 100644 --- a/src/AAAInterface_3GPP_TS29273_b30.ddf +++ b/src/AAAInterface_3GPP_TS29273_b30.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_940.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V11.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29273_d60.ddf b/src/AAAInterface_3GPP_TS29273_d60.ddf new file mode 100644 index 0000000..2a2151b --- /dev/null +++ b/src/AAAInterface_3GPP_TS29273_d60.ddf @@ -0,0 +1,114 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: AAAInterface_3GPP_TS29273_940.ddf +// Description: DDF for EPS AAA according to 3GPP TS 29.273 V13.6.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: AAA +// APPLICATION-REVISION: V13_6_0 + +// AVP implementations according to: +// 3GPP TS 29.273 V13.6.0 - EPS AAA interfaces based on the Diameter protocol +// Statement of Compiance X/174 02-AXB 250 20 Uen PA4 + +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Access Server Application + +// 3GPP TS 29.273 V13.6.0 9.2.2 +type enumerated Command_Code { + AA (265), + Session_Termination (275), + Abort_Session (274) +} + +// 3GPP 29.273 V13.6.0 +// AVP: Non-3GPP-User-Data (1500) 3GPP (10415) +// 8.2.3.1 +type AVP_Grouped Non_3GPP_User_Data + +// 3GPP 29.273 V13.6.0 +// AVP: Non-3GPP-IP-Access (1501) 3GPP (10415) +// 8.2.3.3 +type enumerated Non_3GPP_IP_Access { + NON_3GPP_SUBSCRIPTION_ALLOWED (0), + NON_3GPP_SUBSCRIPTION_BARRED (1) +} + +// 3GPP 29.273 V13.6.0 +// AVP: Non-3GPP-IP-Access-APN (1502) 3GPP (10415) +// 8.2.3.4 +type enumerated Non_3GPP_IP_Access_APN { + NON_3GPP_APNS_ENABLE (0), + NON_3GPP_APNS_DISABLE (1) +} + +// 3GPP 29.273 V13.6.0 +// AVP: AN-Trusted (1503) 3GPP (10415) +// 5.2.3.9 +type enumerated AN_Trusted { + TRUSTED (0), + UNTRUSTED (1) +} + +// 3GPP 29.273 V13.6.0 +// AVP: ANID (1504) 3GPP (10415) +// 5.2.3.7 +type AVP_UTF8String ANID + +// 3GPP 29.273 V13.6.0 +// AVP: Trace-Info (1505) 3GPP (10415) +// 8.2.3.13 +type AVP_Grouped Trace_Info + +// 3GPP 29.273 V13.6.0 +// AVP: MIP-FA-RK (1506) 3GPP (10415) +// 5.2.3.12 +type AVP_OctetString MIP_FA_RK + +// 3GPP 29.273 V13.6.0 +// AVP: MIP-FA-RK-SPI (1507) 3GPP (10415) +// 5.2.3.13 +type AVP_Unsigned32 MIP_FA_RK_SPI + + + + +// 3GPP 29.273 V13.6.0 +// AVP: Trust-Relationship-Update (1515) 3GPP (10415) +// 9.2.3.1.4 +type enumerated Trust_Relationship_Update { + REQUEST_UPDATE (1) +} + +// 3GPP 29.273 V13.6.0 +// AVP: RAR-Flags (1522) 3GPP (10415) +// 9.2.3.1.5 +type AVP_Unsigned32 RAR_Flags + + + +// 3GPP 29.273 V13.6.0 +// AVP: Origination-Time-Stamp (1536) 3GPP (10415) +// 9.2.3.2.6 +type AVP_Unsigned64 Origination_Time_Stamp + +// 3GPP 29.273 V13.6.0 +// AVP: Maximum-Wait-Time (1537) 3GPP (10415) +// 9.2.3.2.7 +type AVP_Unsigned32 Maximum_Wait_Time + + + diff --git a/src/AAAInterface_3GPP_TS29273_f00.ddf b/src/AAAInterface_3GPP_TS29273_f00.ddf new file mode 100644 index 0000000..c4616f6 --- /dev/null +++ b/src/AAAInterface_3GPP_TS29273_f00.ddf @@ -0,0 +1,211 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: AAAInterface_3GPP_TS29273_f00.ddf +// Description: DDF for EPS AAA according to 3GPP TS 29.273 V15.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: AAA +// APPLICATION-REVISION: V15_0_0 + +// AVP implementations according to: +// 3GPP TS 29.273 V15.0.0 - EPS AAA interfaces based on the Diameter protocol + +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Access Server Application + +// 9.2.2 +type enumerated Command_Code { + AA (265), + Session_Termination (275), + Abort_Session (274) +} + +// 8.2.3.1 +// AVP: Non-3GPP-User-Data (1500) 3GPP (10415) +type AVP_Grouped Non_3GPP_User_Data; + +// 8.2.3.3 +// AVP: Non-3GPP-IP-Access (1501) 3GPP (10415) +type enumerated Non_3GPP_IP_Access { + NON_3GPP_SUBSCRIPTION_ALLOWED (0), + NON_3GPP_SUBSCRIPTION_BARRED (1) +} + +// 8.2.3.4 +// AVP: Non-3GPP-IP-Access-APN (1502) 3GPP (10415) +type enumerated Non_3GPP_IP_Access_APN { + NON_3GPP_APNS_ENABLE (0), + NON_3GPP_APNS_DISABLE (1) +} + +// 5.2.3.9 +// AVP: AN-Trusted (1503) 3GPP (10415) +type enumerated AN_Trusted { + TRUSTED (0), + UNTRUSTED (1) +} + +// 5.2.3.7 +// AVP: ANID (1504) 3GPP (10415) +type AVP_UTF8String ANID; + +// 8.2.3.13 +// AVP: Trace-Info (1505) 3GPP (10415) +type AVP_Grouped Trace_Info; + +// 5.2.3.12 +// AVP: MIP-FA-RK (1506) 3GPP (10415) +type AVP_OctetString MIP_FA_RK; + +// 5.2.3.13 +// AVP: MIP-FA-RK-SPI (1507) 3GPP (10415) +type AVP_Unsigned32 MIP_FA_RK_SPI; + +// 5.2.3.17 +// AVP: PPR-Flags (1508) 3GPP (10415) +type AVP_Unsigned32 PPR_Flags; + +// 5.2.3.18 +// AVP: WLAN-Identifier (1509) 3GPP (10415) +type AVP_Grouped WLAN_Identifier; + +// 8.2.3.19 +// AVP: TWAN-Access-Info (1510) 3GPP (10415) +type AVP_Grouped TWAN_Access_Info; + +// 8.2.3.20 +// AVP: Access-Authorization-Flags (1511) 3GPP (10415) +type AVP_Unsigned32 Access_Authorization_Flags; + +// 8.2.3.18 +// AVP: TWAN-Default-APN-Context-Id (1512) 3GPP (10415) +type AVP_Unsigned32 TWAN_Default_APN_Context_Id; + +// 9.2.3.1.4 +// AVP: Trust-Relationship-Update (1515) 3GPP (10415) +type enumerated Trust_Relationship_Update { + REQUEST_UPDATE (1) +} + +// 5.2.3.14 +// AVP: Full-Network-Name (1516) 3GPP (10415) +type AVP_OctetString Full_Network_Name; + +// 5.2.3.15 +// AVP: Short-Network-Name (1517) 3GPP (10415) +type AVP_OctetString Short_Network_Name; + +// 8.2.3.21 +// AVP: AAA-Failure-Indication (1518) 3GPP (10415) +type AVP_Unsigned32 AAA_Failure_Indication; + +// 5.2.3.19 +// AVP: Transport-Access-Type (1519) 3GPP (10415) +type enumerated Transport_Access_Type +{ + BBF (0) +} + +// 5.2.3.20 +// AVP: DER-Flags (1520) 3GPP (10415) +type AVP_Unsigned32 DER_Flags; + +// 5.2.3.21 +// AVP: DEA-Flags (1521) 3GPP (10415) +type AVP_Unsigned32 DEA_Flags; + +// 9.2.3.1.5 +// AVP: RAR-Flags (1522) 3GPP (10415) +type AVP_Unsigned32 RAR_Flags; + +// 9.2.3.7 +// AVP: DER-S6b-Flags (1523) 3GPP (10415) +type AVP_Unsigned32 DER_S6b_Flags; + +// 5.2.3.22 +// AVP: SSID (1524) 3GPP (10415) +type AVP_UTF8String SSID; + +// 5.2.3.23 +// AVP: HESSID (1525) 3GPP (10415) +type AVP_UTF8String HESSID; + + +// 5.2.3.24 +// AVP: Access-Network-Info (1526) 3GPP (10415) +type AVP_Grouped Access_Network_Info; + +// 5.2.3.25 +// AVP: TWAN-Connection-Mode (1527) 3GPP (10415) +type AVP_Unsigned32 TWAN_Connection_Mode; + +// 5.2.3.26 +// AVP: TWAN-Connectivity-Parameters (1528) 3GPP (10415) +type AVP_Grouped TWAN_Connectivity_Parameters; + +// 5.2.3.27 +// AVP: Connectivity-Flags (1529) 3GPP (10415) +type AVP_Unsigned32 Connectivity_Flags; + +// 5.2.3.28 +// AVP: TWAN-PCO (1530) 3GPP (10415) +type AVP_Grouped TWAN_PCO; + +// 5.2.3.29 +// AVP: TWAG-CP-Address (1531) 3GPP (10415) +type AVP_Address TWAG_CP_Address; + +// 5.2.3.30 +// AVP: TWAG-UP-Address (1532) 3GPP (10415) +type AVP_UTF8String TWAG_UP_Address; + +// 5.2.3.31 +// AVP: TWAN-S2a-Failure-Cause (1533) 3GPP (10415) +type AVP_Unsigned32 TWAN_S2a_Failure_Cause; + +// 5.2.3.33 +// AVP: SM-Back-Off-Timer (1534) 3GPP (10415) +type AVP_Unsigned32 SM_Back_Off_Timer; + +// 5.2.3.33 +// AVP: WLCP-Key (1535) 3GPP (10415) +type AVP_OctetString WLCP_Key; + +// 9.2.3.2.6 +// AVP: Origination-Time-Stamp (1536) 3GPP (10415) +type AVP_Unsigned64 Origination_Time_Stamp; + +// 9.2.3.2.7 +// AVP: Maximum-Wait-Time (1537) 3GPP (10415) +type AVP_Unsigned32 Maximum_Wait_Time; + +// 7.2.3.5 +// AVP: Emergency-Services (1538) 3GPP (10415) +type AVP_Unsigned32 Emergency_Services; + +// 7.2.3.5 +// AVP: AAR-Flags (1539) 3GPP (10415) +type AVP_Unsigned32 AAR_Flags; + +// 5.2.3.35 +// AVP: IMEI-Check-In-VPLMN-Result (1540) 3GPP (10415) +type AVP_Unsigned32 IMEI_Check_In_VPLMN_Result; + +// 8.2.3.27 +// AVP: ERP-Authorization (1541) 3GPP (10415) +type AVP_Unsigned32 ERP_Authorization; + + diff --git a/src/AVP.awk b/src/AVP.awk old mode 100644 new mode 100755 diff --git a/src/AVP.sh b/src/AVP.sh old mode 100644 new mode 100755 index 877a74a..6744c92 --- a/src/AVP.sh +++ b/src/AVP.sh @@ -145,7 +145,12 @@ while [ $# -ge 1 ]; do comm_name=`which $0` comm_dir_name=`dirname $comm_name` if [ -f "${comm_dir_name}/${AVPSCRIPT}" ]; then - echo "// Generated with command:" > ${TTCN3FILE}".ttcn" + echo "///////////////////////////////////////////////////" > ${TTCN3FILE}".ttcn" + echo "// //" >> ${TTCN3FILE}".ttcn" + echo "// !!!! Generated file, do not edit !!!! //" >> ${TTCN3FILE}".ttcn" + echo "// //" >> ${TTCN3FILE}".ttcn" + echo "///////////////////////////////////////////////////" >> ${TTCN3FILE}".ttcn" + echo "// Generated with command:" >> ${TTCN3FILE}".ttcn" echo "// AVP.sh ${AWKARGS}" >> ${TTCN3FILE}".ttcn" gawk -f ${comm_dir_name}/${AVPSCRIPT} ${AWKARGS} >> ${TTCN3FILE}".ttcn" else diff --git a/src/AVP_encdec.awk b/src/AVP_encdec.awk index 45bdd41..0833594 100644 --- a/src/AVP_encdec.awk +++ b/src/AVP_encdec.awk @@ -78,9 +78,8 @@ BEGIN { } - print "int encode_AVP_Grouped(unsigned char* & p, const AVP__Grouped& avp){" - print " int avp_len=0;" - print " unsigned char* start =p;" + print "int encode_AVP_Grouped(TTCN_Buffer & p, const AVP__Grouped& avp){" + print " size_t start_len =p.get_len();" print " for (int count = 0; count < avp.size_of(); count++) {" print " switch(avp[count].get_selection()){" print " case GenericAVP::ALT_avp__undefined:{" @@ -107,20 +106,9 @@ BEGIN { print " const AVP& avptype=avp[count].avp();" print " const AVP__Header& avphdr=avptype.avp__header();" - print " encode_int_4byte(p, get_AVP_code_val(avphdr.avp__code()));" - print "#ifdef DPMG_USE_DETAILED_BITS" - print " encode_bits_1byte(p, avphdr.V__bit(), avphdr.M__bit(), avphdr.P__bit()," - print " avphdr.r__bits());" - print "#else" - print " encode_octets(p, bit2oct(avphdr.VMPxxxxx()));" - print "#endif " - print " unsigned char* length_field=p;" - print " p+=3;" - print " if (avphdr.vendor__id().ispresent()){" - print " encode_int_4byte(p, avphdr.vendor__id()());" - print " }" print " int encoded_octets=0;" + print " TTCN_Buffer avp_buffer;" print " switch(avptype.avp__data().get_selection()){" @@ -182,20 +170,20 @@ BEGIN { if($2 == "enumerated") { if(enum_2_Unsigned32 || ((new_avp_code SP new_avp_vendor_id_code) in enum_replace_list)) { AVP_type[new_avp_code SP new_avp_vendor_id_code] = "AVP_Unsigned32" - BUFFER = "(p, " + BUFFER = "(avp_buffer, " TYPE = "AVP_Unsigned32" printCaseCommand(BUFFER, TYPE) } else { AVP_type[new_avp_code SP new_avp_vendor_id_code] = "enumerated" - BUFFER = "(p,(int)" + BUFFER = "(avp_buffer,(int)" TYPE = "AVP_enumerated" printCaseCommand(BUFFER, TYPE) } next } else { AVP_type[new_avp_code SP new_avp_vendor_id_code] = $2 - BUFFER = "(p," + BUFFER = "(avp_buffer," TYPE = $2 printCaseCommand(BUFFER, TYPE) } @@ -206,9 +194,19 @@ END { print " default:" print " break;" print " }" - print " int avphdr_size = 8 + 4 * (avphdr.vendor__id().ispresent());" - print " avp_len=avphdr_size+encoded_octets;" - print " encode_int_3byte(length_field, (unsigned int) avp_len);" + + print " encode_int_4byte(p, get_AVP_code_val(avphdr.avp__code()));" + print "#ifdef DPMG_USE_DETAILED_BITS" + print " encode_bits_1byte(p, avphdr.V__bit(), avphdr.M__bit(), avphdr.P__bit()," + print " avphdr.r__bits());" + print "#else" + print " encode_octets(p, bit2oct(avphdr.VMPxxxxx()));" + print "#endif " + print " encode_int_3byte(p, (unsigned int) (8 + 4 * (avphdr.vendor__id().ispresent())+encoded_octets));" + print " if (avphdr.vendor__id().ispresent()){" + print " encode_int_4byte(p, avphdr.vendor__id()());" + print " }" + print " p.put_buf(avp_buffer);" print " " print " }" print " break;" @@ -218,7 +216,7 @@ END { print " }" print " } // for AVPs" print " " - print "return p-start;" + print "return p.get_len()-start_len;" print "}" print "" print "int get_AVP_code_val(const AVP__Code& avpcodes){" diff --git a/src/Acision_Specific.ddf b/src/Acision_Specific.ddf index 8887e9b..ff5b915 100644 --- a/src/Acision_Specific.ddf +++ b/src/Acision_Specific.ddf @@ -37,7 +37,7 @@ // // File: Acision_Specific.ddf // Description: Acision specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 // Reference: // diff --git a/src/Alcatel_Lucent_Specific_AVPs.ddf b/src/Alcatel_Lucent_Specific_AVPs.ddf index f0c9f40..b988828 100644 --- a/src/Alcatel_Lucent_Specific_AVPs.ddf +++ b/src/Alcatel_Lucent_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Alcatel_Lucent_Specific_AVPs.ddf // Description: Alcatel Lucent (ALU) specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/BaseTypes_IETF_RFC3588.ddf b/src/BaseTypes_IETF_RFC3588.ddf index dd0a763..5aa6284 100644 --- a/src/BaseTypes_IETF_RFC3588.ddf +++ b/src/BaseTypes_IETF_RFC3588.ddf @@ -37,7 +37,7 @@ // // File: BaseTypes_IETF_RFC3588.ddf // Description: DDF for the Diameter base types -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -60,7 +60,7 @@ external function f_DIAMETER_GetAVPByListOfCodesFromGroupedAVP(in octetstring pl function f_get_R_bit(in PDU_DIAMETER pl_pdu) return boolean { -!3 return pl_pdu.RPETxxxx[7]=='1'B; +!3 return pl_pdu.RPETxxxx[0]=='1'B; !4 return pl_pdu.R_bit=='1'B; } @@ -169,14 +169,14 @@ type charstring QoSFilterRule; // 4.2. Basic AVP Data Formats // -type octetstring AVP_OctetString; -type INT32 AVP_Integer32; -type INT64 AVP_Integer64; -type UINT32 AVP_Unsigned32; -type UINT64 AVP_Unsigned64; -type FLOAT32 AVP_Float32; -type FLOAT64 AVP_Float64; -type AVP_list AVP_Grouped; +type octetstring AVP_OctetString with {variant ""}; +type INT32 AVP_Integer32 with {variant ""}; +type INT64 AVP_Integer64 with {variant ""}; +type UINT32 AVP_Unsigned32 with {variant ""}; +type UINT64 AVP_Unsigned64 with {variant ""}; +type FLOAT32 AVP_Float32 with {variant ""}; +type FLOAT64 AVP_Float64 with {variant ""}; +type AVP_list AVP_Grouped with {variant ""}; // // 4.3. Derived AVP Data Formats diff --git a/src/Base_IETF_RFC3588.ddf b/src/Base_IETF_RFC3588.ddf index d367fea..bba3fcb 100644 --- a/src/Base_IETF_RFC3588.ddf +++ b/src/Base_IETF_RFC3588.ddf @@ -37,7 +37,7 @@ // // File: Base_IETF_RFC3588.ddf // Description: DDF for the Diameter base AVPs -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -49,7 +49,7 @@ // // RFC 3588 3.1 -type enumerated Command_Code +type enumerated Command_Code { Abort_Session (274), Accounting (271), @@ -59,15 +59,15 @@ type enumerated Command_Code Re_Auth (258), Session_Termination (275) } - -// RFC 3588 + +// RFC 3588 // AVP: Acct-Interim-Interval (85) // 9.8.2 type AVP_Unsigned32 Acct_Interim_Interval; -// RFC 3588 +// RFC 3588 // AVP: Accounting-Realtime-Required (483) // 9.8.7 type enumerated Accounting_Realtime_Required @@ -75,19 +75,19 @@ type enumerated Accounting_Realtime_Required DELIVER_AND_GRANT (1), GRANT_AND_STORE (2), GRANT_AND_LOSE (3) -} +} -// RFC 3588 +// RFC 3588 // AVP: Acct-Multi-Session-Id (50) // 9.8.5 type AVP_UTF8String Acct_Multi_Session_Id; -// RFC 3588 +// RFC 3588 // AVP: Accounting-Record-Number (485) // 9.8.3 type AVP_Unsigned32 Accounting_Record_Number; -// RFC 3588 +// RFC 3588 // AVP: Accounting-Record-Type (480) // 9.8.1 type enumerated Accounting_Record_Type @@ -98,28 +98,28 @@ type enumerated Accounting_Record_Type STOP_RECORD (4) } -// RFC 3588 +// RFC 3588 // AVP: Accounting-Session-Id (44) // 9.8.4 type AVP_OctetString Accounting_Session_Id; -// RFC 3588 +// RFC 3588 // AVP: Accounting-Sub-Session-Id (287) // 9.8.6 type AVP_Unsigned64 Accounting_Sub_Session_Id; -// RFC 3588 +// RFC 3588 // AVP: Acct-Application-Id (259) // 6.9 type AVP_Unsigned32 Acct_Application_Id; -// RFC 3588 +// RFC 3588 // AVP: Auth-Application-Id (258) // 6.8 type AVP_Unsigned32 Auth_Application_Id; -// RFC 3588 -// AVP: Auth-Request-Type (274) +// RFC 3588 +// AVP: Auth-Request-Type (274) // 8.7 type enumerated Auth_Request_Type { @@ -128,17 +128,17 @@ type enumerated Auth_Request_Type AUTHORIZE_AUTHENTICATE (3) } -// RFC 3588 +// RFC 3588 // AVP: Authorization-Lifetime (291) // 8.9 type AVP_Unsigned32 Authorization_Lifetime; -// RFC 3588 +// RFC 3588 // AVP: Auth-Grace-Period (276) // 8.10 type AVP_Unsigned32 Auth_Grace_Period; - -// RFC 3588 + +// RFC 3588 // AVP: Auth-Session-State (277) // 8.11 type enumerated Auth_Session_State @@ -147,8 +147,8 @@ type enumerated Auth_Session_State NO_STATE_MAINTAINED (1) } -// RFC 3588 -// AVP: Re-Auth-Request-Type (285) +// RFC 3588 +// AVP: Re-Auth-Request-Type (285) // 8.12 type enumerated Re_Auth_Request_Type { @@ -156,22 +156,22 @@ type enumerated Re_Auth_Request_Type AUTHORIZE_AUTHENTICATE (1) } -// RFC 3588 +// RFC 3588 // AVP: Class (25) // 8.20 type AVP_OctetString Class; -// RFC 3588 +// RFC 3588 // AVP: Destination-Host (293) // 6.5 type AVP_DiameterIdentity Destination_Host; -// RFC 3588 +// RFC 3588 // AVP: Destination-Realm (283) // 6.6 type AVP_DiameterIdentity Destination_Realm; -// RFC 3588 +// RFC 3588 // AVP: Disconnect-Cause (273) // 5.4.3 type enumerated Disconnect_Cause @@ -181,102 +181,102 @@ type enumerated Disconnect_Cause DO_NOT_WANT_TO_TALK_TO_YOU (2) } -// RFC 3588 +// RFC 3588 // AVP: E2E-Sequence (300) // 6.15 type AVP_Grouped E2E_Sequence; -// RFC 3588 +// RFC 3588 // AVP: Error-Message (281) // 7.3 type AVP_UTF8String Error_Message; -// RFC 3588 -// AVP: Error-Reporting-Host (294) +// RFC 3588 +// AVP: Error-Reporting-Host (294) // 7.4 type AVP_DiameterIdentity Error_Reporting_Host; -// RFC 3588 +// RFC 3588 // AVP: Event-Timestamp (55) // 8.21 type AVP_Time Event_Timestamp; -// RFC 3588 +// RFC 3588 // AVP: Experimental-Result (297) // 7.6 type AVP_Grouped Experimental_Result; -// RFC 3588 +// RFC 3588 // AVP: Experimental-Result-Code (298) // 7.7 type AVP_Unsigned32 Experimental_Result_Code; -// RFC 3588 +// RFC 3588 // AVP: Failed-AVP (279) // 7.5 type AVP_Grouped Failed_AVP; -// RFC 3588 +// RFC 3588 // AVP: Firmware-Revision (267) // 5.3.4 type AVP_Unsigned32 Firmware_Revision; -// RFC 3588 +// RFC 3588 // AVP: Host-IP-Address (257) // 5.3.5 type AVP_Address Host_IP_Address; -// RFC 3588 +// RFC 3588 // AVP: Inband-Security-Id (299) // 6.10 type AVP_Unsigned32 Inband_Security_Id; -// RFC 3588 +// RFC 3588 // AVP: Multi-Round-Time-Out (272) // 8.19 type AVP_Unsigned32 Multi_Round_Time_Out; -// RFC 3588 +// RFC 3588 // AVP: Origin-Host (264) // 6.3 type AVP_DiameterIdentity Origin_Host; -// RFC 3588 +// RFC 3588 // AVP: Origin-Realm (296) // 6.4 type AVP_DiameterIdentity Origin_Realm; -// RFC 3588 +// RFC 3588 // AVP: Origin-State-Id (278) // 8.16 type AVP_Unsigned32 Origin_State_Id; -// RFC 3588 +// RFC 3588 // AVP: Product-Name (269) // 5.3.7 type AVP_UTF8String Product_Name; -// RFC 3588 +// RFC 3588 // AVP: Proxy-Host (280) // 6.7.3 type AVP_DiameterIdentity Proxy_Host; -// RFC 3588 +// RFC 3588 // AVP: Proxy-Info (284) // 6.7.2 type AVP_Grouped Proxy_Info; -// RFC 3588 +// RFC 3588 // AVP: Proxy-State (33) // 6.7.4 type AVP_OctetString Proxy_State; -// RFC 3588 +// RFC 3588 // AVP: Redirect-Host (292) // 6.12 type AVP_DiameterURI Redirect_Host; -// RFC 3588 +// RFC 3588 // AVP: Redirect-Host-Usage (261) // 6.13 type enumerated Redirect_Host_Usage @@ -290,37 +290,37 @@ type enumerated Redirect_Host_Usage ALL_USER (6) } -// RFC 3588 +// RFC 3588 // AVP: Redirect-Max-Cache-Time (262) // 6.14 type AVP_Unsigned32 Redirect_Max_Cache_Time; -// RFC 3588 +// RFC 3588 // AVP: Result-Code (268) // 7.1 type AVP_Unsigned32 Result_Code; -// RFC 3588 +// RFC 3588 // AVP: Route-Record (282) // 6.7.1 type AVP_DiameterIdentity Route_Record; -// RFC 3588 +// RFC 3588 // AVP: Session-Id (263) // 8.8 type AVP_UTF8String Session_Id; -// RFC 3588 +// RFC 3588 // AVP: Session-Timeout (27) // 8.13 type AVP_Unsigned32 Session_Timeout; -// RFC 3588 +// RFC 3588 // AVP: Session-Binding (270) // 8.17 type AVP_Unsigned32 Session_Binding; -// RFC 3588 +// RFC 3588 // AVP: Session-Server-Failover (271) // 8.18 type enumerated Session_Server_Failover @@ -331,12 +331,12 @@ type enumerated Session_Server_Failover TRY_AGAIN_ALLOW_SERVICE (3) } -// RFC 3588 +// RFC 3588 // AVP: Supported-Vendor-Id (265) // 5.3.6 type AVP_Unsigned32 Supported_Vendor_Id; -// RFC 3588 +// RFC 3588 // AVP: Termination-Cause (295) // 8.15 type enumerated Termination_Cause @@ -351,17 +351,17 @@ type enumerated Termination_Cause DIAMETER_SESSION_TIMEOUT (8) } -// RFC 3588 +// RFC 3588 // AVP: User-Name (1) // 8.14 -type AVP_UTF8String User_Name; +type AVP_UTF8String User_Name; -// RFC 3588 +// RFC 3588 // AVP: Vendor-Id (266) // 5.3.3 type AVP_Unsigned32 Vendor_Id; -// RFC 3588 +// RFC 3588 // AVP: Vendor-Specific-Application-Id (260) // 6.11 type AVP_Grouped Vendor_Specific_Application_Id; diff --git a/src/CLCInterface_Vodafone_Rev2.ddf b/src/CLCInterface_Vodafone_Rev2.ddf index 650e20b..99662a2 100644 --- a/src/CLCInterface_Vodafone_Rev2.ddf +++ b/src/CLCInterface_Vodafone_Rev2.ddf @@ -39,7 +39,7 @@ // Description: DDF for CLC according to Intelligent Packet Core // Vodafone Diameter CCA Specification for the CLCI // Version 2 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_850.ddf b/src/ChargingApplications_3GPP_TS32299_850.ddf index 3e2db61..341bff9 100644 --- a/src/ChargingApplications_3GPP_TS32299_850.ddf +++ b/src/ChargingApplications_3GPP_TS32299_850.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_850.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V8.5.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_870.ddf b/src/ChargingApplications_3GPP_TS32299_870.ddf index 5ca0966..02e46ce 100644 --- a/src/ChargingApplications_3GPP_TS32299_870.ddf +++ b/src/ChargingApplications_3GPP_TS32299_870.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_870.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V8.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_900.ddf b/src/ChargingApplications_3GPP_TS32299_900.ddf index e56d38f..779687a 100644 --- a/src/ChargingApplications_3GPP_TS32299_900.ddf +++ b/src/ChargingApplications_3GPP_TS32299_900.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_900.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.0.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_940.ddf b/src/ChargingApplications_3GPP_TS32299_940.ddf index 16439d1..f00db1b 100644 --- a/src/ChargingApplications_3GPP_TS32299_940.ddf +++ b/src/ChargingApplications_3GPP_TS32299_940.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_940.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_9b0.ddf b/src/ChargingApplications_3GPP_TS32299_9b0.ddf index 02b16a6..d9c06d2 100644 --- a/src/ChargingApplications_3GPP_TS32299_9b0.ddf +++ b/src/ChargingApplications_3GPP_TS32299_9b0.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_9110.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.11.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf b/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf index 1670d22..cc6f793 100644 --- a/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf +++ b/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_AdviceOfCharge.ddf // Description: DDF for Diameter Charging Application -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_a60.ddf b/src/ChargingApplications_3GPP_TS32299_a60.ddf index 9953ae6..5d0d997 100644 --- a/src/ChargingApplications_3GPP_TS32299_a60.ddf +++ b/src/ChargingApplications_3GPP_TS32299_a60.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_a60.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V10.6.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_be0.ddf b/src/ChargingApplications_3GPP_TS32299_be0.ddf index 3994569..d37256d 100644 --- a/src/ChargingApplications_3GPP_TS32299_be0.ddf +++ b/src/ChargingApplications_3GPP_TS32299_be0.ddf @@ -11,7 +11,7 @@ // // File: ChargingApplications_3GPP_TS32299_be0.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 11.15.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_c60.ddf b/src/ChargingApplications_3GPP_TS32299_c60.ddf index bbb7b70..4221e4d 100644 --- a/src/ChargingApplications_3GPP_TS32299_c60.ddf +++ b/src/ChargingApplications_3GPP_TS32299_c60.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_a60.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V12.6.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_d40.ddf b/src/ChargingApplications_3GPP_TS32299_d40.ddf index 2207a80..c1df493 100644 --- a/src/ChargingApplications_3GPP_TS32299_d40.ddf +++ b/src/ChargingApplications_3GPP_TS32299_d40.ddf @@ -11,7 +11,7 @@ // // File: ChargingApplications_3GPP_TS32299_a60.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V13.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_d70.ddf b/src/ChargingApplications_3GPP_TS32299_d70.ddf new file mode 100644 index 0000000..ee2fcf3 --- /dev/null +++ b/src/ChargingApplications_3GPP_TS32299_d70.ddf @@ -0,0 +1,2457 @@ +/****************************************************************************** +* Copyright (c) 2004, 2016 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation and initial documentation +* Gabor Szalai +******************************************************************************/ +// +// File: ChargingApplications_3GPP_TS32299_a60.ddf +// Description: DDF for Diameter Charging Application 3GPP TS 32.299 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: DCA +// APPLICATION-REVISION: V13_7_0 + +// AVP implementations according to: +// 3GPP TS 32.299 V13.7.0 - Telecommunication management; Charging management; +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// IETF RFC 3588 - Diameter Base Protocol +// RFC 4006 - Diameter Credit Control Application +// +// Notes: +// + + +// 3GPP TS 32.299 V13.7.0 +type enumerated Command_Code +{ + Accounting (271), + Re_Auth (258) +} + + +// 3GPP TS 32.299 V13.7.0 +// AVP: Access-Network-Information (1263) 3GPP (10415) +// 7.2.1 +type AVP_OctetString Access_Network_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Access-Transfer-Information (2709) 3GPP (10415) +// 7.2.1A +type AVP_Grouped Access_Transfer_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Access-Transfer-Type (2710) 3GPP (10415) +// 7.2.1.B +type enumerated Access_Transfer_Type +{ + PS_to_CS_Transfer (0), + CS_to_PS_Transfer (1), + PS_to_PS_Transfer (2), + CS_to_CS_Transfer (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Account-Expiration (2309) 3GPP (10415) +// 7.2.2 +type AVP_Time Account_Expiration; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Accumulated-Cost (2052) 3GPP (10415) +// 7.2.3 +type AVP_Grouped Accumulated_Cost; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Adaptations (1217) 3GPP (10415) +// 7.2.4 +type enumerated Adaptations +{ + YES (0), + NO (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Additional-Content-Information (1207) 3GPP (10415) +// 7.2.5 +type AVP_Grouped Additional_Content_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Additional-Exception-Reports (3936) 3GPP (10415) +// 7.2.5A +type enumerated Additional_Exception_Reports +{ + NOT_ALLOWED (0), + ALLOWED (1) +} + + +// 3GPP TS 32.299 V13.7.0 +// AVP: Additional-Type-Information (1205) 3GPP (10415) +// 7.2.6 +type AVP_UTF8String Additional_Type_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Address-Data (897) 3GPP (10415) +// 7.2.7 +type AVP_UTF8String Address_Data; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Address-Domain (898) 3GPP (10415) +// 7.2.8 +type AVP_Grouped Address_Domain; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Address-Type (899) 3GPP (10415) +// 7.2.9 +type enumerated Address_Type +{ + E_MAIL_ADDRESS (0), + MSISDN (1), + IPV4_ADDRESS (2), + IPV6_ADDRESS (3), + NUMERIC_SHORTCODE (4), + ALPHANUMERIC_SHORTCODE (5), + OTHER (6), + IMSI (7) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Addressee-Type (1208) 3GPP (10415) +// 7.2.10 +type enumerated Addressee_Type +{ + TO (0), + CC (1), + BCC (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: AF-Correlation-Information (1276) 3GPP (10415) +// 7.2.11 +type AVP_Grouped AF_Correlation_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Alternate-Charged-Party-Address (1280) 3GPP (10415) +// 7.2.12 +type AVP_UTF8String Alternate_Charged_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Announcement-Identifier (3905) 3GPP (10415) +// 7.2.12aA +type AVP_Unsigned32 Announcement_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Announcement-Information (3904) 3GPP (10415) +// 7.2.12aB +type AVP_Grouped Announcement_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Announcement-Order (3906) 3GPP (10415) +// 7.2.12aC +type AVP_Unsigned32 Announcement_Order; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Announcing-UE-HPLMN-Identifier (3426) 3GPP (10415) +// 7.2.12A +type AVP_UTF8String Announcing_UE_HPLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Announcing-UE-VPLMN-Identifier (3427) 3GPP (10415) +// 7.2.12B +type AVP_UTF8String Announcing_UE_VPLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Cost-Information (2053) 3GPP (10415) +// 7.2.13 +type AVP_Grouped AoC_Cost_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Format (2310) 3GPP (10415) +// 7.2.14 +type enumerated AoC_Format +{ + MONETARY (0), + NON_MONETARY (1), + CAI (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Information (2054) 3GPP (10415) +// 7.2.15 +type AVP_Grouped AoC_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Request-Type (2055) 3GPP (10415) +// 7.2.16 +type enumerated AoC_Request_Type +{ + AoC_NOT_REQUESTED (0), + AoC_FULL (1), + AoC_COST_ONLY (2), + AoC_TARIFF_ONLY (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Service (2311) 3GPP (10415) +// 7.2.17 +type AVP_Grouped AoC_Service; + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Service-Obligatory-Type (2312) 3GPP (10415) +// 7.2.18 +type enumerated AoC_Service_Obligatory_Type +{ + NON_BINDING (0), + BINDING (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Service-Type (2313) 3GPP (10415) +// 7.2.19 +type enumerated AoC_Service_Type +{ + NONE (0), + AOC_S (1), + AOC_D (2), + AOC_E (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: AoC-Subscription-Information (2314) 3GPP (10415) +// 7.2.20 +type AVP_Grouped AoC_Subscription_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: APN-Rate-Control (3933) 3GPP (10415) +// 7.2.20A +type AVP_Grouped APN_Rate_Control; + +// 3GPP TS 32.299 V13.7.0 +// AVP: APN-Rate-Control-Downlink (3934) 3GPP (10415) +// 7.2.20B +type AVP_Grouped APN_Rate_Control_Downlink; + +// 3GPP TS 32.299 V13.7.0 +// AVP: APN-Rate-Control-Uplink (3935) 3GPP (10415) +// 7.2.20B +type AVP_Grouped APN_Rate_Control_Uplink; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Applic-ID (1218) 3GPP (10415) +// 7.2.21 +type AVP_UTF8String Applic_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Application-provided-Called-Party-Address (837) 3GPP (10415) +// 7.2.22 +type AVP_UTF8String Application_provided_Called_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Application-Server (836) 3GPP (10415) +// 7.2.23 +type AVP_UTF8String Application_Server; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Application-Server-Information (850) 3GPP (10415) +// 7.2.24 +type AVP_Grouped Application_Server_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Application-Specific-Data (3458) 3GPP (10415) +// 7.2.24A +type AVP_OctetString Application_Specific_Data; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Associated-Party-Address (2035) 3GPP (10415) +// 7.2.25 +type AVP_UTF8String Associated_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Associated-URI (856) 3GPP (10415) +// 7.2.26 +type AVP_UTF8String Associated_URI; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Authorised-QoS (849) 3GPP (10415) +// 7.2.27 +type AVP_UTF8String Authorised_QoS; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Aux-Applic-Info (1219) 3GPP (10415) +// 7.2.28 +type AVP_UTF8String Aux_Applic_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Base-Time-Interval (1265) 3GPP (10415) +// 7.2.29 +type AVP_Unsigned32 Base_Time_Interval; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Basic-Service-Code (3411) 3GPP (10415) +// 7.2.29A +type AVP_Grouped Basic_Service_Code; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Bearer-Capability (3412) 3GPP (10415) +// 7.2.29B +type AVP_OctetString Bearer_Capability; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Bearer-Service (854) 3GPP (10415) +// 7.2.30 +type AVP_OctetString Bearer_Service; + +// 3GPP TS 32.299 V13.7.0 +// AVP: BSSID (2716) 3GPP (10415) +// 7.2.30A +type AVP_UTF8String BSSID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Called-Asserted-Identity (1250) 3GPP (10415) +// 7.2.31 +type AVP_UTF8String Called_Asserted_Identity; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Called-Identity (3916) 3GPP (10415) +// 7.2.31A +type AVP_UTF8String Called_Identity; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Called-Identity-Change (3917) 3GPP (10415) +// 7.2.31B +type AVP_Grouped Called_Identity_Change; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Called-Party-Address (832) 3GPP (10415) +// 7.2.32 +type AVP_UTF8String Called_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Calling-Party-Address (831) 3GPP (10415) +// 7.2.33 +type AVP_UTF8String Calling_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Carrier-Select-Routing-Information (2023) 3GPP (10415) +// 7.2.34 +type AVP_UTF8String Carrier_Select_Routing_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Cause-Code (861) 3GPP (10415) +// 7.2.35 +type AVP_Integer32 Cause_Code; + +// 3GPP TS 32.299 V13.7.0 +// AVP: CG-Address (846) 3GPP (10415) +// 7.2.36 +type AVP_Address CG_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Change-Condition (2037) 3GPP (10415) +// 7.2.37 +type AVP_Integer32 Change_Condition; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Change-Time (2038) 3GPP (10415) +// 7.2.38 +type AVP_Time Change_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Charge-Reason-Code (2118) 3GPP (10415) +// 7.2.38A +type enumerated Charge_Reason_Code +{ + UNKNOWN (0), + USAGE (1), + COMMUNICATION_ATTEMPT_CHARGE (2), + SETUP_CHARGE (3), + ADD_ON_CHARGE (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Charged-Party (857) 3GPP (10415) +// 7.2.39 +type AVP_UTF8String Charged_Party; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Charging-Characteristics-Selection-Mode (2066) 3GPP (10415) +// 7.2.39A +type enumerated Charging_Characteristics_Selection_Mode +{ + SERVING_NODE_SUPPLIED (0), + SUBSCRIPTION_SPECIFIC (1), + APN_SPECIFIC (2), + HOME_DEFAULT (3), + ROAMING_DEFAULT (4), + VISITING_DEFAULT (5) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Class-Identifier (1214) 3GPP (10415) +// 7.2.40 +type enumerated Class_Identifier +{ + PERSONAL (0), + ADVERTISMENT (1), + INFORMATIONAL (2), + AUTO (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Client-Address (2018) 3GPP (10415) +// 7.2.41 +type AVP_Address Client_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: CN-Operator-Selection-Entity (3421) 3GPP (10415) +// 7.2.41A +type enumerated CN_Operator_Selection_Entity +{ + SN_selected_by_UE (0), + SN_selected_by_network (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Content-Class (1220) 3GPP (10415) +// 7.2.42 +type enumerated Content_Class +{ + TEXT (0), + IMAGE_BASIC (1), + IMAGE_RICH (2), + VIDEO_BASIC (3), + VIDEO_RICH (4), + MEGAPIXEL (5), + CONTENT_BASIC (6), + CONTENT_RICH (7) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Content-Disposition (828) 3GPP (10415) +// 7.2.43 +type AVP_UTF8String Content_Disposition; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Content-Length (827) 3GPP (10415) +// 7.2.44 +type AVP_Unsigned32 Content_Length; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Content-Size (1206) 3GPP (10415) +// 7.2.45 +type AVP_Unsigned32 Content_Size; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Content-Type (826) 3GPP (10415) +// 7.2.46 +type AVP_UTF8String Content_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Coverage-Status (3428) 3GPP (10415) +// 7.2.46aA +type enumerated Coverage_Status +{ + OUT_OF_COVERAGE (0), + IN_COVERAGE (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Coverage-Info (3459) 3GPP (10415) +// 7.2.46aaA +type AVP_Grouped Coverage_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: CP-CIoT-EPS-Optimisation-Indicator (3930) 3GPP (10415) +// 7.2.46abA +type enumerated CP_CIoT_EPS_Optimisation_Indicator +{ + NOT_APPLY (0), + APPLY (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: CPDT-Information (3927) 3GPP (10415) +// 7.2.46acA +type AVP_Grouped CPDT_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: CSG-Access-Mode (2317) 3GPP (10415) +// 7.2.46A +type enumerated CSG_Access_Mode +{ + CLOSED_MODE (0), + HYBRID_MODE (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: CSG-Membership-Indication (2318) 3GPP (10415) +// 7.2.46B +type enumerated CSG_Membership_Indication +{ + NOT_CSG_MEMBER (0), + CSG_MEMBER (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Current-Tariff (2056) 3GPP (10415) +// 7.2.47 +type AVP_Grouped Current_Tariff; + +// 3GPP TS 32.299 V13.7.0 +// AVP: CUG-Information (2304) 3GPP (10415) +// 7.2.48 +type AVP_OctetString CUG_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Data-Coding-Scheme (2001) 3GPP (10415) +// 7.2.49 +type AVP_Integer32 Data_Coding_Scheme; + +// 3GPP TS 32.299 V13.7.0 +// AVP: DCD-Information (2115) 3GPP (10415) +// 7.2.50 +type AVP_Grouped DCD_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Deferred-Location-Event-Type (1230) 3GPP (10415) +// 7.2.51 +type AVP_UTF8String Deferred_Location_Event_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Delivery-Report-Requested (1216) 3GPP (10415) +// 7.2.52 +type enumerated Delivery_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Destination-Interface (2002) 3GPP (10415) +// 7.2.53 +type AVP_Grouped Destination_Interface; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Diagnostics (2039) 3GPP (10415) +// 7.2.54 +type AVP_Integer32 Diagnostics; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Domain-Name (1200) 3GPP (10415) +// 7.2.55 +type AVP_UTF8String Domain_Name; + +// 3GPP TS 32.299 V13.7.0 +// AVP: DRM-Content (1221) 3GPP (10415) +// 7.2.56 +type enumerated DRM_Content +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Dynamic-Address-Flag (2051) 3GPP (10415) +// 7.2.57 +type enumerated Dynamic_Address_Flag +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Dynamic-Address-Flag-Extension (2068) 3GPP (10415) +// 7.2.57A +type enumerated Dynamic_Address_Flag_Extension +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Early-Media-Description (1272) 3GPP (10415) +// 7.2.58 +type AVP_Grouped Early_Media_Description; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Enhanced-Diagnostics (3901) 3GPP (10415) +// 7.2.58A +type AVP_Grouped Enhanced_Diagnostics; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Envelope (1266) 3GPP (10415) +// 7.2.59 +type AVP_Grouped Envelope; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Envelope-End-Time (1267) 3GPP (10415) +// 7.2.60 +type AVP_Time Envelope_End_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Envelope-Reporting (1268) 3GPP (10415) +// 7.2.61 +type enumerated Envelope_Reporting +{ + DO_NOT_REPORT_ENVELOPES (0), + REPORT_ENVELOPES (1), + REPORT_ENVELOPES_WITH_VOLUME (2), + REPORT_ENVELOPES_WITH_EVENTS (3), + REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Envelope-Start-Time (1269) 3GPP (10415) +// 7.2.62 +type AVP_Time Envelope_Start_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ePDG-Address (3425) 3GPP (10415) +// 7.2.62A +type AVP_Address ePDG_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Event (825) 3GPP (10415) +// 7.2.63 +type AVP_UTF8String Event; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Event-Charging-TimeStamp (1258) 3GPP (10415) +// 7.2.64 +type AVP_Time Event_Charging_TimeStamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Event-Type (823) 3GPP (10415) +// 7.2.65 +type AVP_Grouped Event_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Expires (888) 3GPP (10415) +// 7.2.66 +type AVP_Unsigned32 Expires; + +// 3GPP TS 32.299 V13.7.0 +// AVP: File-Repair-Supported (1224) 3GPP (10415) +// 7.2.67 +type enumerated File_Repair_Supported +{ + SUPPORTED (1), + NOT_SUPPORTED (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: From-Address (2708) 3GPP (10415) +// 7.2.67A +type AVP_UTF8String From_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Forwarding-Pending (3415) 3GPP (10415) +// 7.2.67aA +type enumerated Forwarding_Pending +{ + Forwarding_not_Pending (0), + Forwarding_Pending (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: GGSN-Address (847) 3GPP (10415) +// 7.2.68 +type AVP_Address GGSN_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IM-Information (2110) 3GPP (10415) +// 7.2.69 +type AVP_Grouped IM_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Incremental-Cost (2062) 3GPP (10415) +// 7.2.70 +type AVP_Grouped Incremental_Cost; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Instance-Id (3402) 3GPP (10415) +// 7.2.70A +type AVP_UTF8String Instance_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Interface-Id (2003) 3GPP (10415) +// 7.2.71 +type AVP_UTF8String Interface_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Interface-Port (2004) 3GPP (10415) +// 7.2.72 +type AVP_UTF8String Interface_Port; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Interface-Text (2005) 3GPP (10415) +// 7.2.73 +type AVP_UTF8String Interface_Text; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Interface-Type (2006) 3GPP (10415) +// 7.2.74 +type enumerated Interface_Type +{ + UNKNOWN (0), + MOBILE_ORIGINATING (1), + MOBILE_TERMINATING (2), + APPLICATION_ORIGINATING (3), + APPLICATION_TERMINATION (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Application-Reference-Identifier (2601) 3GPP (10415) +// 7.2.74A +type AVP_UTF8String IMS_Application_Reference_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Inter-UE-Transfer (3902) 3GPP (10415) +// 7.2.74aA +type enumerated Inter_UE_Transfer +{ + INTRA_UE_TRANSFER (0), + INTER_UE_TRANSFER (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Charging-Identifier (841) 3GPP (10415) +// 7.2.75 +type AVP_UTF8String IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Communication-Service-Identifier (1281) 3GPP (10415) +// 7.2.76 +type AVP_UTF8String IMS_Communication_Service_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Emergency-Indicator (2322) 3GPP (10415) +// 7.2.76A +type enumerated IMS_Emergency_Indicator +{ + Non_Emergency (0), + Emergency (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Information (876) 3GPP (10415) +// 7.2.77 +type AVP_Grouped IMS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMS-Visited-Network-Identifier (2713) 3GPP (10415) +// 7.2.77A +type AVP_UTF8String IMS_Visited_Network_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IMSI-Unauthenticated-Flag (2308) 3GPP (10415) +// 7.2.78 +type enumerated IMSI_Unauthenticated_Flag +{ + AUTHENTICATED (0), + UNAUTHENTICATED (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Incoming-Trunk-Group-Id (852) 3GPP (10415) +// 7.2.79 +type AVP_UTF8String Incoming_Trunk_Group_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Initial-IMS-Charging-Identifier (2321) 3GPP (10415) +// 7.2.79A +type AVP_UTF8String Initial_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Inter-Operator-Identifier (838) 3GPP (10415) +// 7.2.80 +type AVP_Grouped Inter_Operator_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: IP-Realm-Default-Indication (2603) 3GPP (10415) +// 7.2.80A +type enumerated IP_Realm_Default_Indication +{ + DEFAULT_IP_REALM_NOT_USED (0), + DEFAULT_IP_REALM_USED (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ISUP-Cause (3416) 3GPP (10415) +// 7.2.80B +type AVP_Grouped ISUP_Cause; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ISUP-Cause-Diagnostics (3422) 3GPP (10415) +// 7.2.80C +type AVP_OctetString ISUP_Cause_Diagnostics; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ISUP-Cause-Location (3423) 3GPP (10415) +// 7.2.80D +type AVP_Unsigned32 ISUP_Cause_Location; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ISUP-Cause-Value (3424) 3GPP (10415) +// 7.2.80E +type AVP_Unsigned32 ISUP_Cause_Value; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ISUP-Location-Number (3414) 3GPP (10415) +// 7.2.80F +type AVP_OctetString ISUP_Location_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Language (3914) 3GPP (10415) +// 7.2.80Fa +type AVP_UTF8String Language; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Layer-2-Group-ID (3429) 3GPP (10415) +// 7.2.80G +type AVP_OctetString Layer_2_Group_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-APN (1231) 3GPP (10415) +// 7.2.81 +type AVP_UTF8String LCS_APN; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Client-Dialed-By-MS (1233) 3GPP (10415) +// 7.2.82 +type AVP_UTF8String LCS_Client_Dialed_By_MS; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Client-External-ID (1234) 3GPP (10415) +// 7.2.83 +type AVP_UTF8String LCS_Client_External_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Client-Id (1232) 3GPP (10415) +// 7.2.84 +type AVP_Grouped LCS_Client_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Client-Name (1235) 3GPP (10415) +// 7.2.85 +type AVP_Grouped LCS_Client_Name; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Client-Type (1241) 3GPP (10415) +// 7.2.86 +type enumerated LCS_Client_Type +{ + EMERGENCY_SERVICES (0), + VALUE_ADDED_SERVICES (1), + PLMN_OPERATOR_SERVICES (2), + LAWFUL_INTERCEPT_SERVICES (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Data-Coding-Scheme (1236) 3GPP (10415) +// 7.2.87 +type AVP_UTF8String LCS_Data_Coding_Scheme; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Format-Indicator (1237) 3GPP (10415) +// 7.2.88 +type enumerated LCS_Format_Indicator +{ + LOGICAL_NAME (0), + EMAIL_ADDRESS (1), + MSISDN (2), + URL (3), + SIP_URL (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Information (878) 3GPP (10415) +// 7.2.89 +type AVP_Grouped LCS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Name-String (1238) 3GPP (10415) +// 7.2.90 +type AVP_UTF8String LCS_Name_String; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Requestor-Id (1239) 3GPP (10415) +// 7.2.91 +type AVP_Grouped LCS_Requestor_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: LCS-Requestor-Id-String (1240) 3GPP (10415) +// 7.2.92 +type AVP_UTF8String LCS_Requestor_Id_String; + + +// 3GPP TS 32.299 V13.7.0 +// AVP: Local-GW-Inserted-Indication (2604) 3GPP (10415) +// 7.2.92A +type enumerated Local_GW_Inserted_Indication +{ + LOCAL_GW_NOT_INSERTED (0), + LOCAL_GW_INSERTED (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Local-Sequence-Number (2063) 3GPP (10415) +// 7.2.93 +type AVP_Unsigned32 Local_Sequence_Number; + + +// 3GPP TS 32.299 V13.7.0 +// AVP: Location-Estimate (1242) 3GPP (10415) +// 7.2.94 +type AVP_OctetString Location_Estimate; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Location-Estimate-Type (1243) 3GPP (10415) +// 7.2.95 +type enumerated Location_Estimate_Type +{ + CURRENT_LOCATION (0), + CURRENT_LAST_KNOWN_LOCATION (1), + INITIAL_LOCATION (2), + ACTIVATE_DEFERRED_LOCATION (3), + CANCEL_DEFERRED_LOCATION (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Location-Info (3460) 3GPP (10415) +// 7.2.95A +type AVP_Grouped Location_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Location-Type (1244) 3GPP (10415) +// 7.2.96 +type AVP_Grouped Location_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Low-Balance-Indication (2020) 3GPP (10415) +// 7.2.97 +type enumerated Low_Balance_Indication +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Low-Priority-Indicator (2602) 3GPP (10415) +// 7.2.97A +type enumerated Low_Priority_Indicator +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: MBMS-Charged-Party (2323) 3GPP (10415) +// 7.2.97B +type enumerated MBMS_Charged_Party +{ + CONTENT_PROVIDER (0), + SUBSCRIBER (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: MBMS-GW-Address (2307) 3GPP (10415) +// 7.2.98 +type AVP_Address MBMS_GW_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MBMS-Information (880) 3GPP (10415) +// 7.2.99 +type AVP_Grouped MBMS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MBMS-User-Service-Type (1225) 3GPP (10415) +// 7.2.100 +type enumerated MBMS_User_Service_Type +{ + DOWNLOAD (1), + STREAMING (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Media-Initiator-Flag (882) 3GPP (10415) +// 7.2.101 +type enumerated Media_Initiator_Flag +{ + CALLED_PARTY (0), + CALLING_PARTY (1), + UNKNOWN (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Media-Initiator-Party (1288) 3GPP (10415) +// 7.2.102 +type AVP_UTF8String Media_Initiator_Party; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Message-Body (889) 3GPP (10415) +// 7.2.103 +type AVP_Grouped Message_Body; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Message-Class (1213) 3GPP (10415) +// 7.2.104 +type AVP_Grouped Message_Class; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Message-ID (1210) 3GPP (10415) +// 7.2.105 +type AVP_UTF8String Message_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Message-Size (1212) 3GPP (10415) +// 7.2.106 +type AVP_Unsigned32 Message_Size; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Message-Type (1211) 3GPP (10415) +// 7.2.107 +type enumerated Message_Type +{ + M_SEMD_REQ (1), + M_SEMD_CONF (2), + M_NOTIFICATION_IND (3), + M_NOTIFYRESP_IND (4), + M_RETRIEVE_CONF (5), + M_ACKNOWLEDGE_IND (6), + M_DELIVERY_IND (7), + M_READ_REC_IND (8), + M_READ_ORIG_IND (9), + M_FORWARD_REQ (10), + M_FORWARD_CONF (11), + M_MBOX_STORE_CONF (12), + M_MBOX_VIEW_CONF (13), + M_MBOX_UPLOAD_CONF (14), + M_MBOX_DELETE_CONF (15) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: MM-Content-Type (1203) 3GPP (10415) +// 7.2.108 +type AVP_Grouped MM_Content_Type; + + +// 3GPP TS 32.299 V13.7.0 +// AVP: MMBox-Storage-Requested (1248) 3GPP (10415) +// 7.2.109 +type enumerated MMBox_Storage_Requested +{ + NO (0), + YES (1) +} +// 3GPP TS 32.299 V13.7.0 +// AVP: MMS-Information (877) 3GPP (10415) +// 7.2.110 +type AVP_Grouped MMS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MMTel-Information (2030) 3GPP (10415) +// 7.2.111 +type AVP_Grouped MMTel_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MMTel-SService-Type (2031) 3GPP (10415) +// 7.2.111A +type AVP_Unsigned32 MMTel_SService_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitored-PLMN-Identifier (3430) 3GPP (10415) +// 7.2.111Aa +type AVP_UTF8String Monitored_PLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-Event-Configuration-Activity (3919) 3GPP (10415) +// 7.2.111AaA +type enumerated Monitoring_Event_Configuration_Activity +{ + CREATE (0), + TRANSFER (1), + UPDATE (2), + DELETE (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-Event-Funtionality (3922) 3GPP (10415) +// 7.2.111AaB +type enumerated Monitoring_Event_Funtionality +{ + CONFIGURATION (0), + REPORTING (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-Event-Information (3921) 3GPP (10415) +// 7.2.111AaC +type AVP_Grouped Monitoring_Event_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-Event-Report-Data (3920) 3GPP (10415) +// 7.2.111AaD +type AVP_Grouped Monitoring_Event_Report_Data; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-Event-Report-Number (3923) 3GPP (10415) +// 7.2.111AaE +type AVP_Unsigned32 Monitoring_Event_Report_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-UE-HPLMN-Identifier (3431) 3GPP (10415) +// 7.2.111Ab +type AVP_UTF8String Monitoring_UE_HPLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-UE-Identifier (3432) 3GPP (10415) +// 7.2.111Ac +type AVP_UTF8String Monitoring_UE_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Monitoring-UE-VPLMN-Identifier (3433) 3GPP (10415) +// 7.2.111Ad +type AVP_UTF8String Monitoring_UE_VPLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MSC-Address (3417) 3GPP (10415) +// 7.2.111B +type AVP_OctetString MSC_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: MTC-IWF-Address (3406) 3GPP (10415) +// 7.2.111C +type AVP_Address MTC_IWF_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Neighbour-Node-Address (2705) 3GPP (10415) +// 7.2.111D +type AVP_Address Neighbour_Node_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Network-Call-Reference-Number (3418) 3GPP (10415) +// 7.2.111E +type AVP_OctetString Network_Call_Reference_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Next-Tariff (2057) 3GPP (10415) +// 7.2.112 +type AVP_Grouped Next_Tariff; + +// 3GPP TS 32.299 V13.7.0 +// AVP: NNI-Information (2703) 3GPP (10415) +// 7.2.112A +type AVP_Grouped NNI_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: NIDD-Submission (3928) 3GPP (10415) +// 7.2.112aA +type AVP_Grouped NIDD_Submission; + +// 3GPP TS 32.299 V13.7.0 +// AVP: NNI-Type (2704) 3GPP (10415) +// 7.2.112B +type enumerated NNI_Type +{ + Non_Roaming (0), + Roaming_Without_Loopback (1), + Roaming_With_Loopback (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Node-Functionality (862) 3GPP (10415) +// 7.2.113 +type enumerated Node_Functionality +{ + S_CSCF (0), + P_CSCF (1), + I_CSCF (2), + MRFC (3), + MGCF (4), + BGCF (5), + AS (6), + IBCF (7), + S_GW (8), + P_GW (9), + HSGW (10), + E_CSCF (11), + MME (12), + TRF (13), + TF (14), + ATCF (15), + Proxy_Function (16), + ePDG (17), + TDF (18), + TWAG (19), + SCEF (20), + IWK_SCEF (21) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Node-Id (2064) 3GPP (10415) +// 7.2.114 +type AVP_UTF8String Node_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-Of-Diversions (2034) 3GPP (10415) +// 7.2.115 +type AVP_Unsigned32 Number_Of_Diversions; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-of-Messages-Sent (2019) 3GPP (10415) +// 7.2.116 +type AVP_Unsigned32 Number_of_Messages_Sent; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-Of-Participants (885) 3GPP (10415) +// 7.2.117 +type AVP_Unsigned32 Number_Of_Participants; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-Of-Received-Talk-Bursts (1282) 3GPP (10415) +// 7.2.118 +type AVP_Unsigned32 Number_Of_Received_Talk_Bursts; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-Of-Talk-Bursts (1283) 3GPP (10415) +// 7.2.119 +type AVP_Unsigned32 Number_Of_Talk_Bursts; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Number-Portability-Routing-Information (2024) 3GPP (10415) +// 7.2.120 +type AVP_UTF8String Number_Portability_Routing_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Offline-Charging (1278) 3GPP (10415) +// 7.2.121 +type AVP_Grouped Offline_Charging; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Online-Charging-Flag (2303) 3GPP (10415) +// 7.2.122 +type enumerated Online_Charging_Flag +{ + ECF_ADDRESS_NOT_PROVIDED (0), + ECF_ADDRESS_PROVIDED (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originating-IOI (839) 3GPP (10415) +// 7.2.123 +type AVP_UTF8String Originating_IOI; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originator (864) 3GPP (10415) +// 7.2.124 +type enumerated Originator +{ + CALLING_PARTY (0), + CALLED_PARTY (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originator-Address (886) 3GPP (10415) +// 7.2.125 +type AVP_Grouped Originator_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originator-Interface (2009) 3GPP (10415) +// 7.2.126 +type AVP_Grouped Originator_Interface; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originator-Received-Address (2027) 3GPP (10415) +// 7.2.127 +type AVP_Grouped Originator_Received_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Originating-SCCP-Address (2008) 3GPP (10415) +// 7.2.128 +type AVP_Address Originating_SCCP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Outgoing-Session-Id (2320) 3GPP (10415) +// 7.2.128A +type AVP_UTF8String Outgoing_Session_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Outgoing-Trunk-Group-Id (853) 3GPP (10415) +// 7.2.129 +type AVP_UTF8String Outgoing_Trunk_Group_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Participants-Involved (887) 3GPP (10415) +// 7.2.130 +type AVP_UTF8String Participants_Involved; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Participant-Group (1260) 3GPP (10415) +// 7.2.131 +type AVP_Grouped Participant_Group; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Participant-Access-Priority (1259) 3GPP (10415) +// 7.2.132 +type enumerated Participant_Access_Priority +{ + PRE_EMPTIVE_PRIORITY (1), + HIGH_PRIORITY (2), + NORMAL_PRIORITY (3), + LOW_PRIORITY (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Participant-Action-Type (2049) 3GPP (10415) +// 7.2.133 +type enumerated Participant_Action_Type +{ + CREATE_CONF (0), + JOIN_CONF (1), + INVITE_INTO_CONF (2), + QUIT_CONF (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PC3-Control-Protocol-Cause (3434) 3GPP (10415) +// 7.2.135A +type AVP_Integer32 PC3_Control_Protocol_Cause; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PC3-EPC-Control-Protocol-Cause (3435) 3GPP (10415) +// 7.2.135B +type AVP_Integer32 PC3_EPC_Control_Protocol_Cause; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PDN-Connection-Charging-ID (2050) 3GPP (10415) +// 7.2.136 +type AVP_Unsigned32 PDN_Connection_Charging_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PDP-Address (1227) 3GPP (10415) +// 7.2.137 +type AVP_Address PDP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PDP-Address-Prefix-Length (2606) 3GPP (10415) +// 7.2.137A +type AVP_Unsigned32 PDP_Address_Prefix_Length; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PDP-Context-Type (1247) 3GPP (10415) +// 7.2.138 +type enumerated PDP_Context_Type +{ + PRIMARY (0), + SECONDARY (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Play-Alternative (3913) 3GPP (10415) +// 7.2.138A +type enumerated Play_Alternative +{ + SERVED_PARTY (0), + REMOTE_PARTY (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Change-Conditions (1261) 3GPP (10415) +// 7.2.139 +type enumerated PoC_Change_Conditions +{ + SERVICE_CHANGE (0), + VOLUME_LIMIT (1), + TIME_LIMIT (2), + NUMBER_OF_TALK_BURST_LIMIT (3), + NUMBER_OF_ACTIVE_PARTICIPANTS (4), + TARIFF_TIME (5) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Change-Time (1262) 3GPP (10415) +// 7.2.140 +type AVP_Time PoC_Change_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Controlling-Address (858) 3GPP (10415) +// 7.2.141 +type AVP_UTF8String PoC_Controlling_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Event-Type (2025) 3GPP (10415) +// 7.2.142 +type enumerated PoC_Event_Type +{ + NORMAL (0), + INSTANT_PERSONAL_ALERT_EVENT (1), + POC_GROUP_ADVERTISEMENT_EVENT (2), + EARLY_SESSION_SETTING_UP_EVENT (3), + POC_TALK_BURST (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Group-Name (859) 3GPP (10415) +// 7.2.143 +type AVP_UTF8String PoC_Group_Name; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Information (879) 3GPP (10415) +// 7.2.144 +type AVP_Grouped PoC_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Server-Role (883) 3GPP (10415) +// 7.2.145 +type enumerated PoC_Server_Role +{ + PARTICIPATING_POC_SERVER (0), + CONTROLLING_POC_SERVER (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Session-Id (1229) 3GPP (10415) +// 7.2.146 +type AVP_UTF8String PoC_Session_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Session-Initiation-Type (1277) 3GPP (10415) +// 7.2.147 +type enumerated PoC_Session_Initiation_Type +{ + PRE_ESTABLISHED (0), + ON_DEMAND (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-Session-Type (884) 3GPP (10415) +// 7.2.148 +type enumerated PoC_Session_Type +{ + ONE_TO_ONE_POC_SESSION (0), + CHAT_POC_GROUP_SESSION (1), + PRE_ARRANGED_POC_GROUP_SESSION (2), + AD_HOC_POC_GROUP_SESSION (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-User-Role (1252) 3GPP (10415) +// 7.2.149 +type AVP_Grouped PoC_User_Role; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-User-Role-IDs (1253) 3GPP (10415) +// 7.2.150 +type AVP_UTF8String PoC_User_Role_IDs; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PoC-User-Role-info-Units (1254) 3GPP (10415) +// 7.2.151 +type enumerated PoC_User_Role_info_Units +{ + MODERATOR (1), + DISPATCHER (2), + SESSION_OWNER (3), + SESSION_PARTICIPANT (4) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Positioning-Data (1245) 3GPP (10415) +// 7.2.152 +type AVP_UTF8String Positioning_Data; + + +// 3GPP TS 32.299 V13.7.0 +// AVP: Preferred-AoC-Currency (2315) 3GPP (10415) +// 7.2.153 +type AVP_Unsigned32 Preferred_AoC_Currency; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Priority (1209) 3GPP (10415) +// 7.2.154 +type enumerated Priority +{ + LOW (0), + NORMAL (1), + HIGH (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Privacy-Indicator (3915) 3GPP (10415) +// 7.2.154aA +type enumerated Privacy_Indicator +{ + NOT_PRIVATE (0), + PRIVATE (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-3rd-Party-Application-ID (3440) 3GPP (10415) +// 7.2.154A +type AVP_UTF8String ProSe_3rd_Party_Application_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Direct-Communication-Reception-Data-Container (3461) 3GPP (10415) +// 7.2.154Aa +type AVP_Grouped ProSe_Direct_Communication_Reception_Data_Container; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Direct-Communication-Transmission-Data-Container (3441) 3GPP (10415) +// 7.2.154B +type AVP_Grouped ProSe_Direct_Communication_Transmission_Data_Container; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Direct-Discovery-Model (3442) 3GPP (10415) +// 7.2.154C +type enumerated ProSe_Direct_Discovery_Model +{ + MODEL_A (0), + MODEL_B (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Event-Type (3443) 3GPP (10415) +// 7.2.154D +type enumerated ProSe_Event_Type +{ + ANNOUNCING (0), + MONITORING (1), + MATCH_REPORT (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Function-IP-Address (3444) 3GPP (10415) +// 7.2.154E +type AVP_Address ProSe_Function_IP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Function-PLMN-Identifier (3457) 3GPP (10415) +// 7.2.154F +type AVP_UTF8String ProSe_Function_PLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Functionality (3445) 3GPP (10415) +// 7.2.154G +type enumerated ProSe_Functionality +{ + DIRECT_DISCOVERY (0), + EPC_LEVEL_DISCOVERY (1), + DIRECT_COMMUNICATION (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Group-IP-Multicast-Address (3446) 3GPP (10415) +// 7.2.154H +type AVP_Address ProSe_Group_IP_Multicast_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Information (3447) 3GPP (10415) +// 7.2.154I +type AVP_Grouped ProSe_Information; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Range-Class (3448) 3GPP (10415) +// 7.2.154J +type AVP_Unsigned32 ProSe_Range_Class; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Reason-For-Cancellation (3449) 3GPP (10415) +// 7.2.154K +type enumerated ProSe_Reason_For_Cancellation +{ + PROXIMITY_ALERT_SENT (0), + TIME_EXPIRED_WITH_NO_RENEWAL (1), + REQUESTOR_CANCELLATION (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Request-Timestamp (3450) 3GPP (10415) +// 7.2.154L +type AVP_Time ProSe_Request_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Role-Of-UE (3451) 3GPP (10415) +// 7.2.154M +type enumerated ProSe_Role_Of_UE +{ + ANNOUNCING_UE (0), + MONITORING_UE (1), + REQUESTOR_UE (2), + REQUESTED_UE (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-Source-IP-Address (3452) 3GPP (10415) +// 7.2.154N +type AVP_Address ProSe_Source_IP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: ProSe-UE-ID (3453) 3GPP (10415) +// 7.2.154O +type AVP_OctetString ProSe_UE_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Proximity-Alert-Indication (3454) 3GPP (10415) +// 7.2.154P +type enumerated Proximity_Alert_Indication +{ + ALERT (0), + NO_ALERT (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Proximity-Alert-Timestamp (3455) 3GPP (10415) +// 7.2.154Q +type AVP_Time Proximity_Alert_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Proximity-Cancellation-Timestamp (3456) 3GPP (10415) +// 7.2.154R +type AVP_Time Proximity_Cancellation_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PS-Append-Free-Format-Data (867) 3GPP (10415) +// 7.2.155 +type enumerated PS_Append_Free_Format_Data +{ + APPEND (0), + OVERWRITE (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: PS-Free-Format-Data (866) 3GPP (10415) +// 7.2.156 +type AVP_OctetString PS_Free_Format_Data; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PS-Furnish-Charging-Information (865) 3GPP (10415) +// 7.2.157 +type AVP_Grouped PS_Furnish_Charging_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: PS-Information (874) 3GPP (10415) +// 7.2.158 +type AVP_Grouped PS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Quota-Consumption-Time (881) 3GPP (10415) +// 7.2.159 +type AVP_Unsigned32 Quota_Consumption_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Quota-Holding-Time (871) 3GPP (10415) +// 7.2.160 +type AVP_Unsigned32 Quota_Holding_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Quota-Indicator (3912) 3GPP (10415) +// 7.2.160aA +type enumerated Quota_Indicator +{ + QUOTA_IS_NOT_USED_DURING_PLAYBACK (0), + QUOTA_IS_USED_DURING_PLAYBACK (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Radio-Frequency (3462) 3GPP (10415) +// 7.2.160A +type AVP_OctetString Radio_Frequency; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Radio-Parameter-Set-Info (3463) 3GPP (10415) +// 7.2.160B +type AVP_Grouped Radio_Parameter_Set_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Radio-Parameter-Set-Values (3464) 3GPP (10415) +// 7.2.160C +type AVP_OctetString Radio_Parameter_Set_Values; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Radio-Resources-Indicator (3465) 3GPP (10415) +// 7.2.160D +type AVP_Integer32 Radio_Resources_Indicator; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Rate-Control-Max-Message-Size (3937) 3GPP (10415) +// 7.2.160E +type AVP_Integer32 Rate_Control_Max_Message_Size; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Rate-Control-Max-Rate (3938) 3GPP (10415) +// 7.2.160F +type AVP_Integer32 Rate_Control_Max_Rate; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Rate-Control-Time-Unit (3939) 3GPP (10415) +// 7.2.160G +type AVP_Integer32 Rate_Control_Time_Unit; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Rate-Element (2058) 3GPP (10415) +// 7.2.161 +type AVP_Grouped Rate_Element; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Read-Reply-Report-Requested (1222) 3GPP (10415) +// 7.2.162 +type enumerated Read_Reply_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Real-Time-Tariff-Information (2305) 3GPP (10415) +// 7.2.164 +type AVP_Grouped Real_Time_Tariff_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Reason-Header (3401) 3GPP (10415) +// 7.2.164A +type AVP_UTF8String Reason_Header; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Received-Talk-Burst-Time (1284) 3GPP (10415) +// 7.2.165 +type AVP_Unsigned32 Received_Talk_Burst_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Received-Talk-Burst-Volume (1285) 3GPP (10415) +// 7.2.166 +type AVP_Unsigned32 Received_Talk_Burst_Volume; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Recipient-Address (1201) 3GPP (10415) +// 7.2.167 +type AVP_Grouped Recipient_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Recipient-Info (2026) 3GPP (10415) +// 7.2.168 +type AVP_Grouped Recipient_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Recipient-Received-Address (2028) 3GPP (10415) +// 7.2.169 +type AVP_Grouped Recipient_Received_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Recipient-SCCP-Address (2010) 3GPP (10415) +// 7.2.170 +type AVP_Address Recipient_SCCP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Refund-Information (2022) 3GPP (10415) +// 7.2.171 +type AVP_OctetString Refund_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Relationship-Mode (2706) 3GPP (10415) +// 7.2.171A +type enumerated Relationship_Mode +{ + Trusted (0), + Non_Trusted (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Related-Change-Condition-Information (3925) 3GPP (10415) +// 7.2.171Aa +type AVP_Grouped Related_Change_Condition_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Related-Trigger (3926) 3GPP (10415) +// 7.2.171Ab +type AVP_Grouped Related_Trigger; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Related-IMS-Charging-Identifier (2711) 3GPP (10415) +// 7.2.171B +type AVP_UTF8String Related_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Related-IMS-Charging-Identifier-Node (2712) 3GPP (10415) +// 7.2.171C +type AVP_Address Related_IMS_Charging_Identifier_Node; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Remaining-Balance (2021) 3GPP (10415) +// 7.2.172 +type AVP_Grouped Remaining_Balance; + +// 3GPP TS 32.299 V8.5.0 +// AVP: Reply-Applic-ID (1223) 3GPP (10415) +// 7.2.173 +type AVP_UTF8String Reply_Applic_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Reply-Path-Requested (2011) 3GPP (10415) +// 7.2.174 +type enumerated Reply_Path_Requested +{ + NO_REPLY_PATH_SET (0), + REPLY_PATH_SET (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Reporting-Reason (872) 3GPP (10415) +// 7.2.175 +type enumerated Reporting_Reason +{ + THRESHOLD (0), + QHT (1), + FINAL (2), + QUOTA_EXHAUSTED (3), + VALIDITY_TIME (4), + OTHER_QUOTA_TYPE (5), + RATING_CONDITION_CHANGE (6), + FORCED_REAUTHORISATION (7), + POOL_EXHAUSTED (8) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Requested-Party-Address (1251) 3GPP (10415) +// 7.2.176 +type AVP_UTF8String Requested_Party_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Requested-PLMN-Identifier (3436) 3GPP (10415) +// 7.2.176A +type AVP_UTF8String Requested_PLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Requestor-PLMN-Identifier (3437) 3GPP (10415) +// 7.2.176B +type AVP_UTF8String Requestor_PLMN_Identifier; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Role-Of-Node (829) 3GPP (10415) +// Note: not compatible with V9.2.0 or before (see spec.) +// 7.2.177 +type enumerated Role_Of_Node +{ + ORIGINATING_ROLE (0), + TERMINATING_ROLE (1), + FORWARDING_ROLE (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Role-Of-ProSe-Function (3438) 3GPP (10415) +// 7.2.177aA +type enumerated Role_Of_ProSe_Function +{ + HPLMN (0), + VPLMN (1), + LOCAL_PLMN (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Route-Header-Received (3403) 3GPP (10415) +// 7.2.177A +type AVP_UTF8String Route_Header_Received; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Route-Header-Transmitted (3404) 3GPP (10415) +// 7.2.177B +type AVP_UTF8String Route_Header_Transmitted; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Scale-Factor (2059) 3GPP (10415) +// 7.2.178 +type AVP_Grouped Scale_Factor; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Answer-Timestamp (1275) 3GPP (10415) +// 7.2.179 +type AVP_Time SDP_Answer_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Media-Component (843) 3GPP (10415) +// 7.2.180 +type AVP_Grouped SDP_Media_Component; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Media-Description (845) 3GPP (10415) +// 7.2.181 +type AVP_UTF8String SDP_Media_Description; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Media-Name (844) 3GPP (10415) +// 7.2.182 +type AVP_UTF8String SDP_Media_Name; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Offer-Timestamp (1274) 3GPP (10415) +// 7.2.183 +type AVP_Time SDP_Offer_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Session-Description (842) 3GPP (10415) +// 7.2.184 +type AVP_UTF8String SDP_Session_Description; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-TimeStamps (1273) 3GPP (10415) +// 7.2.185 +type AVP_Grouped SDP_TimeStamps; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SDP-Type (2036) 3GPP (10415) +// 7.2.186 +type enumerated SDP_Type +{ + SDP_OFFER (0), + SDP_ANSWER (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Session-Direction (2707) 3GPP (10415) +// 7.2.186A +type enumerated Session_Direction +{ + Inbound (0), + Outbound (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Served-Party-IP-Address (848) 3GPP (10415) +// 7.2.187 +type AVP_Address Served_Party_IP_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Data-Container (2040) 3GPP (10415) +// 7.2.189 +type AVP_Grouped Service_Data_Container; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Id (855) 3GPP (10415) +// 7.2.190 +type AVP_UTF8String Service_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Generic-Information (1256) 3GPP (10415) +// 7.2.191 +type AVP_Grouped Service_Generic_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Information (873) 3GPP (10415) +// 7.2.192 +type AVP_Grouped Service_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Mode (2032) 3GPP (10415) +// 7.2.193 +type AVP_Unsigned32 Service_Mode; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Specific-Data (863) 3GPP (10415) +// 7.2.194 +type AVP_UTF8String Service_Specific_Data; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Specific-Info (1249) 3GPP (10415) +// 7.2.195 +type AVP_Grouped Service_Specific_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Service-Specific-Type (1257) 3GPP (10415) +// 7.2.196 +type AVP_Unsigned32 Service_Specific_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Serving-Node-Identity (3929) 3GPP (10415) +// 7.2.197A +type AVP_DiameterIdentity Serving_Node_Identity; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Serving-Node-Type (2047) 3GPP (10415) +// 7.2.198 +type enumerated Serving_Node_Type +{ + SGSN (0), + PMIPSGW (1), + GTPSGW (2), + ePDG (3), + hSGW (4), + MME (5), + TWAN (6) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SGi-PtP-Tunnelling-Method (3931) 3GPP (10415) +// 7.2.198A +type enumerated SGi_PtP_Tunnelling_Method +{ + UDP_IP_BASED (0), + Others (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SGSN-Address (1228) 3GPP (10415) +// 7.2.199 +type AVP_Address SGSN_Address; + + +// 3GPP TS 32.299 V13.7.0 +// AVP: SGW-Address (2067) 3GPP (10415) +// 7.2.199A +type AVP_Address SGW_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SGW-Change (2065) 3GPP (10415) +// 7.2.200 +type enumerated SGW_Change +{ + ACR_Start_NOT_due_to_SGW_Change (0), + ACR_Start_due_to_SGW_Change (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SIP-Method (824) 3GPP (10415) +// 7.2.201 +type AVP_UTF8String SIP_Method; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SIP-Request-Timestamp (834) 3GPP (10415) +// 7.2.202 +type AVP_Time SIP_Request_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SIP-Request-Timestamp-Fraction (2301) 3GPP (10415) +// 7.2.203 +type AVP_Unsigned32 SIP_Request_Timestamp_Fraction; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SIP-Response-Timestamp (835) 3GPP (10415) +// 7.2.204 +type AVP_Time SIP_Response_Timestamp; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SIP-Response-Timestamp-Fraction (2302) 3GPP (10415) +// 7.2.205 +type AVP_Unsigned32 SIP_Response_Timestamp_Fraction; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Device-Trigger-Indicator (3407) 3GPP (10415) +// 7.2.205A +type enumerated SM_Device_Trigger_Indicator +{ + Not_Device_Trigger (0), + Device_Trigger (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Device-Trigger-Information (3405) 3GPP (10415) +// 7.2.205B +type AVP_Grouped SM_Device_Trigger_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Discharge-Time (2012) 3GPP (10415) +// 7.2.206 +type AVP_Time SM_Discharge_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Message-Type (2007) 3GPP (10415) +// 7.2.207 +type enumerated SM_Message_Type +{ + SUBMISSION (0), + DELIVERY_REPORT (1), + SM_SERVICE_REQUEST (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Protocol-ID (2013) 3GPP (10415) +// 7.2.208 +type AVP_OctetString SM_Protocol_ID; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Sequence-Number (3408) 3GPP (10415) +// 7.2.208A +type AVP_Unsigned32 SM_Sequence_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Status (2014) 3GPP (10415) +// 7.2.209 +type AVP_OctetString SM_Status; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-User-Data-Header (2015) 3GPP (10415) +// 7.2.210 +type AVP_OctetString SM_User_Data_Header; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SMS-Information (2000) 3GPP (10415) +// 7.2.211 +type AVP_Grouped SMS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SMS-Node (2016) 3GPP (10415) +// 7.2.212 +type enumerated SMS_Node +{ + SMS_ROUTER (0), + IP_SM_GW (1), + SMS_ROUTER_AND_IP_SM_GW (2), + SMS_SC (3) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: SMS-Result (3409) 3GPP (10415) +// 7.2.212A +type AVP_Unsigned32 SMS_Result; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.7.0 +// AVP: SM-Service-Type (2029) 3GPP (10415) +// 7.2.213 +type AVP_Unsigned32 SM_Service_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: SMSC-Address (2017) 3GPP (10415) +// 7.2.214 +type AVP_Address SMSC_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Start-Of-Charging (3419) 3GPP (10415) +// 7.2.214A +type AVP_Time Start_Of_Charging; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Start-Time (2041) 3GPP (10415) +// 7.2.215 +type AVP_Time Start_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Status-AS-Code (2702) 3GPP (10415) +// 7.2.215A +type enumerated Status_AS_Code +{ + code_4xx (0), + code_5xx (1), + Timeout (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Stop-Time (2042) 3GPP (10415) +// 7.2.216 +type AVP_Time Stop_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Submission-Time (1202) 3GPP (10415) +// 7.2.217 +type AVP_Time Submission_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Subscriber-Role (2033) 3GPP (10415) +// 7.2.218 +type enumerated Subscriber_Role +{ + ORIGINATING (0), + TERMINATING (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Supplementary-Service (2048) 3GPP (10415) +// 7.2.219 +type AVP_Grouped Supplementary_Service; + +// 3GPP TS 32.299 V13.7.0 +// AVP: TAD-Identifier (2717) 3GPP (10415) +// 7.2.219A +type enumerated TAD_Identifier +{ + CS (0), + PS (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Talk-Burst-Exchange (1255) 3GPP (10415) +// 7.2.220 +type AVP_Grouped Talk_Burst_Exchange; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Talk-Burst-Time (1286) 3GPP (10415) +// 7.2.221 +type AVP_Unsigned32 Talk_Burst_Time; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Talk-Burst-Volume (1287) 3GPP (10415) +// 7.2.222 +type AVP_Unsigned32 Talk_Burst_Volume; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Tariff-Information (2060) 3GPP (10415) +// 7.2.223 +type AVP_Grouped Tariff_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Tariff-XML (2306) 3GPP (10415) +// 7.2.224 +type AVP_UTF8String Tariff_XML; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Teleservice (3413) 3GPP (10415) +// 7.2.224A +type AVP_OctetString Teleservice; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Terminating-IOI (840) 3GPP (10415) +// 7.2.225 +type AVP_UTF8String Terminating_IOI; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-First-Reception (3466) 3GPP (10415) +// 7.2.225A +type AVP_Time Time_First_Reception; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-First-Transmission (3467) 3GPP (10415) +// 7.2.225B +type AVP_Time Time_First_Transmission; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-First-Usage (2043) 3GPP (10415) +// 7.2.226 +type AVP_Time Time_First_Usage; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Indicator (3911) 3GPP (10415) +// 7.2.226A +type AVP_Unsigned32 Time_Indicator; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Last-Usage (2044) 3GPP (10415) +// 7.2.227 +type AVP_Time Time_Last_Usage; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Quota-Mechanism (1270) 3GPP (10415) +// 7.2.228 +type AVP_Grouped Time_Quota_Mechanism; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Quota-Threshold (868) 3GPP (10415) +// 7.2.229 +type AVP_Unsigned32 Time_Quota_Threshold; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Quota-Type (1271) 3GPP (10415) +// 7.2.230 +type enumerated Time_Quota_Type +{ + DISCRETE_TIME_PERIOD (0), + CONTINUOUS_TIME_PERIOD (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Stamps (833) 3GPP (10415) +// 7.2.231 +type AVP_Grouped Time_Stamps; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Time-Usage (2045) 3GPP (10415) +// 7.2.232 +type AVP_Unsigned32 Time_Usage; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Traffic-Data-Volumes (2046) 3GPP (10415) +// 7.2.233 +type AVP_Grouped Traffic_Data_Volumes; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Transcoder-Inserted-Indication (2605) 3GPP (10415) +// 7.2.233A +type enumerated Transcoder_Inserted_Indication +{ + TRANSCODER_NOT_INSERTED (0), + TRANSCODER_INSERTED (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Transit-IOI-List (2701) 3GPP (10415) +// 7.2.233B +type AVP_UTF8String Transit_IOI_List; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Transmitter-Info (3468) 3GPP (10415) +// 7.2.233C +type AVP_Grouped Transmitter_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Token-Text (1215) 3GPP (10415) +// 7.2.234 +type AVP_UTF8String Token_Text; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Trigger (1264) 3GPP (10415) +// 7.2.235 +type AVP_Grouped Trigger; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Trigger-Type (870) 3GPP (10415) +// 7.2.236 +type enumerated Trigger_Type +{ + CHANGE_IN_SGSN_IP_ADDRESS (1), + CHANGE_IN_QOS (2), + CHANGE_IN_LOCATION (3), + CHANGE_IN_RAT (4), + CHANGE_IN_UE_TIMEZONE (5), + CHANGEINQOS_TRAFFIC_CLASS (10), + CHANGEINQOS_RELIABILITY_CLASS (11), + CHANGEINQOS_DELAY_CLASS (12), + CHANGEINQOS_PEAK_THROUGHPUT (13), + CHANGEINQOS_PRECEDENCE_CLASS (14), + CHANGEINQOS_MEAN_THROUGHPUT (15), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK (16), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK (17), + CHANGEINQOS_RESIDUAL_BER (18), + CHANGEINQOS_SDU_ERROR_RATIO (19), + CHANGEINQOS_TRANSFER_DELAY (20), + CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY (21), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK (22), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK (23), + CHANGEINQOS_APN_AGGREGATE_MAXIMUM_BIT_RATE (24), + CHANGEINLOCATION_MCC (30), + CHANGEINLOCATION_MNC (31), + CHANGEINLOCATION_RAC (32), + CHANGEINLOCATION_LAC (33), + CHANGEINLOCATION_CellId (34), + CHANGEINLOCATION_TAC (35), + CHANGEINLOCATION_ECGI (36), + CHANGE_IN_MEDIA_COMPOSITION (40), + CHANGE_IN_PARTICIPANTS_NMB (50), + CHANGE_IN_THRSHLD_OF_PARTICIPANTS_NMB (51), + CHANGE_IN_USER_PARTICIPATING_TYPE (52), + CHANGE_IN_SERVICE_CONDITION (60), + CHANGE_IN_SERVING_NODE (61), + CHANGE_IN_ACCESS_FOR_A_SERVICE_DATA_FLOW (62), + CHANGE_IN_USER_CSG_INFORMATION (70), + CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION (71), + CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION (72), + CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA (73), + CHANGE_IN_SERVING_PLMN_RATE_CONTROL (74), + CHANGE_IN_APN_RATE_CONTROL (75) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Trunk-Group-Id (851) 3GPP (10415) +// 7.2.237 +type AVP_Grouped Trunk_Group_Id; + +// 3GPP TS 32.299 V13.7.0 +// AVP: TWAG-Address (3903) 3GPP (10415) +// 7.2.237Ba +type AVP_Address TWAG_Address; + +// 3GPP TS 32.299 V13.7.0 +// AVP: TWAN-User-Location-Info (2714) 3GPP (10415) +// 7.2.237C +type AVP_Grouped TWAN_User_Location_Info; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.7.0 +// AVP: Type-Number (1204) 3GPP (10415) +// 7.2.238 +type AVP_Unsigned32 Type_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: UNI-PDU-CP-Only-Flag (3932) 3GPP (10415) +// 7.2.238A +type enumerated UNI_PDU_CP_Only_Flag +{ + UNI_PDU_both_UP_CP (0), + UNI_PDU_CP_Only (1) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: Unit-Cost (2061) 3GPP (10415) +// 7.2.239 +type AVP_Grouped Unit_Cost; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Unit-Quota-Threshold (1226) 3GPP (10415) +// 7.2.240 +type AVP_Unsigned32 Unit_Quota_Threshold; + +// 3GPP TS 32.299 V13.7.0 +// AVP: User-CSG-Information (2319) 3GPP (10415) +// 7.2.240A +type AVP_Grouped User_CSG_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Usage-Information-Report-Sequence-Number (3439) 3GPP (10415) +// 7.2.240B +type AVP_Integer32 Usage_Information_Report_Sequence_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: User-Participating-Type (1279) 3GPP (10415) +// 7.2.241 +type enumerated User_Participating_Type +{ + NORMAL (0), + NW_POC_BOX (1), + UE_POC_BOX (2) +} + +// 3GPP TS 32.299 V13.7.0 +// AVP: User-Session-Id (830) 3GPP (10415) +// 7.2.242 +type AVP_UTF8String User_Session_Id; + +// 3GPP TS 32.299 V13.7.0 CR0716 +// AVP: UWAN-User-Location-Info (3918) 3GPP (10415) +// 7.2.242aaA +type AVP_Grouped UWAN_User_Location_Info; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Variable-Part (3907) 3GPP (10415) +// 7.2.242aA +type AVP_Grouped Variable_Part; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Variable-Part-Order (3908) 3GPP (10415) +// 7.2.242aB +type AVP_Unsigned32 Variable_Part_Order; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Variable-Part-Type (3909) 3GPP (10415) +// 7.2.242aC +type AVP_Unsigned32 Variable_Part_Type; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Variable-Part-Value (3910) 3GPP (10415) +// 7.2.242aD +type AVP_UTF8String Variable_Part_Value; + +// 3GPP TS 32.299 V13.7.0 +// AVP: VCS-Information (3410) 3GPP (10415) +// 7.2.242A +type AVP_Grouped VCS_Information; + +// 3GPP TS 32.299 V13.7.0 +// AVP: VLR-Number (3420) 3GPP (10415) +// 7.2.242B +type AVP_OctetString VLR_Number; + +// 3GPP TS 32.299 V13.7.0 +// AVP: Volume-Quota-Threshold (869) 3GPP (10415) +// 7.2.243 +type AVP_Unsigned32 Volume_Quota_Threshold; + + diff --git a/src/ChargingApplications_3GPP_TS32299_d90.ddf b/src/ChargingApplications_3GPP_TS32299_d90.ddf new file mode 100644 index 0000000..a3e759f --- /dev/null +++ b/src/ChargingApplications_3GPP_TS32299_d90.ddf @@ -0,0 +1,2473 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Akos Makovics - initial implementation and initial documentation +* Gabor Szalai +* Timea Moder +******************************************************************************/ +// +// File: ChargingApplications_3GPP_TS32299_d90.ddf +// Description: DDF for Diameter Charging Application 3GPP TS 32.299 V13.9.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: DCA +// APPLICATION-REVISION: V13_9_0 + +// AVP implementations according to: +// 3GPP TS 32.299 V13.9.0 - Telecommunication management; Charging management; +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// IETF RFC 3588 - Diameter Base Protocol +// RFC 4006 - Diameter Credit Control Application +// +// Notes: +// + + +// 3GPP TS 32.299 V13.9.0 +type enumerated Command_Code +{ + Accounting (271), + Re_Auth (258) +} + + +// 3GPP TS 32.299 V13.9.0 +// AVP: Access-Network-Information (1263) 3GPP (10415) +// 7.2.1 +type AVP_OctetString Access_Network_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Access-Transfer-Information (2709) 3GPP (10415) +// 7.2.1A +type AVP_Grouped Access_Transfer_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Access-Transfer-Type (2710) 3GPP (10415) +// 7.2.1.B +type enumerated Access_Transfer_Type +{ + PS_to_CS_Transfer (0), + CS_to_PS_Transfer (1), + PS_to_PS_Transfer (2), + CS_to_CS_Transfer (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Account-Expiration (2309) 3GPP (10415) +// 7.2.2 +type AVP_Time Account_Expiration; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Accumulated-Cost (2052) 3GPP (10415) +// 7.2.3 +type AVP_Grouped Accumulated_Cost; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Adaptations (1217) 3GPP (10415) +// 7.2.4 +type enumerated Adaptations +{ + YES (0), + NO (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Additional-Content-Information (1207) 3GPP (10415) +// 7.2.5 +type AVP_Grouped Additional_Content_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Additional-Exception-Reports (3936) 3GPP (10415) +// 7.2.5A +type enumerated Additional_Exception_Reports +{ + NOT_ALLOWED (0), + ALLOWED (1) +} + + +// 3GPP TS 32.299 V13.9.0 +// AVP: Additional-Type-Information (1205) 3GPP (10415) +// 7.2.6 +type AVP_UTF8String Additional_Type_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Address-Data (897) 3GPP (10415) +// 7.2.7 +type AVP_UTF8String Address_Data; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Address-Domain (898) 3GPP (10415) +// 7.2.8 +type AVP_Grouped Address_Domain; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Address-Type (899) 3GPP (10415) +// 7.2.9 +type enumerated Address_Type +{ + E_MAIL_ADDRESS (0), + MSISDN (1), + IPV4_ADDRESS (2), + IPV6_ADDRESS (3), + NUMERIC_SHORTCODE (4), + ALPHANUMERIC_SHORTCODE (5), + OTHER (6), + IMSI (7) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Addressee-Type (1208) 3GPP (10415) +// 7.2.10 +type enumerated Addressee_Type +{ + TO (0), + CC (1), + BCC (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: AF-Correlation-Information (1276) 3GPP (10415) +// 7.2.11 +type AVP_Grouped AF_Correlation_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Alternate-Charged-Party-Address (1280) 3GPP (10415) +// 7.2.12 +type AVP_UTF8String Alternate_Charged_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Announcement-Identifier (3905) 3GPP (10415) +// 7.2.12aA +type AVP_Unsigned32 Announcement_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Announcement-Information (3904) 3GPP (10415) +// 7.2.12aB +type AVP_Grouped Announcement_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Announcement-Order (3906) 3GPP (10415) +// 7.2.12aC +type AVP_Unsigned32 Announcement_Order; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Announcing-UE-HPLMN-Identifier (3426) 3GPP (10415) +// 7.2.12A +type AVP_UTF8String Announcing_UE_HPLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Announcing-UE-VPLMN-Identifier (3427) 3GPP (10415) +// 7.2.12B +type AVP_UTF8String Announcing_UE_VPLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Cost-Information (2053) 3GPP (10415) +// 7.2.13 +type AVP_Grouped AoC_Cost_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Format (2310) 3GPP (10415) +// 7.2.14 +type enumerated AoC_Format +{ + MONETARY (0), + NON_MONETARY (1), + CAI (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Information (2054) 3GPP (10415) +// 7.2.15 +type AVP_Grouped AoC_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Request-Type (2055) 3GPP (10415) +// 7.2.16 +type enumerated AoC_Request_Type +{ + AoC_NOT_REQUESTED (0), + AoC_FULL (1), + AoC_COST_ONLY (2), + AoC_TARIFF_ONLY (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Service (2311) 3GPP (10415) +// 7.2.17 +type AVP_Grouped AoC_Service; + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Service-Obligatory-Type (2312) 3GPP (10415) +// 7.2.18 +type enumerated AoC_Service_Obligatory_Type +{ + NON_BINDING (0), + BINDING (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Service-Type (2313) 3GPP (10415) +// 7.2.19 +type enumerated AoC_Service_Type +{ + NONE (0), + AOC_S (1), + AOC_D (2), + AOC_E (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: AoC-Subscription-Information (2314) 3GPP (10415) +// 7.2.20 +type AVP_Grouped AoC_Subscription_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: APN-Rate-Control (3933) 3GPP (10415) +// 7.2.20A +type AVP_Grouped APN_Rate_Control; + +// 3GPP TS 32.299 V13.9.0 +// AVP: APN-Rate-Control-Downlink (3934) 3GPP (10415) +// 7.2.20B +type AVP_Grouped APN_Rate_Control_Downlink; + +// 3GPP TS 32.299 V13.9.0 +// AVP: APN-Rate-Control-Uplink (3935) 3GPP (10415) +// 7.2.20B +type AVP_Grouped APN_Rate_Control_Uplink; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Applic-ID (1218) 3GPP (10415) +// 7.2.21 +type AVP_UTF8String Applic_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Application-provided-Called-Party-Address (837) 3GPP (10415) +// 7.2.22 +type AVP_UTF8String Application_provided_Called_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Application-Server (836) 3GPP (10415) +// 7.2.23 +type AVP_UTF8String Application_Server; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Application-Server-Information (850) 3GPP (10415) +// 7.2.24 +type AVP_Grouped Application_Server_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Application-Specific-Data (3458) 3GPP (10415) +// 7.2.24A +type AVP_OctetString Application_Specific_Data; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Associated-Party-Address (2035) 3GPP (10415) +// 7.2.25 +type AVP_UTF8String Associated_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Associated-URI (856) 3GPP (10415) +// 7.2.26 +type AVP_UTF8String Associated_URI; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Authorised-QoS (849) 3GPP (10415) +// 7.2.27 +type AVP_UTF8String Authorised_QoS; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Aux-Applic-Info (1219) 3GPP (10415) +// 7.2.28 +type AVP_UTF8String Aux_Applic_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Base-Time-Interval (1265) 3GPP (10415) +// 7.2.29 +type AVP_Unsigned32 Base_Time_Interval; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Basic-Service-Code (3411) 3GPP (10415) +// 7.2.29A +type AVP_Grouped Basic_Service_Code; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Bearer-Capability (3412) 3GPP (10415) +// 7.2.29B +type AVP_OctetString Bearer_Capability; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Bearer-Service (854) 3GPP (10415) +// 7.2.30 +type AVP_OctetString Bearer_Service; + +// 3GPP TS 32.299 V13.9.0 +// AVP: BSSID (2716) 3GPP (10415) +// 7.2.30A +type AVP_UTF8String BSSID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Called-Asserted-Identity (1250) 3GPP (10415) +// 7.2.31 +type AVP_UTF8String Called_Asserted_Identity; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Called-Identity (3916) 3GPP (10415) +// 7.2.31A +type AVP_UTF8String Called_Identity; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Called-Identity-Change (3917) 3GPP (10415) +// 7.2.31B +type AVP_Grouped Called_Identity_Change; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Called-Party-Address (832) 3GPP (10415) +// 7.2.32 +type AVP_UTF8String Called_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Calling-Party-Address (831) 3GPP (10415) +// 7.2.33 +type AVP_UTF8String Calling_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Carrier-Select-Routing-Information (2023) 3GPP (10415) +// 7.2.34 +type AVP_UTF8String Carrier_Select_Routing_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Cause-Code (861) 3GPP (10415) +// 7.2.35 +type AVP_Integer32 Cause_Code; + +// 3GPP TS 32.299 V13.9.0 +// AVP: CG-Address (846) 3GPP (10415) +// 7.2.36 +type AVP_Address CG_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Change-Condition (2037) 3GPP (10415) +// 7.2.37 +type AVP_Integer32 Change_Condition; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Change-Time (2038) 3GPP (10415) +// 7.2.38 +type AVP_Time Change_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Charge-Reason-Code (2118) 3GPP (10415) +// 7.2.38A +type enumerated Charge_Reason_Code +{ + UNKNOWN (0), + USAGE (1), + COMMUNICATION_ATTEMPT_CHARGE (2), + SETUP_CHARGE (3), + ADD_ON_CHARGE (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Charged-Party (857) 3GPP (10415) +// 7.2.39 +type AVP_UTF8String Charged_Party; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Charging-Characteristics-Selection-Mode (2066) 3GPP (10415) +// 7.2.39A +type enumerated Charging_Characteristics_Selection_Mode +{ + SERVING_NODE_SUPPLIED (0), + SUBSCRIPTION_SPECIFIC (1), + APN_SPECIFIC (2), + HOME_DEFAULT (3), + ROAMING_DEFAULT (4), + VISITING_DEFAULT (5) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Class-Identifier (1214) 3GPP (10415) +// 7.2.40 +type enumerated Class_Identifier +{ + PERSONAL (0), + ADVERTISMENT (1), + INFORMATIONAL (2), + AUTO (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Client-Address (2018) 3GPP (10415) +// 7.2.41 +type AVP_Address Client_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: CN-Operator-Selection-Entity (3421) 3GPP (10415) +// 7.2.41A +type enumerated CN_Operator_Selection_Entity +{ + SN_selected_by_UE (0), + SN_selected_by_network (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Content-Class (1220) 3GPP (10415) +// 7.2.42 +type enumerated Content_Class +{ + TEXT (0), + IMAGE_BASIC (1), + IMAGE_RICH (2), + VIDEO_BASIC (3), + VIDEO_RICH (4), + MEGAPIXEL (5), + CONTENT_BASIC (6), + CONTENT_RICH (7) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Content-Disposition (828) 3GPP (10415) +// 7.2.43 +type AVP_UTF8String Content_Disposition; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Content-Length (827) 3GPP (10415) +// 7.2.44 +type AVP_Unsigned32 Content_Length; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Content-Size (1206) 3GPP (10415) +// 7.2.45 +type AVP_Unsigned32 Content_Size; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Content-Type (826) 3GPP (10415) +// 7.2.46 +type AVP_UTF8String Content_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Coverage-Status (3428) 3GPP (10415) +// 7.2.46aA +type enumerated Coverage_Status +{ + OUT_OF_COVERAGE (0), + IN_COVERAGE (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Coverage-Info (3459) 3GPP (10415) +// 7.2.46aaA +type AVP_Grouped Coverage_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: CP-CIoT-EPS-Optimisation-Indicator (3930) 3GPP (10415) +// 7.2.46abA +type enumerated CP_CIoT_EPS_Optimisation_Indicator +{ + NOT_APPLY (0), + APPLY (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: CPDT-Information (3927) 3GPP (10415) +// 7.2.46acA +type AVP_Grouped CPDT_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: CSG-Access-Mode (2317) 3GPP (10415) +// 7.2.46A +type enumerated CSG_Access_Mode +{ + CLOSED_MODE (0), + HYBRID_MODE (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: CSG-Membership-Indication (2318) 3GPP (10415) +// 7.2.46B +type enumerated CSG_Membership_Indication +{ + NOT_CSG_MEMBER (0), + CSG_MEMBER (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Current-Tariff (2056) 3GPP (10415) +// 7.2.47 +type AVP_Grouped Current_Tariff; + +// 3GPP TS 32.299 V13.9.0 +// AVP: CUG-Information (2304) 3GPP (10415) +// 7.2.48 +type AVP_OctetString CUG_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Data-Coding-Scheme (2001) 3GPP (10415) +// 7.2.49 +type AVP_Integer32 Data_Coding_Scheme; + +// 3GPP TS 32.299 V13.9.0 +// AVP: DCD-Information (2115) 3GPP (10415) +// 7.2.50 +type AVP_Grouped DCD_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Deferred-Location-Event-Type (1230) 3GPP (10415) +// 7.2.51 +type AVP_UTF8String Deferred_Location_Event_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Delivery-Report-Requested (1216) 3GPP (10415) +// 7.2.52 +type enumerated Delivery_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Destination-Interface (2002) 3GPP (10415) +// 7.2.53 +type AVP_Grouped Destination_Interface; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Diagnostics (2039) 3GPP (10415) +// 7.2.54 +type AVP_Integer32 Diagnostics; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Domain-Name (1200) 3GPP (10415) +// 7.2.55 +type AVP_UTF8String Domain_Name; + +// 3GPP TS 32.299 V13.9.0 +// AVP: DRM-Content (1221) 3GPP (10415) +// 7.2.56 +type enumerated DRM_Content +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Dynamic-Address-Flag (2051) 3GPP (10415) +// 7.2.57 +type enumerated Dynamic_Address_Flag +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Dynamic-Address-Flag-Extension (2068) 3GPP (10415) +// 7.2.57A +type enumerated Dynamic_Address_Flag_Extension +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Early-Media-Description (1272) 3GPP (10415) +// 7.2.58 +type AVP_Grouped Early_Media_Description; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Enhanced-Diagnostics (3901) 3GPP (10415) +// 7.2.58A +type AVP_Grouped Enhanced_Diagnostics; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Envelope (1266) 3GPP (10415) +// 7.2.59 +type AVP_Grouped Envelope; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Envelope-End-Time (1267) 3GPP (10415) +// 7.2.60 +type AVP_Time Envelope_End_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Envelope-Reporting (1268) 3GPP (10415) +// 7.2.61 +type enumerated Envelope_Reporting +{ + DO_NOT_REPORT_ENVELOPES (0), + REPORT_ENVELOPES (1), + REPORT_ENVELOPES_WITH_VOLUME (2), + REPORT_ENVELOPES_WITH_EVENTS (3), + REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Envelope-Start-Time (1269) 3GPP (10415) +// 7.2.62 +type AVP_Time Envelope_Start_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ePDG-Address (3425) 3GPP (10415) +// 7.2.62A +type AVP_Address ePDG_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Event (825) 3GPP (10415) +// 7.2.63 +type AVP_UTF8String Event; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Event-Charging-TimeStamp (1258) 3GPP (10415) +// 7.2.64 +type AVP_Time Event_Charging_TimeStamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Event-Type (823) 3GPP (10415) +// 7.2.65 +type AVP_Grouped Event_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Expires (888) 3GPP (10415) +// 7.2.66 +type AVP_Unsigned32 Expires; + +// 3GPP TS 32.299 V13.9.0 +// AVP: File-Repair-Supported (1224) 3GPP (10415) +// 7.2.67 +type enumerated File_Repair_Supported +{ + SUPPORTED (1), + NOT_SUPPORTED (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: From-Address (2708) 3GPP (10415) +// 7.2.67A +type AVP_UTF8String From_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Forwarding-Pending (3415) 3GPP (10415) +// 7.2.67aA +type enumerated Forwarding_Pending +{ + Forwarding_not_Pending (0), + Forwarding_Pending (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: GGSN-Address (847) 3GPP (10415) +// 7.2.68 +type AVP_Address GGSN_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IM-Information (2110) 3GPP (10415) +// 7.2.69 +type AVP_Grouped IM_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Incremental-Cost (2062) 3GPP (10415) +// 7.2.70 +type AVP_Grouped Incremental_Cost; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Instance-Id (3402) 3GPP (10415) +// 7.2.70A +type AVP_UTF8String Instance_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Interface-Id (2003) 3GPP (10415) +// 7.2.71 +type AVP_UTF8String Interface_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Interface-Port (2004) 3GPP (10415) +// 7.2.72 +type AVP_UTF8String Interface_Port; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Interface-Text (2005) 3GPP (10415) +// 7.2.73 +type AVP_UTF8String Interface_Text; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Interface-Type (2006) 3GPP (10415) +// 7.2.74 +type enumerated Interface_Type +{ + UNKNOWN (0), + MOBILE_ORIGINATING (1), + MOBILE_TERMINATING (2), + APPLICATION_ORIGINATING (3), + APPLICATION_TERMINATION (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Application-Reference-Identifier (2601) 3GPP (10415) +// 7.2.74A +type AVP_UTF8String IMS_Application_Reference_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Inter-UE-Transfer (3902) 3GPP (10415) +// 7.2.74aA +type enumerated Inter_UE_Transfer +{ + INTRA_UE_TRANSFER (0), + INTER_UE_TRANSFER (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Charging-Identifier (841) 3GPP (10415) +// 7.2.75 +type AVP_UTF8String IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Communication-Service-Identifier (1281) 3GPP (10415) +// 7.2.76 +type AVP_UTF8String IMS_Communication_Service_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Emergency-Indicator (2322) 3GPP (10415) +// 7.2.76A +type enumerated IMS_Emergency_Indicator +{ + Non_Emergency (0), + Emergency (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Information (876) 3GPP (10415) +// 7.2.77 +type AVP_Grouped IMS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMS-Visited-Network-Identifier (2713) 3GPP (10415) +// 7.2.77A +type AVP_UTF8String IMS_Visited_Network_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IMSI-Unauthenticated-Flag (2308) 3GPP (10415) +// 7.2.78 +type enumerated IMSI_Unauthenticated_Flag +{ + AUTHENTICATED (0), + UNAUTHENTICATED (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Incoming-Trunk-Group-Id (852) 3GPP (10415) +// 7.2.79 +type AVP_UTF8String Incoming_Trunk_Group_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Initial-IMS-Charging-Identifier (2321) 3GPP (10415) +// 7.2.79A +type AVP_UTF8String Initial_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Inter-Operator-Identifier (838) 3GPP (10415) +// 7.2.80 +type AVP_Grouped Inter_Operator_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: IP-Realm-Default-Indication (2603) 3GPP (10415) +// 7.2.80A +type enumerated IP_Realm_Default_Indication +{ + DEFAULT_IP_REALM_NOT_USED (0), + DEFAULT_IP_REALM_USED (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ISUP-Cause (3416) 3GPP (10415) +// 7.2.80B +type AVP_Grouped ISUP_Cause; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ISUP-Cause-Diagnostics (3422) 3GPP (10415) +// 7.2.80C +type AVP_OctetString ISUP_Cause_Diagnostics; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ISUP-Cause-Location (3423) 3GPP (10415) +// 7.2.80D +type AVP_Unsigned32 ISUP_Cause_Location; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ISUP-Cause-Value (3424) 3GPP (10415) +// 7.2.80E +type AVP_Unsigned32 ISUP_Cause_Value; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ISUP-Location-Number (3414) 3GPP (10415) +// 7.2.80F +type AVP_OctetString ISUP_Location_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Language (3914) 3GPP (10415) +// 7.2.80Fa +type AVP_UTF8String Language; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Layer-2-Group-ID (3429) 3GPP (10415) +// 7.2.80G +type AVP_OctetString Layer_2_Group_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-APN (1231) 3GPP (10415) +// 7.2.81 +type AVP_UTF8String LCS_APN; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Client-Dialed-By-MS (1233) 3GPP (10415) +// 7.2.82 +type AVP_UTF8String LCS_Client_Dialed_By_MS; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Client-External-ID (1234) 3GPP (10415) +// 7.2.83 +type AVP_UTF8String LCS_Client_External_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Client-Id (1232) 3GPP (10415) +// 7.2.84 +type AVP_Grouped LCS_Client_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Client-Name (1235) 3GPP (10415) +// 7.2.85 +type AVP_Grouped LCS_Client_Name; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Client-Type (1241) 3GPP (10415) +// 7.2.86 +type enumerated LCS_Client_Type +{ + EMERGENCY_SERVICES (0), + VALUE_ADDED_SERVICES (1), + PLMN_OPERATOR_SERVICES (2), + LAWFUL_INTERCEPT_SERVICES (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Data-Coding-Scheme (1236) 3GPP (10415) +// 7.2.87 +type AVP_UTF8String LCS_Data_Coding_Scheme; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Format-Indicator (1237) 3GPP (10415) +// 7.2.88 +type enumerated LCS_Format_Indicator +{ + LOGICAL_NAME (0), + EMAIL_ADDRESS (1), + MSISDN (2), + URL (3), + SIP_URL (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Information (878) 3GPP (10415) +// 7.2.89 +type AVP_Grouped LCS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Name-String (1238) 3GPP (10415) +// 7.2.90 +type AVP_UTF8String LCS_Name_String; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Requestor-Id (1239) 3GPP (10415) +// 7.2.91 +type AVP_Grouped LCS_Requestor_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: LCS-Requestor-Id-String (1240) 3GPP (10415) +// 7.2.92 +type AVP_UTF8String LCS_Requestor_Id_String; + + +// 3GPP TS 32.299 V13.9.0 +// AVP: Local-GW-Inserted-Indication (2604) 3GPP (10415) +// 7.2.92A +type enumerated Local_GW_Inserted_Indication +{ + LOCAL_GW_NOT_INSERTED (0), + LOCAL_GW_INSERTED (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Local-Sequence-Number (2063) 3GPP (10415) +// 7.2.93 +type AVP_Unsigned32 Local_Sequence_Number; + + +// 3GPP TS 32.299 V13.9.0 +// AVP: Location-Estimate (1242) 3GPP (10415) +// 7.2.94 +type AVP_OctetString Location_Estimate; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Location-Estimate-Type (1243) 3GPP (10415) +// 7.2.95 +type enumerated Location_Estimate_Type +{ + CURRENT_LOCATION (0), + CURRENT_LAST_KNOWN_LOCATION (1), + INITIAL_LOCATION (2), + ACTIVATE_DEFERRED_LOCATION (3), + CANCEL_DEFERRED_LOCATION (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Location-Info (3460) 3GPP (10415) +// 7.2.95A +type AVP_Grouped Location_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Location-Type (1244) 3GPP (10415) +// 7.2.96 +type AVP_Grouped Location_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Low-Balance-Indication (2020) 3GPP (10415) +// 7.2.97 +type enumerated Low_Balance_Indication +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Low-Priority-Indicator (2602) 3GPP (10415) +// 7.2.97A +type enumerated Low_Priority_Indicator +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: MBMS-Charged-Party (2323) 3GPP (10415) +// 7.2.97B +type enumerated MBMS_Charged_Party +{ + CONTENT_PROVIDER (0), + SUBSCRIBER (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: MBMS-GW-Address (2307) 3GPP (10415) +// 7.2.98 +type AVP_Address MBMS_GW_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MBMS-Information (880) 3GPP (10415) +// 7.2.99 +type AVP_Grouped MBMS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MBMS-User-Service-Type (1225) 3GPP (10415) +// 7.2.100 +type enumerated MBMS_User_Service_Type +{ + DOWNLOAD (1), + STREAMING (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Media-Initiator-Flag (882) 3GPP (10415) +// 7.2.101 +type enumerated Media_Initiator_Flag +{ + CALLED_PARTY (0), + CALLING_PARTY (1), + UNKNOWN (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Media-Initiator-Party (1288) 3GPP (10415) +// 7.2.102 +type AVP_UTF8String Media_Initiator_Party; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Message-Body (889) 3GPP (10415) +// 7.2.103 +type AVP_Grouped Message_Body; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Message-Class (1213) 3GPP (10415) +// 7.2.104 +type AVP_Grouped Message_Class; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Message-ID (1210) 3GPP (10415) +// 7.2.105 +type AVP_UTF8String Message_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Message-Size (1212) 3GPP (10415) +// 7.2.106 +type AVP_Unsigned32 Message_Size; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Message-Type (1211) 3GPP (10415) +// 7.2.107 +type enumerated Message_Type +{ + M_SEMD_REQ (1), + M_SEMD_CONF (2), + M_NOTIFICATION_IND (3), + M_NOTIFYRESP_IND (4), + M_RETRIEVE_CONF (5), + M_ACKNOWLEDGE_IND (6), + M_DELIVERY_IND (7), + M_READ_REC_IND (8), + M_READ_ORIG_IND (9), + M_FORWARD_REQ (10), + M_FORWARD_CONF (11), + M_MBOX_STORE_CONF (12), + M_MBOX_VIEW_CONF (13), + M_MBOX_UPLOAD_CONF (14), + M_MBOX_DELETE_CONF (15) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: MM-Content-Type (1203) 3GPP (10415) +// 7.2.108 +type AVP_Grouped MM_Content_Type; + + +// 3GPP TS 32.299 V13.9.0 +// AVP: MMBox-Storage-Requested (1248) 3GPP (10415) +// 7.2.109 +type enumerated MMBox_Storage_Requested +{ + NO (0), + YES (1) +} +// 3GPP TS 32.299 V13.9.0 +// AVP: MMS-Information (877) 3GPP (10415) +// 7.2.110 +type AVP_Grouped MMS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MMTel-Information (2030) 3GPP (10415) +// 7.2.111 +type AVP_Grouped MMTel_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MMTel-SService-Type (2031) 3GPP (10415) +// 7.2.111A +type AVP_Unsigned32 MMTel_SService_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitored-PLMN-Identifier (3430) 3GPP (10415) +// 7.2.111Aa +type AVP_UTF8String Monitored_PLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-Event-Configuration-Activity (3919) 3GPP (10415) +// 7.2.111AaA +type enumerated Monitoring_Event_Configuration_Activity +{ + CREATE (0), + TRANSFER (1), + UPDATE (2), + DELETE (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-Event-Funtionality (3922) 3GPP (10415) +// 7.2.111AaB +type enumerated Monitoring_Event_Funtionality +{ + CONFIGURATION (0), + REPORTING (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-Event-Information (3921) 3GPP (10415) +// 7.2.111AaC +type AVP_Grouped Monitoring_Event_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-Event-Report-Data (3920) 3GPP (10415) +// 7.2.111AaD +type AVP_Grouped Monitoring_Event_Report_Data; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-Event-Report-Number (3923) 3GPP (10415) +// 7.2.111AaE +type AVP_Unsigned32 Monitoring_Event_Report_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-UE-HPLMN-Identifier (3431) 3GPP (10415) +// 7.2.111Ab +type AVP_UTF8String Monitoring_UE_HPLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-UE-Identifier (3432) 3GPP (10415) +// 7.2.111Ac +type AVP_UTF8String Monitoring_UE_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Monitoring-UE-VPLMN-Identifier (3433) 3GPP (10415) +// 7.2.111Ad +type AVP_UTF8String Monitoring_UE_VPLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MSC-Address (3417) 3GPP (10415) +// 7.2.111B +type AVP_OctetString MSC_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: MTC-IWF-Address (3406) 3GPP (10415) +// 7.2.111C +type AVP_Address MTC_IWF_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Neighbour-Node-Address (2705) 3GPP (10415) +// 7.2.111D +type AVP_Address Neighbour_Node_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Network-Call-Reference-Number (3418) 3GPP (10415) +// 7.2.111E +type AVP_OctetString Network_Call_Reference_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Next-Tariff (2057) 3GPP (10415) +// 7.2.112 +type AVP_Grouped Next_Tariff; + +// 3GPP TS 32.299 V13.9.0 +// AVP: NNI-Information (2703) 3GPP (10415) +// 7.2.112A +type AVP_Grouped NNI_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: NIDD-Submission (3928) 3GPP (10415) +// 7.2.112aA +type AVP_Grouped NIDD_Submission; + +// 3GPP TS 32.299 V13.9.0 +// AVP: NNI-Type (2704) 3GPP (10415) +// 7.2.112B +type enumerated NNI_Type +{ + Non_Roaming (0), + Roaming_Without_Loopback (1), + Roaming_With_Loopback (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Node-Functionality (862) 3GPP (10415) +// 7.2.113 +type enumerated Node_Functionality +{ + S_CSCF (0), + P_CSCF (1), + I_CSCF (2), + MRFC (3), + MGCF (4), + BGCF (5), + AS (6), + IBCF (7), + S_GW (8), + P_GW (9), + HSGW (10), + E_CSCF (11), + MME (12), + TRF (13), + TF (14), + ATCF (15), + Proxy_Function (16), + ePDG (17), + TDF (18), + TWAG (19), + SCEF (20), + IWK_SCEF (21) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Node-Id (2064) 3GPP (10415) +// 7.2.114 +type AVP_UTF8String Node_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-Of-Diversions (2034) 3GPP (10415) +// 7.2.115 +type AVP_Unsigned32 Number_Of_Diversions; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-of-Messages-Sent (2019) 3GPP (10415) +// 7.2.116 +type AVP_Unsigned32 Number_of_Messages_Sent; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-Of-Participants (885) 3GPP (10415) +// 7.2.117 +type AVP_Unsigned32 Number_Of_Participants; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-Of-Received-Talk-Bursts (1282) 3GPP (10415) +// 7.2.118 +type AVP_Unsigned32 Number_Of_Received_Talk_Bursts; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-Of-Talk-Bursts (1283) 3GPP (10415) +// 7.2.119 +type AVP_Unsigned32 Number_Of_Talk_Bursts; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Number-Portability-Routing-Information (2024) 3GPP (10415) +// 7.2.120 +type AVP_UTF8String Number_Portability_Routing_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Offline-Charging (1278) 3GPP (10415) +// 7.2.121 +type AVP_Grouped Offline_Charging; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Online-Charging-Flag (2303) 3GPP (10415) +// 7.2.122 +type enumerated Online_Charging_Flag +{ + ECF_ADDRESS_NOT_PROVIDED (0), + ECF_ADDRESS_PROVIDED (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originating-IOI (839) 3GPP (10415) +// 7.2.123 +type AVP_UTF8String Originating_IOI; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originator (864) 3GPP (10415) +// 7.2.124 +type enumerated Originator +{ + CALLING_PARTY (0), + CALLED_PARTY (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originator-Address (886) 3GPP (10415) +// 7.2.125 +type AVP_Grouped Originator_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originator-Interface (2009) 3GPP (10415) +// 7.2.126 +type AVP_Grouped Originator_Interface; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originator-Received-Address (2027) 3GPP (10415) +// 7.2.127 +type AVP_Grouped Originator_Received_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Originating-SCCP-Address (2008) 3GPP (10415) +// 7.2.128 +type AVP_Address Originating_SCCP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Outgoing-Session-Id (2320) 3GPP (10415) +// 7.2.128A +type AVP_UTF8String Outgoing_Session_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Outgoing-Trunk-Group-Id (853) 3GPP (10415) +// 7.2.129 +type AVP_UTF8String Outgoing_Trunk_Group_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Participants-Involved (887) 3GPP (10415) +// 7.2.130 +type AVP_UTF8String Participants_Involved; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Participant-Group (1260) 3GPP (10415) +// 7.2.131 +type AVP_Grouped Participant_Group; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Participant-Access-Priority (1259) 3GPP (10415) +// 7.2.132 +type enumerated Participant_Access_Priority +{ + PRE_EMPTIVE_PRIORITY (1), + HIGH_PRIORITY (2), + NORMAL_PRIORITY (3), + LOW_PRIORITY (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Participant-Action-Type (2049) 3GPP (10415) +// 7.2.133 +type enumerated Participant_Action_Type +{ + CREATE_CONF (0), + JOIN_CONF (1), + INVITE_INTO_CONF (2), + QUIT_CONF (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PC3-Control-Protocol-Cause (3434) 3GPP (10415) +// 7.2.135A +type AVP_Integer32 PC3_Control_Protocol_Cause; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PC3-EPC-Control-Protocol-Cause (3435) 3GPP (10415) +// 7.2.135B +type AVP_Integer32 PC3_EPC_Control_Protocol_Cause; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PDN-Connection-Charging-ID (2050) 3GPP (10415) +// 7.2.136 +type AVP_Unsigned32 PDN_Connection_Charging_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PDP-Address (1227) 3GPP (10415) +// 7.2.137 +type AVP_Address PDP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PDP-Address-Prefix-Length (2606) 3GPP (10415) +// 7.2.137A +type AVP_Unsigned32 PDP_Address_Prefix_Length; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PDP-Context-Type (1247) 3GPP (10415) +// 7.2.138 +type enumerated PDP_Context_Type +{ + PRIMARY (0), + SECONDARY (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Play-Alternative (3913) 3GPP (10415) +// 7.2.138A +type enumerated Play_Alternative +{ + SERVED_PARTY (0), + REMOTE_PARTY (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Change-Conditions (1261) 3GPP (10415) +// 7.2.139 +type enumerated PoC_Change_Conditions +{ + SERVICE_CHANGE (0), + VOLUME_LIMIT (1), + TIME_LIMIT (2), + NUMBER_OF_TALK_BURST_LIMIT (3), + NUMBER_OF_ACTIVE_PARTICIPANTS (4), + TARIFF_TIME (5) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Change-Time (1262) 3GPP (10415) +// 7.2.140 +type AVP_Time PoC_Change_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Controlling-Address (858) 3GPP (10415) +// 7.2.141 +type AVP_UTF8String PoC_Controlling_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Event-Type (2025) 3GPP (10415) +// 7.2.142 +type enumerated PoC_Event_Type +{ + NORMAL (0), + INSTANT_PERSONAL_ALERT_EVENT (1), + POC_GROUP_ADVERTISEMENT_EVENT (2), + EARLY_SESSION_SETTING_UP_EVENT (3), + POC_TALK_BURST (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Group-Name (859) 3GPP (10415) +// 7.2.143 +type AVP_UTF8String PoC_Group_Name; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Information (879) 3GPP (10415) +// 7.2.144 +type AVP_Grouped PoC_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Server-Role (883) 3GPP (10415) +// 7.2.145 +type enumerated PoC_Server_Role +{ + PARTICIPATING_POC_SERVER (0), + CONTROLLING_POC_SERVER (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Session-Id (1229) 3GPP (10415) +// 7.2.146 +type AVP_UTF8String PoC_Session_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Session-Initiation-Type (1277) 3GPP (10415) +// 7.2.147 +type enumerated PoC_Session_Initiation_Type +{ + PRE_ESTABLISHED (0), + ON_DEMAND (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-Session-Type (884) 3GPP (10415) +// 7.2.148 +type enumerated PoC_Session_Type +{ + ONE_TO_ONE_POC_SESSION (0), + CHAT_POC_GROUP_SESSION (1), + PRE_ARRANGED_POC_GROUP_SESSION (2), + AD_HOC_POC_GROUP_SESSION (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-User-Role (1252) 3GPP (10415) +// 7.2.149 +type AVP_Grouped PoC_User_Role; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-User-Role-IDs (1253) 3GPP (10415) +// 7.2.150 +type AVP_UTF8String PoC_User_Role_IDs; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PoC-User-Role-info-Units (1254) 3GPP (10415) +// 7.2.151 +type enumerated PoC_User_Role_info_Units +{ + MODERATOR (1), + DISPATCHER (2), + SESSION_OWNER (3), + SESSION_PARTICIPANT (4) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Positioning-Data (1245) 3GPP (10415) +// 7.2.152 +type AVP_UTF8String Positioning_Data; + + +// 3GPP TS 32.299 V13.9.0 +// AVP: Preferred-AoC-Currency (2315) 3GPP (10415) +// 7.2.153 +type AVP_Unsigned32 Preferred_AoC_Currency; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Priority (1209) 3GPP (10415) +// 7.2.154 +type enumerated Priority +{ + LOW (0), + NORMAL (1), + HIGH (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Privacy-Indicator (3915) 3GPP (10415) +// 7.2.154aA +type enumerated Privacy_Indicator +{ + NOT_PRIVATE (0), + PRIVATE (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-3rd-Party-Application-ID (3440) 3GPP (10415) +// 7.2.154A +type AVP_UTF8String ProSe_3rd_Party_Application_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Direct-Communication-Reception-Data-Container (3461) 3GPP (10415) +// 7.2.154Aa +type AVP_Grouped ProSe_Direct_Communication_Reception_Data_Container; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Direct-Communication-Transmission-Data-Container (3441) 3GPP (10415) +// 7.2.154B +type AVP_Grouped ProSe_Direct_Communication_Transmission_Data_Container; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Direct-Discovery-Model (3442) 3GPP (10415) +// 7.2.154C +type enumerated ProSe_Direct_Discovery_Model +{ + MODEL_A (0), + MODEL_B (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Event-Type (3443) 3GPP (10415) +// 7.2.154D +type enumerated ProSe_Event_Type +{ + ANNOUNCING (0), + MONITORING (1), + MATCH_REPORT (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Function-IP-Address (3444) 3GPP (10415) +// 7.2.154E +type AVP_Address ProSe_Function_IP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Function-PLMN-Identifier (3457) 3GPP (10415) +// 7.2.154F +type AVP_UTF8String ProSe_Function_PLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Functionality (3445) 3GPP (10415) +// 7.2.154G +type enumerated ProSe_Functionality +{ + DIRECT_DISCOVERY (0), + EPC_LEVEL_DISCOVERY (1), + DIRECT_COMMUNICATION (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Group-IP-Multicast-Address (3446) 3GPP (10415) +// 7.2.154H +type AVP_Address ProSe_Group_IP_Multicast_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Information (3447) 3GPP (10415) +// 7.2.154I +type AVP_Grouped ProSe_Information; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Range-Class (3448) 3GPP (10415) +// 7.2.154J +type AVP_Unsigned32 ProSe_Range_Class; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Reason-For-Cancellation (3449) 3GPP (10415) +// 7.2.154K +type enumerated ProSe_Reason_For_Cancellation +{ + PROXIMITY_ALERT_SENT (0), + TIME_EXPIRED_WITH_NO_RENEWAL (1), + REQUESTOR_CANCELLATION (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Request-Timestamp (3450) 3GPP (10415) +// 7.2.154L +type AVP_Time ProSe_Request_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Role-Of-UE (3451) 3GPP (10415) +// 7.2.154M +type enumerated ProSe_Role_Of_UE +{ + ANNOUNCING_UE (0), + MONITORING_UE (1), + REQUESTOR_UE (2), + REQUESTED_UE (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-Source-IP-Address (3452) 3GPP (10415) +// 7.2.154N +type AVP_Address ProSe_Source_IP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: ProSe-UE-ID (3453) 3GPP (10415) +// 7.2.154O +type AVP_OctetString ProSe_UE_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Proximity-Alert-Indication (3454) 3GPP (10415) +// 7.2.154P +type enumerated Proximity_Alert_Indication +{ + ALERT (0), + NO_ALERT (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Proximity-Alert-Timestamp (3455) 3GPP (10415) +// 7.2.154Q +type AVP_Time Proximity_Alert_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Proximity-Cancellation-Timestamp (3456) 3GPP (10415) +// 7.2.154R +type AVP_Time Proximity_Cancellation_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PS-Append-Free-Format-Data (867) 3GPP (10415) +// 7.2.155 +type enumerated PS_Append_Free_Format_Data +{ + APPEND (0), + OVERWRITE (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: PS-Free-Format-Data (866) 3GPP (10415) +// 7.2.156 +type AVP_OctetString PS_Free_Format_Data; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PS-Furnish-Charging-Information (865) 3GPP (10415) +// 7.2.157 +type AVP_Grouped PS_Furnish_Charging_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: PS-Information (874) 3GPP (10415) +// 7.2.158 +type AVP_Grouped PS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Quota-Consumption-Time (881) 3GPP (10415) +// 7.2.159 +type AVP_Unsigned32 Quota_Consumption_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Quota-Holding-Time (871) 3GPP (10415) +// 7.2.160 +type AVP_Unsigned32 Quota_Holding_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Quota-Indicator (3912) 3GPP (10415) +// 7.2.160aA +type enumerated Quota_Indicator +{ + QUOTA_IS_NOT_USED_DURING_PLAYBACK (0), + QUOTA_IS_USED_DURING_PLAYBACK (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Radio-Frequency (3462) 3GPP (10415) +// 7.2.160A +type AVP_OctetString Radio_Frequency; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Radio-Parameter-Set-Info (3463) 3GPP (10415) +// 7.2.160B +type AVP_Grouped Radio_Parameter_Set_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Radio-Parameter-Set-Values (3464) 3GPP (10415) +// 7.2.160C +type AVP_OctetString Radio_Parameter_Set_Values; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Radio-Resources-Indicator (3465) 3GPP (10415) +// 7.2.160D +type AVP_Integer32 Radio_Resources_Indicator; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Rate-Control-Max-Message-Size (3937) 3GPP (10415) +// 7.2.160E +type AVP_Integer32 Rate_Control_Max_Message_Size; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Rate-Control-Max-Rate (3938) 3GPP (10415) +// 7.2.160F +type AVP_Integer32 Rate_Control_Max_Rate; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Rate-Control-Time-Unit (3939) 3GPP (10415) +// 7.2.160G +type AVP_Integer32 Rate_Control_Time_Unit; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Rate-Element (2058) 3GPP (10415) +// 7.2.161 +type AVP_Grouped Rate_Element; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Read-Reply-Report-Requested (1222) 3GPP (10415) +// 7.2.162 +type enumerated Read_Reply_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Real-Time-Tariff-Information (2305) 3GPP (10415) +// 7.2.164 +type AVP_Grouped Real_Time_Tariff_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Reason-Header (3401) 3GPP (10415) +// 7.2.164A +type AVP_UTF8String Reason_Header; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Received-Talk-Burst-Time (1284) 3GPP (10415) +// 7.2.165 +type AVP_Unsigned32 Received_Talk_Burst_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Received-Talk-Burst-Volume (1285) 3GPP (10415) +// 7.2.166 +type AVP_Unsigned32 Received_Talk_Burst_Volume; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Recipient-Address (1201) 3GPP (10415) +// 7.2.167 +type AVP_Grouped Recipient_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Recipient-Info (2026) 3GPP (10415) +// 7.2.168 +type AVP_Grouped Recipient_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Recipient-Received-Address (2028) 3GPP (10415) +// 7.2.169 +type AVP_Grouped Recipient_Received_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Recipient-SCCP-Address (2010) 3GPP (10415) +// 7.2.170 +type AVP_Address Recipient_SCCP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Refund-Information (2022) 3GPP (10415) +// 7.2.171 +type AVP_OctetString Refund_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Relationship-Mode (2706) 3GPP (10415) +// 7.2.171A +type enumerated Relationship_Mode +{ + Trusted (0), + Non_Trusted (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Related-Change-Condition-Information (3925) 3GPP (10415) +// 7.2.171Aa +type AVP_Grouped Related_Change_Condition_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Related-Trigger (3926) 3GPP (10415) +// 7.2.171Ab +type AVP_Grouped Related_Trigger; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Related-IMS-Charging-Identifier (2711) 3GPP (10415) +// 7.2.171B +type AVP_UTF8String Related_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Related-IMS-Charging-Identifier-Node (2712) 3GPP (10415) +// 7.2.171C +type AVP_Address Related_IMS_Charging_Identifier_Node; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Remaining-Balance (2021) 3GPP (10415) +// 7.2.172 +type AVP_Grouped Remaining_Balance; + +// 3GPP TS 32.299 V8.5.0 +// AVP: Reply-Applic-ID (1223) 3GPP (10415) +// 7.2.173 +type AVP_UTF8String Reply_Applic_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Reply-Path-Requested (2011) 3GPP (10415) +// 7.2.174 +type enumerated Reply_Path_Requested +{ + NO_REPLY_PATH_SET (0), + REPLY_PATH_SET (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Reporting-Reason (872) 3GPP (10415) +// 7.2.175 +type enumerated Reporting_Reason +{ + THRESHOLD (0), + QHT (1), + FINAL (2), + QUOTA_EXHAUSTED (3), + VALIDITY_TIME (4), + OTHER_QUOTA_TYPE (5), + RATING_CONDITION_CHANGE (6), + FORCED_REAUTHORISATION (7), + POOL_EXHAUSTED (8) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Requested-Party-Address (1251) 3GPP (10415) +// 7.2.176 +type AVP_UTF8String Requested_Party_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Requested-PLMN-Identifier (3436) 3GPP (10415) +// 7.2.176A +type AVP_UTF8String Requested_PLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Requestor-PLMN-Identifier (3437) 3GPP (10415) +// 7.2.176B +type AVP_UTF8String Requestor_PLMN_Identifier; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Role-Of-Node (829) 3GPP (10415) +// Note: not compatible with V9.2.0 or before (see spec.) +// 7.2.177 +type enumerated Role_Of_Node +{ + ORIGINATING_ROLE (0), + TERMINATING_ROLE (1), + FORWARDING_ROLE (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Role-Of-ProSe-Function (3438) 3GPP (10415) +// 7.2.177aA +type enumerated Role_Of_ProSe_Function +{ + HPLMN (0), + VPLMN (1), + LOCAL_PLMN (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Route-Header-Received (3403) 3GPP (10415) +// 7.2.177A +type AVP_UTF8String Route_Header_Received; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Route-Header-Transmitted (3404) 3GPP (10415) +// 7.2.177B +type AVP_UTF8String Route_Header_Transmitted; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Scale-Factor (2059) 3GPP (10415) +// 7.2.178 +type AVP_Grouped Scale_Factor; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SCS-Address (3941) 3GPP (10415) +// 7.2.178A +type AVP_Address SCS_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SCS-AS-Address (3940) 3GPP (10415) +// 7.2.178B +type AVP_Grouped SCS_AS_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SCS-Realm (3942) 3GPP (10415) +// 7.2.178C +type AVP_DiameterIdentity SCS_Realm; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Answer-Timestamp (1275) 3GPP (10415) +// 7.2.179 +type AVP_Time SDP_Answer_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Media-Component (843) 3GPP (10415) +// 7.2.180 +type AVP_Grouped SDP_Media_Component; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Media-Description (845) 3GPP (10415) +// 7.2.181 +type AVP_UTF8String SDP_Media_Description; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Media-Name (844) 3GPP (10415) +// 7.2.182 +type AVP_UTF8String SDP_Media_Name; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Offer-Timestamp (1274) 3GPP (10415) +// 7.2.183 +type AVP_Time SDP_Offer_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Session-Description (842) 3GPP (10415) +// 7.2.184 +type AVP_UTF8String SDP_Session_Description; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-TimeStamps (1273) 3GPP (10415) +// 7.2.185 +type AVP_Grouped SDP_TimeStamps; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SDP-Type (2036) 3GPP (10415) +// 7.2.186 +type enumerated SDP_Type +{ + SDP_OFFER (0), + SDP_ANSWER (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Session-Direction (2707) 3GPP (10415) +// 7.2.186A +type enumerated Session_Direction +{ + Inbound (0), + Outbound (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Served-Party-IP-Address (848) 3GPP (10415) +// 7.2.187 +type AVP_Address Served_Party_IP_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Data-Container (2040) 3GPP (10415) +// 7.2.189 +type AVP_Grouped Service_Data_Container; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Id (855) 3GPP (10415) +// 7.2.190 +type AVP_UTF8String Service_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Generic-Information (1256) 3GPP (10415) +// 7.2.191 +type AVP_Grouped Service_Generic_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Information (873) 3GPP (10415) +// 7.2.192 +type AVP_Grouped Service_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Mode (2032) 3GPP (10415) +// 7.2.193 +type AVP_Unsigned32 Service_Mode; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Specific-Data (863) 3GPP (10415) +// 7.2.194 +type AVP_UTF8String Service_Specific_Data; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Specific-Info (1249) 3GPP (10415) +// 7.2.195 +type AVP_Grouped Service_Specific_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Service-Specific-Type (1257) 3GPP (10415) +// 7.2.196 +type AVP_Unsigned32 Service_Specific_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Serving-Node-Identity (3929) 3GPP (10415) +// 7.2.197A +type AVP_DiameterIdentity Serving_Node_Identity; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Serving-Node-Type (2047) 3GPP (10415) +// 7.2.198 +type enumerated Serving_Node_Type +{ + SGSN (0), + PMIPSGW (1), + GTPSGW (2), + ePDG (3), + hSGW (4), + MME (5), + TWAN (6) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SGi-PtP-Tunnelling-Method (3931) 3GPP (10415) +// 7.2.198A +type enumerated SGi_PtP_Tunnelling_Method +{ + UDP_IP_BASED (0), + Others (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SGSN-Address (1228) 3GPP (10415) +// 7.2.199 +type AVP_Address SGSN_Address; + + +// 3GPP TS 32.299 V13.9.0 +// AVP: SGW-Address (2067) 3GPP (10415) +// 7.2.199A +type AVP_Address SGW_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SGW-Change (2065) 3GPP (10415) +// 7.2.200 +type enumerated SGW_Change +{ + ACR_Start_NOT_due_to_SGW_Change (0), + ACR_Start_due_to_SGW_Change (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SIP-Method (824) 3GPP (10415) +// 7.2.201 +type AVP_UTF8String SIP_Method; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SIP-Request-Timestamp (834) 3GPP (10415) +// 7.2.202 +type AVP_Time SIP_Request_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SIP-Request-Timestamp-Fraction (2301) 3GPP (10415) +// 7.2.203 +type AVP_Unsigned32 SIP_Request_Timestamp_Fraction; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SIP-Response-Timestamp (835) 3GPP (10415) +// 7.2.204 +type AVP_Time SIP_Response_Timestamp; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SIP-Response-Timestamp-Fraction (2302) 3GPP (10415) +// 7.2.205 +type AVP_Unsigned32 SIP_Response_Timestamp_Fraction; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Device-Trigger-Indicator (3407) 3GPP (10415) +// 7.2.205A +type enumerated SM_Device_Trigger_Indicator +{ + Not_Device_Trigger (0), + Device_Trigger (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Device-Trigger-Information (3405) 3GPP (10415) +// 7.2.205B +type AVP_Grouped SM_Device_Trigger_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Discharge-Time (2012) 3GPP (10415) +// 7.2.206 +type AVP_Time SM_Discharge_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Message-Type (2007) 3GPP (10415) +// 7.2.207 +type enumerated SM_Message_Type +{ + SUBMISSION (0), + DELIVERY_REPORT (1), + SM_SERVICE_REQUEST (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Protocol-ID (2013) 3GPP (10415) +// 7.2.208 +type AVP_OctetString SM_Protocol_ID; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Sequence-Number (3408) 3GPP (10415) +// 7.2.208A +type AVP_Unsigned32 SM_Sequence_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Status (2014) 3GPP (10415) +// 7.2.209 +type AVP_OctetString SM_Status; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-User-Data-Header (2015) 3GPP (10415) +// 7.2.210 +type AVP_OctetString SM_User_Data_Header; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SMS-Information (2000) 3GPP (10415) +// 7.2.211 +type AVP_Grouped SMS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SMS-Node (2016) 3GPP (10415) +// 7.2.212 +type enumerated SMS_Node +{ + SMS_ROUTER (0), + IP_SM_GW (1), + SMS_ROUTER_AND_IP_SM_GW (2), + SMS_SC (3) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: SMS-Result (3409) 3GPP (10415) +// 7.2.212A +type AVP_Unsigned32 SMS_Result; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.9.0 +// AVP: SM-Service-Type (2029) 3GPP (10415) +// 7.2.213 +type AVP_Unsigned32 SM_Service_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: SMSC-Address (2017) 3GPP (10415) +// 7.2.214 +type AVP_Address SMSC_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Start-Of-Charging (3419) 3GPP (10415) +// 7.2.214A +type AVP_Time Start_Of_Charging; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Start-Time (2041) 3GPP (10415) +// 7.2.215 +type AVP_Time Start_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Status-AS-Code (2702) 3GPP (10415) +// 7.2.215A +type enumerated Status_AS_Code +{ + code_4xx (0), + code_5xx (1), + Timeout (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Stop-Time (2042) 3GPP (10415) +// 7.2.216 +type AVP_Time Stop_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Submission-Time (1202) 3GPP (10415) +// 7.2.217 +type AVP_Time Submission_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Subscriber-Role (2033) 3GPP (10415) +// 7.2.218 +type enumerated Subscriber_Role +{ + ORIGINATING (0), + TERMINATING (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Supplementary-Service (2048) 3GPP (10415) +// 7.2.219 +type AVP_Grouped Supplementary_Service; + +// 3GPP TS 32.299 V13.9.0 +// AVP: TAD-Identifier (2717) 3GPP (10415) +// 7.2.219A +type enumerated TAD_Identifier +{ + CS (0), + PS (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Talk-Burst-Exchange (1255) 3GPP (10415) +// 7.2.220 +type AVP_Grouped Talk_Burst_Exchange; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Talk-Burst-Time (1286) 3GPP (10415) +// 7.2.221 +type AVP_Unsigned32 Talk_Burst_Time; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Talk-Burst-Volume (1287) 3GPP (10415) +// 7.2.222 +type AVP_Unsigned32 Talk_Burst_Volume; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Tariff-Information (2060) 3GPP (10415) +// 7.2.223 +type AVP_Grouped Tariff_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Tariff-XML (2306) 3GPP (10415) +// 7.2.224 +type AVP_UTF8String Tariff_XML; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Teleservice (3413) 3GPP (10415) +// 7.2.224A +type AVP_OctetString Teleservice; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Terminating-IOI (840) 3GPP (10415) +// 7.2.225 +type AVP_UTF8String Terminating_IOI; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-First-Reception (3466) 3GPP (10415) +// 7.2.225A +type AVP_Time Time_First_Reception; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-First-Transmission (3467) 3GPP (10415) +// 7.2.225B +type AVP_Time Time_First_Transmission; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-First-Usage (2043) 3GPP (10415) +// 7.2.226 +type AVP_Time Time_First_Usage; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Indicator (3911) 3GPP (10415) +// 7.2.226A +type AVP_Unsigned32 Time_Indicator; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Last-Usage (2044) 3GPP (10415) +// 7.2.227 +type AVP_Time Time_Last_Usage; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Quota-Mechanism (1270) 3GPP (10415) +// 7.2.228 +type AVP_Grouped Time_Quota_Mechanism; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Quota-Threshold (868) 3GPP (10415) +// 7.2.229 +type AVP_Unsigned32 Time_Quota_Threshold; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Quota-Type (1271) 3GPP (10415) +// 7.2.230 +type enumerated Time_Quota_Type +{ + DISCRETE_TIME_PERIOD (0), + CONTINUOUS_TIME_PERIOD (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Stamps (833) 3GPP (10415) +// 7.2.231 +type AVP_Grouped Time_Stamps; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Time-Usage (2045) 3GPP (10415) +// 7.2.232 +type AVP_Unsigned32 Time_Usage; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Traffic-Data-Volumes (2046) 3GPP (10415) +// 7.2.233 +type AVP_Grouped Traffic_Data_Volumes; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Transcoder-Inserted-Indication (2605) 3GPP (10415) +// 7.2.233A +type enumerated Transcoder_Inserted_Indication +{ + TRANSCODER_NOT_INSERTED (0), + TRANSCODER_INSERTED (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Transit-IOI-List (2701) 3GPP (10415) +// 7.2.233B +type AVP_UTF8String Transit_IOI_List; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Transmitter-Info (3468) 3GPP (10415) +// 7.2.233C +type AVP_Grouped Transmitter_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Token-Text (1215) 3GPP (10415) +// 7.2.234 +type AVP_UTF8String Token_Text; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Trigger (1264) 3GPP (10415) +// 7.2.235 +type AVP_Grouped Trigger; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Trigger-Type (870) 3GPP (10415) +// 7.2.236 +type enumerated Trigger_Type +{ + CHANGE_IN_SGSN_IP_ADDRESS (1), + CHANGE_IN_QOS (2), + CHANGE_IN_LOCATION (3), + CHANGE_IN_RAT (4), + CHANGE_IN_UE_TIMEZONE (5), + CHANGEINQOS_TRAFFIC_CLASS (10), + CHANGEINQOS_RELIABILITY_CLASS (11), + CHANGEINQOS_DELAY_CLASS (12), + CHANGEINQOS_PEAK_THROUGHPUT (13), + CHANGEINQOS_PRECEDENCE_CLASS (14), + CHANGEINQOS_MEAN_THROUGHPUT (15), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK (16), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK (17), + CHANGEINQOS_RESIDUAL_BER (18), + CHANGEINQOS_SDU_ERROR_RATIO (19), + CHANGEINQOS_TRANSFER_DELAY (20), + CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY (21), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK (22), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK (23), + CHANGEINQOS_APN_AGGREGATE_MAXIMUM_BIT_RATE (24), + CHANGEINLOCATION_MCC (30), + CHANGEINLOCATION_MNC (31), + CHANGEINLOCATION_RAC (32), + CHANGEINLOCATION_LAC (33), + CHANGEINLOCATION_CellId (34), + CHANGEINLOCATION_TAC (35), + CHANGEINLOCATION_ECGI (36), + CHANGE_IN_MEDIA_COMPOSITION (40), + CHANGE_IN_PARTICIPANTS_NMB (50), + CHANGE_IN_THRSHLD_OF_PARTICIPANTS_NMB (51), + CHANGE_IN_USER_PARTICIPATING_TYPE (52), + CHANGE_IN_SERVICE_CONDITION (60), + CHANGE_IN_SERVING_NODE (61), + CHANGE_IN_ACCESS_FOR_A_SERVICE_DATA_FLOW (62), + CHANGE_IN_USER_CSG_INFORMATION (70), + CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION (71), + CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION (72), + CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA (73), + CHANGE_IN_SERVING_PLMN_RATE_CONTROL (74), + CHANGE_IN_APN_RATE_CONTROL (75) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Trunk-Group-Id (851) 3GPP (10415) +// 7.2.237 +type AVP_Grouped Trunk_Group_Id; + +// 3GPP TS 32.299 V13.9.0 +// AVP: TWAG-Address (3903) 3GPP (10415) +// 7.2.237Ba +type AVP_Address TWAG_Address; + +// 3GPP TS 32.299 V13.9.0 +// AVP: TWAN-User-Location-Info (2714) 3GPP (10415) +// 7.2.237C +type AVP_Grouped TWAN_User_Location_Info; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V13.9.0 +// AVP: Type-Number (1204) 3GPP (10415) +// 7.2.238 +type AVP_Unsigned32 Type_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: UNI-PDU-CP-Only-Flag (3932) 3GPP (10415) +// 7.2.238A +type enumerated UNI_PDU_CP_Only_Flag +{ + UNI_PDU_both_UP_CP (0), + UNI_PDU_CP_Only (1) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: Unit-Cost (2061) 3GPP (10415) +// 7.2.239 +type AVP_Grouped Unit_Cost; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Unit-Quota-Threshold (1226) 3GPP (10415) +// 7.2.240 +type AVP_Unsigned32 Unit_Quota_Threshold; + +// 3GPP TS 32.299 V13.9.0 +// AVP: User-CSG-Information (2319) 3GPP (10415) +// 7.2.240A +type AVP_Grouped User_CSG_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Usage-Information-Report-Sequence-Number (3439) 3GPP (10415) +// 7.2.240B +type AVP_Integer32 Usage_Information_Report_Sequence_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: User-Participating-Type (1279) 3GPP (10415) +// 7.2.241 +type enumerated User_Participating_Type +{ + NORMAL (0), + NW_POC_BOX (1), + UE_POC_BOX (2) +} + +// 3GPP TS 32.299 V13.9.0 +// AVP: User-Session-Id (830) 3GPP (10415) +// 7.2.242 +type AVP_UTF8String User_Session_Id; + +// 3GPP TS 32.299 V13.9.0 CR0716 +// AVP: UWAN-User-Location-Info (3918) 3GPP (10415) +// 7.2.242aaA +type AVP_Grouped UWAN_User_Location_Info; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Variable-Part (3907) 3GPP (10415) +// 7.2.242aA +type AVP_Grouped Variable_Part; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Variable-Part-Order (3908) 3GPP (10415) +// 7.2.242aB +type AVP_Unsigned32 Variable_Part_Order; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Variable-Part-Type (3909) 3GPP (10415) +// 7.2.242aC +type AVP_Unsigned32 Variable_Part_Type; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Variable-Part-Value (3910) 3GPP (10415) +// 7.2.242aD +type AVP_UTF8String Variable_Part_Value; + +// 3GPP TS 32.299 V13.9.0 +// AVP: VCS-Information (3410) 3GPP (10415) +// 7.2.242A +type AVP_Grouped VCS_Information; + +// 3GPP TS 32.299 V13.9.0 +// AVP: VLR-Number (3420) 3GPP (10415) +// 7.2.242B +type AVP_OctetString VLR_Number; + +// 3GPP TS 32.299 V13.9.0 +// AVP: Volume-Quota-Threshold (869) 3GPP (10415) +// 7.2.243 +type AVP_Unsigned32 Volume_Quota_Threshold; + + diff --git a/src/CreditControl_IETF_RFC4006.ddf b/src/CreditControl_IETF_RFC4006.ddf index 54b21c1..21ad0eb 100644 --- a/src/CreditControl_IETF_RFC4006.ddf +++ b/src/CreditControl_IETF_RFC4006.ddf @@ -37,7 +37,7 @@ // // File: CreditControl_IETF_RFC4006.ddf // Description: DDF for DCC according to RFC 4006 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 1134 62 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_6a0.ddf b/src/CxDxInterface_3GPP_TS29229_6a0.ddf index d2d0a25..e4d7bd3 100644 --- a/src/CxDxInterface_3GPP_TS29229_6a0.ddf +++ b/src/CxDxInterface_3GPP_TS29229_6a0.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_6a0.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V6.10.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_840.ddf b/src/CxDxInterface_3GPP_TS29229_840.ddf index 2c89130..90505cc 100644 --- a/src/CxDxInterface_3GPP_TS29229_840.ddf +++ b/src/CxDxInterface_3GPP_TS29229_840.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_840.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V8.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_880.ddf b/src/CxDxInterface_3GPP_TS29229_880.ddf index 1f7f27e..e6c3eed 100644 --- a/src/CxDxInterface_3GPP_TS29229_880.ddf +++ b/src/CxDxInterface_3GPP_TS29229_880.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_880.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V8.8.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_920.ddf b/src/CxDxInterface_3GPP_TS29229_920.ddf index c96c6c3..13fdbea 100644 --- a/src/CxDxInterface_3GPP_TS29229_920.ddf +++ b/src/CxDxInterface_3GPP_TS29229_920.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_880.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V9.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_c30.ddf b/src/CxDxInterface_3GPP_TS29229_c30.ddf index 3e8a484..e65130f 100644 --- a/src/CxDxInterface_3GPP_TS29229_c30.ddf +++ b/src/CxDxInterface_3GPP_TS29229_c30.ddf @@ -11,7 +11,7 @@ // // File: CxDxInterface_3GPP_TS29229_c30.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V12.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf b/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf index 2ac2cb9..8871635 100644 --- a/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf +++ b/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf @@ -37,7 +37,7 @@ // // File: EricssonProprietaryCxDx.ddf // Description: DDF for Cx according to 1551-FAY 301 0059 Uen -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/DIAMETER_EncDec.cc b/src/DIAMETER_EncDec.cc index cb532ff..cb523de 100644 --- a/src/DIAMETER_EncDec.cc +++ b/src/DIAMETER_EncDec.cc @@ -37,7 +37,7 @@ // // File: DIAMETER_EncDec.cc // Description: Encoder/Decoder and external functions for DPMG -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -196,6 +196,14 @@ INTEGER f__DIAMETER__Dec__fast(const OCTETSTRING& pl__oct, PDU__DIAMETER &pl__pd return 0; } +void f_DIAMETER_log_hex(const char *prompt, const unsigned char *msg, + size_t length) +{ + if (prompt != NULL) TTCN_Logger::log_event_str(prompt); + TTCN_Logger::log_event("Size: %lu, Msg:", (unsigned long)length); + for (size_t i = 0; i < length; i++) TTCN_Logger::log_event(" %02x", msg[i]); +} + OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int data_len, const integerList& pl__codeList, const bool orderedList, int& bestFromGrouped){ const unsigned char *endp=temp+data_len; int avpLength = 0; @@ -210,7 +218,7 @@ OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int d //if the f_GetAVPByListOfCodesFromGroupedAVP function was called, the bestFromGrouped variable will be initialized, else: if(bestFromGrouped < 0)bestFromGrouped = codelist_size; - while(temp < endp) + while(temp + 8 < endp) { /* reading the avp code value*/ avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); @@ -220,6 +228,13 @@ OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int d /* calculating the length of the next AVP*/ avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + if(avpLength < 8) { + TTCN_Logger::begin_event( TTCN_WARNING ); + TTCN_Logger::log_event("Invalid AVP length: %d; ",avpLength); + f_DIAMETER_log_hex("AVP octets: ", temp - 5, endp - (temp + 5)); + TTCN_Logger::end_event(); + break; + } avpLength-=8; // length of AVP data = AVP length - 4 - Vendor ID length (calculated below) if(*(temp-1) & 0x80){ // skip vendor id, VMPxxxxx is just before the first length octet avpLength-=4; @@ -247,7 +262,7 @@ OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int d { if((const int)(pl__codeList[i]) == (int)avpCode) { - return OCTETSTRING(avpLength, temp); + return OCTETSTRING(avpLength > 0? avpLength:0, temp); } } }; @@ -288,7 +303,7 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, int bestAVP_length = 0; int bestFromGrouped = codelist_size; //Initializing the bestFromGrouped variable for the f_GetAVPByListOfCodesFromGroupedAVP function - while(temp < endp) + while(temp + 8 < endp) { /* reading the avp code value*/ avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); @@ -297,6 +312,13 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, /* calculating the length of the next AVP*/ avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + if(avpLength < 8) { + TTCN_Logger::begin_event( TTCN_WARNING ); + TTCN_Logger::log_event("Invalid AVP length: %d; msg: ",avpLength); + pl__oct.log(); + TTCN_Logger::end_event(); + break; + } avpLength-=8; // length of AVP data = AVP length - 4 - Vendor ID length (calculated below) if(*(temp-1) & 0x80){ // skip vendor id, VMPxxxxx is just before the first length octet avpLength-=4; @@ -309,7 +331,7 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, { if((const int)(pl__codeList[i]) == (int)avpCode) { - if(i == 0)return OCTETSTRING(avpLength, temp); //Found AVP with highest priority + if(i == 0)return OCTETSTRING(avpLength > 0? avpLength:0, temp); //Found AVP with highest priority avpFound = true; bestAVP = (unsigned char *)temp; bestAVP_length = avpLength; diff --git a/src/DIAMETER_EncDec.tpl b/src/DIAMETER_EncDec.tpl index 99baf01..5829102 100644 --- a/src/DIAMETER_EncDec.tpl +++ b/src/DIAMETER_EncDec.tpl @@ -36,7 +36,6 @@ ******************************************************************************/ #include "DIAMETER_Types.hh" -#define BUF_SIZE 65536 // this buffer is used on data reception and outgoing encoding #include <math.h> #include <stdlib.h> #include <sys/time.h> @@ -49,23 +48,23 @@ namespace DIAMETER__Types{ static const unsigned char os_h_or_e_id_octets[] = { 0, 0, 0, 0 }; static const OCTETSTRING os_h_or_e_id_oct(4, os_h_or_e_id_octets); -int encode_AVP_OctetString(unsigned char* & p, const AVP__OctetString& avp); -int encode_AVP_Integer(unsigned char* & p, const AVP__Integer32& avp); -int encode_AVP_Integer64(unsigned char* & p, const AVP__Integer64& avp); -int encode_AVP_Unsigned32(unsigned char* & p, const AVP__Unsigned32& avp); -int encode_AVP_Unsigned64(unsigned char* & p, const AVP__Unsigned64& avp); -int encode_AVP_Float32(unsigned char* & p, const AVP__Float32& avp); -int encode_AVP_Float64(unsigned char* & p, const AVP__Float64& avp); -int encode_AVP_Grouped(unsigned char* & p, const AVP__Grouped& avp); -int encode_AVP_Address(unsigned char* & p, const AVP__Address& avp); -int encode_AVP_IP_Address(unsigned char* & p, const AVP__IP__Address& avp); -int encode_AVP_Time(unsigned char* & p, const AVP__Time& avp); -int encode_AVP_UTF8String(unsigned char* & p, const AVP__UTF8String& avp); -int encode_AVP_DiameterIdentity(unsigned char* & p, const AVP__DiameterIdentity& avp); -int encode_AVP_DiameterURI(unsigned char* & p, const AVP__DiameterURI& avp); -int encode_AVP_IPFilterRule(unsigned char* & p, const AVP__IPFilterRule& avp); -int encode_AVP_QoSFilterRule(unsigned char* & p, const AVP__QoSFilterRule& avp); -int encode_AVP_enumerated(unsigned char* & p, const int& avp); +int encode_AVP_OctetString(TTCN_Buffer &p, const AVP__OctetString& avp); +int encode_AVP_Integer(TTCN_Buffer &p, const AVP__Integer32& avp); +int encode_AVP_Integer64(TTCN_Buffer &p, const AVP__Integer64& avp); +int encode_AVP_Unsigned32(TTCN_Buffer &p, const AVP__Unsigned32& avp); +int encode_AVP_Unsigned64(TTCN_Buffer &p, const AVP__Unsigned64& avp); +int encode_AVP_Float32(TTCN_Buffer &p, const AVP__Float32& avp); +int encode_AVP_Float64(TTCN_Buffer &p, const AVP__Float64& avp); +int encode_AVP_Grouped(TTCN_Buffer &p, const AVP__Grouped& avp); +int encode_AVP_Address(TTCN_Buffer &p, const AVP__Address& avp); +int encode_AVP_IP_Address(TTCN_Buffer &p, const AVP__IP__Address& avp); +int encode_AVP_Time(TTCN_Buffer &p, const AVP__Time& avp); +int encode_AVP_UTF8String(TTCN_Buffer &p, const AVP__UTF8String& avp); +int encode_AVP_DiameterIdentity(TTCN_Buffer &p, const AVP__DiameterIdentity& avp); +int encode_AVP_DiameterURI(TTCN_Buffer &p, const AVP__DiameterURI& avp); +int encode_AVP_IPFilterRule(TTCN_Buffer &p, const AVP__IPFilterRule& avp); +int encode_AVP_QoSFilterRule(TTCN_Buffer &p, const AVP__QoSFilterRule& avp); +int encode_AVP_enumerated(TTCN_Buffer &p, const int& avp); bool decode_AVP_OctetString(const unsigned char* & p, AVP__OctetString& avp, int length); bool decode_AVP_Integer(const unsigned char* & p, AVP__Integer32& avp, int length); bool decode_AVP_Integer64(const unsigned char* & p, AVP__Integer64& avp, int length); @@ -89,82 +88,40 @@ bool decode_AVP(const unsigned char* &p, AVP &avptype, const unsigned char* buf_ //////////////////////////////////////////////////////////// -void encode_bits_1byte(unsigned char* &p, +void encode_bits_1byte(TTCN_Buffer &p, const BITSTRING& bit1, const BITSTRING& bit2, const BITSTRING& therest) { - unsigned char ctemp; - BITSTRING datas = therest + (bit2 + bit1); // actually backwards - if (datas.lengthof() != 8) - TTCN_warning("Bitstring length %d is not exactly a byte.", - datas.lengthof()); - ctemp = *(bit1); - *p = 0; // just in case - *p += (ctemp << 7) & 0x80; // 1000 0000 - ctemp = *(bit2); - *p += (ctemp << 6) & 0x40; // 0100 0000 - ctemp = *(therest); // needs flipping - *p += ((ctemp & 0x20) >> 5); // 0010 0000 - *p += ((ctemp & 0x10) >> 3); // 0001 0000 - *p += ((ctemp & 0x08) >> 1); // 0000 1000 - *p += ((ctemp & 0x04) << 1); // 0000 0100 - *p += ((ctemp & 0x02) << 3); // 0000 0010 - *p += ((ctemp & 0x01) << 5); // 0000 0001 - p++; // advance by a byte + BITSTRING datas = bit1 + bit2 + therest; + if (datas.lengthof() != 8){ + TTCN_warning("Bitstring length %d is not exactly a byte.", datas.lengthof()); + } + p.put_string(bit2oct(datas)); } //////////////////////////////////////////////////////////// -void encode_bits_1byte(unsigned char* &p, +void encode_bits_1byte(TTCN_Buffer &p, const BITSTRING& bit1, const BITSTRING& bit2, const BITSTRING& bit3, const BITSTRING& therest) { - unsigned char ctemp; - BITSTRING datas = (therest + bit3) + (bit2 + bit1); // backwards? - if (datas.lengthof() != 8) - TTCN_warning("Bitstring length %d is not exactly a byte.", - datas.lengthof()); - ctemp = *(bit1); - *p = 0; // just in case - *p += (ctemp << 7) & 0x80; // 1000 0000 - ctemp = *(bit2); - *p += (ctemp << 6) & 0x40; // 0100 0000 - ctemp = *(bit3); - *p += (ctemp << 5) & 0x20; // 0010 0000 - ctemp = *(therest); // needs flipping - *p += ((ctemp & 0x10) >> 4); // 0001 0000 - *p += ((ctemp & 0x08) >> 2); // 0000 1000 - *p += ((ctemp & 0x04)); // 0000 0100 - *p += ((ctemp & 0x02) << 2); // 0000 0010 - *p += ((ctemp & 0x01) << 4); // 0000 0001 - p++; // advance by a byte + BITSTRING datas = bit1 + bit2 + bit3 + therest; + if (datas.lengthof() != 8){ + TTCN_warning("Bitstring length %d is not exactly a byte.", datas.lengthof()); + } + p.put_string(bit2oct(datas)); } //////////////////////////////////////////////////////////// -void encode_bits_1byte(unsigned char* &p, +void encode_bits_1byte(TTCN_Buffer &p, const BITSTRING& bit1, const BITSTRING& bit2, const BITSTRING& bit3, const BITSTRING& bit4, const BITSTRING& therest) { - unsigned char ctemp; - BITSTRING datas = ((((therest + bit4) + bit3) + bit2) + bit1); // backwards? - if (datas.lengthof() != 8) - TTCN_warning("Bitstring length %d is not exactly a byte.", - datas.lengthof()); - ctemp = *(bit1); - *p = 0; // just in case - *p += (ctemp << 7) & 0x80; // 1000 0000 - ctemp = *(bit2); - *p += (ctemp << 6) & 0x40; // 0100 0000 - ctemp = *(bit3); - *p += (ctemp << 5) & 0x20; // 0010 0000 - ctemp = *(bit4); - *p += (ctemp << 4) & 0x10; // 0001 0000 - ctemp = *(therest); // needs flipping - *p += ((ctemp & 0x08) >> 3); // 0000 1000 - *p += ((ctemp & 0x04) >> 1); // 0000 0100 - *p += ((ctemp & 0x02) << 1); // 0000 0010 - *p += ((ctemp & 0x01) << 3); // 0000 0001 - p++; // advance by a byte + BITSTRING datas = bit1 + bit2 + bit3 + bit4 + therest; + if (datas.lengthof() != 8){ + TTCN_warning("Bitstring length %d is not exactly a byte.", datas.lengthof()); + } + p.put_string(bit2oct(datas)); } //////////////////////////////////////////////////////////// -void encode_octets(int len, unsigned char* &p, +void encode_octets(int len, TTCN_Buffer &p, const OCTETSTRING& data) { if (data.lengthof() > len){ TTCN_error( @@ -173,94 +130,80 @@ void encode_octets(int len, unsigned char* &p, } int padd=len-data.lengthof(); for(;padd>0;padd--){ - *(p++)='\0'; + p.put_c('\0'); } - memcpy(p, (const unsigned char*) data, data.lengthof()); - p += data.lengthof(); + p.put_string(data); } //////////////////////////////////////////////////////////// -void encode_octets(unsigned char* &p, const OCTETSTRING& data) { - memcpy(p, (const unsigned char*) data, data.lengthof()); - p += data.lengthof(); +void encode_octets(TTCN_Buffer &p, const OCTETSTRING& data) { + p.put_string(data); } //////////////////////////////////////////////////////////// -void pad_oct_if_needed(unsigned char* &p, int unpaddedsize) { //if called, pads unpaddedsize's distance to closest 4-octet boundary +void pad_oct_if_needed(TTCN_Buffer &p, int unpaddedsize) { //if called, pads unpaddedsize's distance to closest 4-octet boundary encode_octets(p, OCTETSTRING((4 - unpaddedsize % 4) % 4, (const unsigned char*) "\0\0\0")); } //////////////////////////////////////////////////////////// -void encode_chars(unsigned char* &p, const CHARSTRING& data) { - memcpy(p, (const char*) data, data.lengthof()); - p += data.lengthof(); +void encode_chars(TTCN_Buffer &p, const CHARSTRING& data) { + p.put_string(data); } //////////////////////////////////////////////////////////// -void encode_int_1byte(unsigned char* &p, unsigned int data) { +void encode_int_1byte(TTCN_Buffer &p, unsigned int data) { if ((data >> 8) != 0) TTCN_error("Integer value %d is too long to fit in 1 byte.", data); - *(p++) = data & 0xFF; + p.put_c(data & 0xFF); } //////////////////////////////////////////////////////////// -void encode_int_2byte(unsigned char* &p, unsigned int data) { +void encode_int_2byte(TTCN_Buffer &p, unsigned int data) { if ((data >> 16) != 0) TTCN_error("Integer value %d is too long to fit in 2 bytes.", data); - *(p++) = (data >> 8) & 0xFF; - *(p++) = data & 0xFF; + p.put_c((data >> 8) & 0xFF); + p.put_c(data & 0xFF); } //////////////////////////////////////////////////////////// -void encode_int_3byte(unsigned char* &p, unsigned int data) { +void encode_int_3byte(TTCN_Buffer &p, unsigned int data) { if ((data >> 24) != 0) TTCN_error("Integer value %d is too long to fit in 3 bytes.", data); - *(p++) = (data >> 16) & 0xFF; - *(p++) = (data >> 8) & 0xFF; - *(p++) = data & 0xFF; + p.put_c((data >> 16) & 0xFF); + p.put_c((data >> 8) & 0xFF); + p.put_c(data & 0xFF); } //////////////////////////////////////////////////////////// -void encode_int_4byte(unsigned char* &p, unsigned int data) { - *(p++) = (data >> 24) & 0xFF; - *(p++) = (data >> 16) & 0xFF; - *(p++) = (data >> 8) & 0xFF; - *(p++) = data & 0xFF; -} - -void encode_u32_4byte(unsigned char* &p, const INTEGER& data) { - if(data.is_native()){ - const int data2=data; - *(p++) = (data2 >> 24) & 0xFF; - *(p++) = (data2 >> 16) & 0xFF; - *(p++) = (data2 >> 8) & 0xFF; - *(p++) = data2 & 0xFF; - } else { - OCTETSTRING os = int2oct(data, 4); - memcpy(p, (const unsigned char*) os, 4); - p += 4; - } +void encode_int_4byte(TTCN_Buffer &p, unsigned int data) { + p.put_c((data >> 24) & 0xFF); + p.put_c((data >> 16) & 0xFF); + p.put_c((data >> 8) & 0xFF); + p.put_c(data & 0xFF); +} + +void encode_u32_4byte(TTCN_Buffer &p, const INTEGER& data) { + p.put_string(int2oct(data, 4)); } // encode_u32_4byte //////////////////////////////////////////////////////////// -void encode_signed_int_4byte(unsigned char* &p, const int data) { - *(p++) = (data >> 24) & 0xFF; - *(p++) = (data >> 16) & 0xFF; - *(p++) = (data >> 8) & 0xFF; - *(p++) = data & 0xFF; +void encode_signed_int_4byte(TTCN_Buffer &p, const int data) { + p.put_c((data >> 24) & 0xFF); + p.put_c((data >> 16) & 0xFF); + p.put_c((data >> 8) & 0xFF); + p.put_c(data & 0xFF); } //////////////////////////////////////////////////////////// -void encode_float_8byte(unsigned char* &p, const double data) { +void encode_float_8byte(TTCN_Buffer &p, const double data) { unsigned char* poi = (unsigned char*) &data; #if defined __sparc__ || defined __sparc - memcpy(p,poi,8); + p.put_s(8,poi); #else - for (int i = 0, k = 7; i < 8; i++, k--) p[i] = poi[k]; + for (int i = 0, k = 7; i < 8; i++, k--) p.put_c(poi[k]); #endif - p+=8; } @@ -321,21 +264,10 @@ bool chk_zero(const OCTETSTRING& var) {return var==os_h_or_e_id_oct;} void f__DIAMETER__Enc__fast(const PDU__DIAMETER& pl__pdu, OCTETSTRING& pl__oct){ - int message_length=0; - int encoded_length=0; - - TTCN_Buffer buf; - buf.clear(); - size_t len=BUF_SIZE; // header length - unsigned char* p; - buf.get_end(p,len); - unsigned char *start_ptr = p; - - - encode_int_1byte(p, (unsigned int) pl__pdu.version()); - unsigned char *length_ptr = p; - p += 3; // save *length for later use + TTCN_Buffer p; + p.clear(); + #ifdef DPMG_USE_DETAILED_BITS encode_bits_1byte(p, pl__pdu.R__bit(), pl__pdu.P__bit(), pl__pdu.E__bit(), pl__pdu.T__bit(), pl__pdu.r__bits()); @@ -385,13 +317,12 @@ void f__DIAMETER__Enc__fast(const PDU__DIAMETER& pl__pdu, OCTETSTRING& pl__oct){ #endif } - encoded_length=encode_AVP_Grouped(p, pl__pdu.avps()); - - message_length = p - start_ptr; // TP must calc it - encode_int_3byte(length_ptr, (unsigned int) message_length); + encode_AVP_Grouped(p, pl__pdu.avps()); + - buf.increase_length(message_length); - buf.get_string(pl__oct); + OCTETSTRING tmp; + p.get_string(tmp); + pl__oct = int2oct(pl__pdu.version(),1) + int2oct(tmp.lengthof()+4,3) + tmp; return; } @@ -403,7 +334,13 @@ OCTETSTRING f__DIAMETER__Enc(const PDU__DIAMETER& pl__pdu) return ret_val; } - +void f_DIAMETER_log_hex(const char *prompt, const unsigned char *msg, + size_t length) +{ + if (prompt != NULL) TTCN_Logger::log_event_str(prompt); + TTCN_Logger::log_event("Size: %lu, Msg:", (unsigned long)length); + for (size_t i = 0; i < length; i++) TTCN_Logger::log_event(" %02x", msg[i]); +} OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int data_len, const integerList& pl__codeList){ const unsigned char *endp=temp+data_len; @@ -411,17 +348,25 @@ OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int d unsigned int avpCode = 0; int codelist_size=pl__codeList.size_of(); - - while(temp < endp) - { + + // an AVP is at least 8 bytes long - see RFC 3588 / 4.1. AVP Header + while(temp + 8 < endp) + { /* reading the avp code value*/ - avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); - + avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); + temp+=5; // AVP code & VMPxxxxx octets (checked later) // tmp now points to the first length octet /* calculating the length of the next AVP*/ - avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + if(avpLength < 8) { + TTCN_Logger::begin_event( TTCN_WARNING ); + TTCN_Logger::log_event("Invalid AVP length: %d; ",avpLength); + f_DIAMETER_log_hex("AVP octets: ", temp - 5, endp - (temp + 5)); + TTCN_Logger::end_event(); + break; + } avpLength-=8; // length of AVP data = AVP length - 4 - Vendor ID length (calculated below) if(*(temp-1) & 0x80){ // skip vendor id, VMPxxxxx is just before the first length octet avpLength-=4; @@ -434,19 +379,19 @@ OCTETSTRING f_GetAVPByListOfCodesFromGroupedAVP(const unsigned char *temp, int d { if((const int)(pl__codeList[i]) == (int)avpCode) { - return OCTETSTRING(avpLength, temp); + return OCTETSTRING(avpLength > 0? avpLength:0, temp); } } - + // skip to the next avp if(avpLength % 4 != 0) // AVP padding - { + { avpLength = avpLength + (4 - (avpLength % 4)); } - temp+=avpLength; + temp+=avpLength; } /* no AVP was found, returns an empty octetstring*/ - unsigned char noResult[0]; + unsigned char noResult[0]; return OCTETSTRING(0, noResult); } @@ -454,23 +399,31 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, { const unsigned char *temp= (const unsigned char *)pl__oct; const unsigned char *endp=temp+pl__oct.lengthof(); - + temp += 20; // skip the DIAMETER header int avpLength = 0; unsigned int avpCode = 0; int codelist_size=pl__codeList.size_of(); int groupcodeList_size=pl__groupcodeList.size_of(); - - while(temp < endp) - { + + // an AVP is at least 8 bytes long - see RFC 3588 / 4.1. AVP Header + while(temp + 8 < endp) + { /* reading the avp code value*/ - avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); + avpCode = ((unsigned int)(*temp) << 24) + ((unsigned int)(*(temp + 1)) << 16) + ((unsigned int)(*(temp + 2)) << 8) + (unsigned int)(*(temp + 3)); temp+=5; // AVP code & VMPxxxxx octets // tmp now points to the first length octet /* calculating the length of the next AVP*/ - avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + avpLength = ((unsigned int)(*temp) << 16) + ((unsigned int)(*(temp + 1)) << 8) + (unsigned int)(*(temp + 2)); + if(avpLength < 8) { + TTCN_Logger::begin_event( TTCN_WARNING ); + TTCN_Logger::log_event("Invalid AVP length: %d; msg: ",avpLength); + pl__oct.log(); + TTCN_Logger::end_event(); + break; + } avpLength-=8; // length of AVP data = AVP length - 4 - Vendor ID length (calculated below) if(*(temp-1) & 0x80){ // skip vendor id, VMPxxxxx is just before the first length octet avpLength-=4; @@ -483,10 +436,10 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, { if((const int)(pl__codeList[i]) == (int)avpCode) { - return OCTETSTRING(avpLength, temp); + return OCTETSTRING(avpLength > 0? avpLength:0, temp); } } - + // Chek for the groupped AVP to search in for(int i = 0; i < groupcodeList_size; i++) { @@ -504,12 +457,13 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesCombined(const OCTETSTRING& pl__oct, { avpLength = avpLength + (4 - (avpLength % 4)); } - temp+=avpLength; + temp+=avpLength; } - /* no AVP was found, returns an empty octetstring*/ - unsigned char noResult[0]; + /* no AVP was found, returns an empty octetstring*/ + unsigned char noResult[0]; return OCTETSTRING(0, noResult); } + OCTETSTRING f__DIAMETER__GetAVPByListOfCodes(const OCTETSTRING& pl__oct, const integerList& pl__codeList) { integerList glist=NULL_VALUE; @@ -522,21 +476,17 @@ OCTETSTRING f__DIAMETER__GetAVPByListOfCodesFromGroupedAVP(const OCTETSTRING& pl } - - -int encode_AVP_OctetString(unsigned char* & p, const AVP__OctetString& avp){ - unsigned char* start=p; +int encode_AVP_OctetString(TTCN_Buffer &p, const AVP__OctetString& avp){ encode_octets(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof() ; } -int encode_AVP_Integer32(unsigned char* & p, const AVP__Integer32& avp){ +int encode_AVP_Integer32(TTCN_Buffer &p, const AVP__Integer32& avp){ encode_signed_int_4byte(p, avp); return 4; } -int encode_AVP_Integer64(unsigned char* & p, const AVP__Integer64& avp){ +int encode_AVP_Integer64(TTCN_Buffer &p, const AVP__Integer64& avp){ #ifdef DPMG_USE_INTEGER_FOR_UINT32_INT64 encode_octets(8, p, int2oct(avp,8)); #else @@ -544,23 +494,15 @@ int encode_AVP_Integer64(unsigned char* & p, const AVP__Integer64& avp){ #endif return 8; } -int encode_AVP_Unsigned32(unsigned char* & p, const AVP__Unsigned32& avp){ +int encode_AVP_Unsigned32(TTCN_Buffer &p, const AVP__Unsigned32& avp){ #ifdef DPMG_USE_INTEGER_FOR_UINT32_INT64 - if(avp.is_native()){ - const int data=avp; - *(p++) = (data >> 24) & 0xFF; - *(p++) = (data >> 16) & 0xFF; - *(p++) = (data >> 8) & 0xFF; - *(p++) = data & 0xFF; - } else { - encode_octets(4, p, int2oct(avp,4)); - } + encode_octets(4, p, int2oct(avp,4)); #else encode_octets(4, p, avp); #endif return 4; } -int encode_AVP_Unsigned64(unsigned char* & p, const AVP__Unsigned64& avp){ +int encode_AVP_Unsigned64(TTCN_Buffer &p, const AVP__Unsigned64& avp){ #ifdef DPMG_USE_INTEGER_FOR_UINT32_INT64 encode_octets(8, p, int2oct(avp,8)); #else @@ -568,8 +510,9 @@ int encode_AVP_Unsigned64(unsigned char* & p, const AVP__Unsigned64& avp){ #endif return 8; } -int encode_AVP_Float32(unsigned char* & p, const AVP__Float32& avp){ +int encode_AVP_Float32(TTCN_Buffer &buff, const AVP__Float32& avp){ double tmp = avp; + unsigned char p[4]; if (tmp == 0.0) memset(p, 0, 4); else if (tmp == -0.0) { memset(p, 0, 4); @@ -612,79 +555,64 @@ int encode_AVP_Float32(unsigned char* & p, const AVP__Float32& avp){ index += adj; p[3] = ((dv[index] & 0x1F) << 3) | ((dv[index + adj] & 0xE0) >> 5); } - p+=4; + buff.put_s(4,p); return 4; } -int encode_AVP_Float64(unsigned char* & p, const AVP__Float64& avp){ +int encode_AVP_Float64(TTCN_Buffer &p, const AVP__Float64& avp){ encode_float_8byte(p, avp); return 8; } -int encode_AVP_Address(unsigned char* & p, const AVP__Address& avp){ - unsigned char* start=p; +int encode_AVP_Address(TTCN_Buffer &p, const AVP__Address& avp){ encode_int_2byte(p,avp.address__type()); encode_octets(p, avp.address__data()); - int ret_val=p-start; pad_oct_if_needed(p, avp.address__data().lengthof()+2); - return ret_val; + return avp.address__data().lengthof()+2; } -int encode_AVP_IP_Address(unsigned char* & p, const AVP__IP__Address& avp){ - unsigned char* start=p; +int encode_AVP_IP_Address(TTCN_Buffer &p, const AVP__IP__Address& avp){ encode_octets(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); } -int encode_AVP_Time(unsigned char* & p, const AVP__Time& avp){ +int encode_AVP_Time(TTCN_Buffer &p, const AVP__Time& avp){ encode_octets(4,p, avp); return 4; } -int encode_AVP_UTF8String(unsigned char* & p, const AVP__UTF8String& avp){ +int encode_AVP_UTF8String(TTCN_Buffer &p, const AVP__UTF8String& avp){ #ifdef DPMG_USE_UTF8_ENC TTCN_Buffer buf; avp.encode_utf8(buf); int length = buf.get_len(); - memcpy(p,buf.get_data(),length); - p += length; + p.put_buf(buf); pad_oct_if_needed(p, length); return length; #else - unsigned char* start=p; encode_octets(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); #endif } -int encode_AVP_DiameterIdentity(unsigned char* & p, const AVP__DiameterIdentity& avp){ - unsigned char* start=p; +int encode_AVP_DiameterIdentity(TTCN_Buffer &p, const AVP__DiameterIdentity& avp){ encode_chars(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); } -int encode_AVP_DiameterURI(unsigned char* & p, const AVP__DiameterURI& avp){ - unsigned char* start=p; +int encode_AVP_DiameterURI(TTCN_Buffer &p, const AVP__DiameterURI& avp){ encode_chars(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); } -int encode_AVP_IPFilterRule(unsigned char* & p, const AVP__IPFilterRule& avp){ - unsigned char* start=p; +int encode_AVP_IPFilterRule(TTCN_Buffer &p, const AVP__IPFilterRule& avp){ encode_chars(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); } -int encode_AVP_QoSFilterRule(unsigned char* & p, const AVP__QoSFilterRule& avp){ - unsigned char* start=p; +int encode_AVP_QoSFilterRule(TTCN_Buffer &p, const AVP__QoSFilterRule& avp){ encode_chars(p, avp); - int ret_val=p-start; pad_oct_if_needed(p, avp.lengthof()); - return ret_val; + return avp.lengthof(); } -int encode_AVP_enumerated(unsigned char* & p, const int& avp){ +int encode_AVP_enumerated(TTCN_Buffer &p, const int& avp){ encode_int_4byte(p, avp); return 4; } diff --git a/src/DOIC_RFC7683.ddf b/src/DOIC_RFC7683.ddf new file mode 100644 index 0000000..66fb589 --- /dev/null +++ b/src/DOIC_RFC7683.ddf @@ -0,0 +1,61 @@ +/****************************************************************************** +* Copyright (c) 2004, 2018 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation +******************************************************************************/ +// +// File: DOIC_RFC7683.ddf +// Description: DDF for Diameter Overload Indication Conveyance AVPs +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + +// APPLICATION-NAME: DOIC +// APPLICATION-REVISION: RFC7683 + +// AVP implementations according to: +// RFC7683 - Diameter Overload Indication Conveyance +// +// RFC 7683 +// 7.1. +// AVP: OC-Supported-Features (621) +type AVP_Grouped OC_Supported_Features; + +// RFC 7683 +// 7.2. +// AVP: OC-Feature-Vector (622) +type AVP_Unsigned64 OC_Feature_Vector; + +// RFC 7683 +// 7.3. +// AVP: OC-OLR (623) +type AVP_Grouped OC_OLR; + +// RFC 7683 +// 7.4. +// AVP: OC-Sequence-Number (624) +type AVP_Unsigned64 OC_Sequence_Number; + +// RFC 7683 +// 7.5. +// AVP: OC-Validity-Duration (625) +type AVP_Unsigned32 OC_Validity_Duration; + +// RFC 7683 +// 7.6. +// AVP: OC-Report-Type (626) +type enumerated OC_Report_Type +{ + HOST_REPORT (0), + REALM_REPORT (1) +} + +// RFC 7683 +// 7.7. +// AVP: OC-Reduction-Percentage (627) +type AVP_Unsigned32 OC_Reduction_Percentage; \ No newline at end of file diff --git a/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf b/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf index ad23056..f8a706b 100644 --- a/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf +++ b/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf @@ -11,7 +11,7 @@ // // File: DelegatedIPv6Prefix_IETF_RFC4818.ddf // Description: DDF for Delegated IPv6 Prefix to RFC 4818 -// Rev: R40A +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/DiameterRoutingMessagePriority_IETF_RFC7944.ddf b/src/DiameterRoutingMessagePriority_IETF_RFC7944.ddf new file mode 100644 index 0000000..213f799 --- /dev/null +++ b/src/DiameterRoutingMessagePriority_IETF_RFC7944.ddf @@ -0,0 +1,46 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation and initial documentation +******************************************************************************/ +// +// File: DiameterRoutingMessagePriority_IETF_RFC7944.ddf +// Description: DDF for Diameter Routing Message Priority according to RFC7944 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: DRMP +// APPLICATION-REVISION: RFC7944 + +// AVP implementations according to: +// RFC7944 - Diameter Routing Message Priority +// +// RFC 7944 +// 9. +// AVP: DRMP (301) +type enumerated DRMP +{ + PRIORITY_0 (0), + PRIORITY_1 (1), + PRIORITY_2 (2), + PRIORITY_3 (3), + PRIORITY_4 (4), + PRIORITY_5 (5), + PRIORITY_6 (6), + PRIORITY_7 (7), + PRIORITY_8 (8), + PRIORITY_9 (9), + PRIORITY_10 (10), + PRIORITY_11 (11), + PRIORITY_12 (12), + PRIORITY_13 (13), + PRIORITY_14 (14), + PRIORITY_15 (15) +} diff --git a/src/DigestAuthentication_IETF_RFC5090.ddf b/src/DigestAuthentication_IETF_RFC5090.ddf index 3eb057d..44acf30 100644 --- a/src/DigestAuthentication_IETF_RFC5090.ddf +++ b/src/DigestAuthentication_IETF_RFC5090.ddf @@ -37,7 +37,7 @@ // // File: DigestAuthentication_IETF_RFC5090.ddf // Description: DDF for DIGEST according to RFC 5090 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 1134 62 /////////////////////////////////////////////// diff --git a/src/EricssonSCAPv1_1553APR_10148.ddf b/src/EricssonSCAPv1_1553APR_10148.ddf index e4fd038..cee4879 100644 --- a/src/EricssonSCAPv1_1553APR_10148.ddf +++ b/src/EricssonSCAPv1_1553APR_10148.ddf @@ -37,7 +37,7 @@ // // File: EricssonSCAPv1_1553APR_10148.ddf // Description: DDF for SCAPv1 according to 2/1553-APR 101 48/2 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Ericsson_Specific_AVPs.ddf b/src/Ericsson_Specific_AVPs.ddf index 4eb8b55..81d7988 100644 --- a/src/Ericsson_Specific_AVPs.ddf +++ b/src/Ericsson_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Ericsson_Specific_AVPs.ddf // Description: Ericsson specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 // Reference: http://snmp.ericsson.se/diameter-assignments.html // @@ -54,6 +54,12 @@ type enumerated Command_Code { User_Data_Ericsson (502), // User-Data-Request (UDR) or User-Data-Answer (UDA) Location_Info_Ericsson (503), // Location-Info-Request (LIR) or Location-Info-Answer (LIA) Multimedia_Auth_Ericsson (506), // Multimedia-Auth-Request (MAR) or Multimedia-Auth-Answer (MAA) + Update_Location_Ericsson (650), + Authentication_Information_Ericsson (651), + Insertsubscriber_Data_Ericsson (652), + Cancel_Location_Ericsson (653), + Purge_UE_Ericsson (654), + System_Information_Ericsson (655), Spending_Limit_Official (656), Spending_Status_Notification_Official (657), Spending_Limit (8388633), @@ -2685,6 +2691,146 @@ type AVP_OctetString Additional_User_Category type AVP_OctetString Flexible_Charging_Info +// AVP: Original-Transferred-Amount (1400) Ericsson (193) +type AVP_Grouped Original_Transferred_Amount + + +// AVP: Original-Fee (1401) Ericsson (193) +type AVP_Grouped Original_Fee + + +// AVP: Transaction-Role (1402) Ericsson (193) +type AVP_Unsigned32 Transaction_Role + + +// AVP: Charging-Region (1403) Ericsson (193) +type AVP_UTF8String Charging_Region + + +// AVP: Used-Offer-Id (1404) Ericsson (193) +type AVP_Unsigned32 Used_Offer_Id + + +// AVP: Forward-TTC-Charging-Parameters (1406) Ericsson (193) +type AVP_UTF8String Forward_TTC_Charging_Parameters + + +// AVP: Backward-TTC-Charging-Parameters (1407) Ericsson (193) +type AVP_UTF8String Backward_TTC_Charging_Parameters + + +// AVP: Synchronization-Data (1408) Ericsson (193) +type AVP_Grouped Synchronization_Data + + +// AVP: Session-Binding-Function (1409) Ericsson (193) +type enumerated Session_Binding_Function +{ + INITIALIZE (0), + TERMINATE (1), + BIND (2) +} + + +// AVP: Binding-Info (1410) Ericsson (193) +type AVP_Grouped Binding_Info + + +// AVP: Session-Info (1411) Ericsson (193) +type AVP_Grouped Session_Info + + +// AVP: Binding-Key (1412) Ericsson (193) +type AVP_OctetString Binding_Key + + +// AVP: First-Request-Timestamp (1413) Ericsson (193) +type AVP_Unsigned64 First_Request_Timestamp + + +// AVP: Selected-Server (1414) Ericsson (193) +type AVP_DiameterIdentity Selected_Server + + +// AVP: Session-Binding-Profile (1415) Ericsson (193) +type AVP_Grouped Session_Binding_Profile + + +// AVP: Profile-Name (1416) Ericsson (193) +type AVP_UTF8String Profile_Name + + +// AVP: Profile-Data (1417) Ericsson (193) +type AVP_OctetString Profile_Data + + +// AVP: Session-Client (1418) Ericsson (193) +type AVP_DiameterIdentity Session_Client + + +// AVP: Session-Client-Origin-State-Id (1419) Ericsson (193) +type AVP_Unsigned32 Session_Client_Origin_State_Id + + +// AVP: Session-Server (1420) Ericsson (193) +type AVP_DiameterIdentity Session_Server + + +// AVP: Session-Server-Origin-State-Id (1421) Ericsson (193) +type AVP_Unsigned32 Session_Server_Origin_State_Id + + +// AVP: Last-Session-Activity-Timestamp (1422) Ericsson (193) +type AVP_Unsigned64 Last_Session_Activity_Timestamp + + +// AVP: Mated-DSC (1423) Ericsson (193) +type AVP_Grouped Mated_DSC + + +// AVP: Additional-Service-Information (1424) Ericsson (193) +type AVP_Grouped Additional_Service_Information + + +// AVP: Additional-Service-Information-Name (1425) Ericsson (193) +type AVP_UTF8String Additional_Service_Information_Name + + +// AVP: Additional-Service-Information-Type (1426) Ericsson (193) +type AVP_UTF8String Additional_Service_Information_Type + + +// AVP: Additional-Service-Information-Value (1427) Ericsson (193) +type AVP_UTF8String Additional_Service_Information_Value + + +// AVP: Mate-Hostname (1428) Ericsson (193) +type AVP_DiameterIdentity Mate_Hostname + + +// AVP: Mate-DMI-Session-Binding-Result (1429) Ericsson (193) +type enumerated Mate_DMI_Session_Binding_Result +{ + No_DMI (0), + Success (1), + Failure (2), + Drop (3), + Reject (4), + ForwardToMate (5) +} + + +// AVP: ISUP-Cause-Location (1430) Ericsson (193) +type AVP_Unsigned32 ISUP_Cause_Location + + +// AVP: ISUP-Cause-Value (1431) Ericsson (193) +type AVP_Unsigned32 ISUP_Cause_Value + + +// AVP: ISUP-Cause (1432) Ericsson (193) +type AVP_Grouped ISUP_Cause + // AVP: AS-Type (1433) Ericsson (193) type enumerated AS_Type @@ -2698,3 +2844,158 @@ type enumerated AS_Type } +// AVP: Number-Of-Days-Since-Activation (1434) Ericsson (193) +type AVP_Unsigned32 Number_Of_Days_Since_Activation + + +// AVP: Re-Routing-Address (1435) Ericsson (193) +type AVP_Grouped Re_Routing_Address + + +// AVP: Last-Access-Network-Information (1436) Ericsson (193) +type AVP_OctetString Last_Access_Network_Information + + +// AVP: Successive-Call (1437) Ericsson (193) +type AVP_OctetString Successive_Call + + +// AVP: Other-Party-Id-Prefix (1438) Ericsson (193) +type AVP_UTF8String Other_Party_Id_Prefix + + +// AVP: Ericsson-Requested-Data (1439) Ericsson (193) +type enumerated Ericsson_Requested_Data +{ + IRS_Data (0) +} + + +// AVP: Ext-Bearer-Service-Code (1440) Ericsson (193) +type AVP_Unsigned32 Ext_Bearer_Service_Code + + +// AVP: Announcement-Instructions (1441) Ericsson (193) +type AVP_Grouped Announcement_Instructions + + +// AVP: Announcement-Number (1442) Ericsson (193) +type AVP_Unsigned32 Announcement_Number + + +// AVP: Announcement-Order (1443) Ericsson (193) +type AVP_Unsigned32 Announcement_Order + + +// AVP: Announcement-Prompt-Collect-Interruptible (1444) Ericsson (193) +type enumerated Announcement_Prompt_Collect_Interruptible +{ + FALSE (0), + TRUE (1) +} + + +// AVP: Announcement-Prompt-Collect-MaxDigits (1445) Ericsson (193) +type AVP_Unsigned32 Announcement_Prompt_Collect_MaxDigits + + +// AVP: Announcement-Prompt-Collect-MinDigits (1446) Ericsson (193) +type AVP_Unsigned32 Announcement_Prompt_Collect_MinDigits + + +// AVP: Announcement-Prompt-Collect-Parameter (1447) Ericsson (193) +type AVP_Grouped Announcement_Prompt_Collect_Parameter + + +// AVP: Announcement-Type (1448) Ericsson (193) +type AVP_Unsigned32 Announcement_Type + + +// AVP: Announcement-Variable-Part (1449) Ericsson (193) +type AVP_Grouped Announcement_Variable_Part + + +// AVP: Announcement-Variable-Part-Data (1450) Ericsson (193) +type AVP_UTF8String Announcement_Variable_Part_Data + + +// AVP: Announcement-Variable-Part-Type (1451) Ericsson (193) +type enumerated Announcement_Variable_Part_Type +{ + INTEGER (0), + NUMBER (1), + TIME (2), + DATE (3), + PRICE (4) +} + + +// AVP: Trace-Report (1452) Ericsson (193) +type AVP_Grouped Trace_Report + + +// AVP: Trace-Report-Type (1453) Ericsson (193) +type enumerated Trace_Report_Type +{ + TRACE_STATE_UPDATE (0), + TRACE_SESSION_INFO (1), + TRACE_DATA_REPORT (2) +} + + +// AVP: Trace-Profile (1454) Ericsson (193) +type AVP_Grouped Trace_Profile + + +// AVP: Trace-Name (1455) Ericsson (193) +type AVP_UTF8String Trace_Name + + +// AVP: Trace-Pattern (1456) Ericsson (193) +type AVP_UTF8String Trace_Pattern + + +// AVP: Trace-Duration (1457) Ericsson (193) +type AVP_Unsigned32 Trace_Duration + + +// AVP: Tracing-State (1458) Ericsson (193) +type enumerated Tracing_State +{ + INACTIVE (0), + ACTIVE (1) +} + + +// AVP: Trace-Data (1459) Ericsson (193) +type AVP_UTF8String Trace_Data + + +// AVP: Transaction-SIP-Message (1460) Ericsson (193) +type AVP_UTF8String Transaction_SIP_Message + + +// AVP: Ericsson-Access-Classification-Location (1461) Ericsson (193) +type AVP_OctetString Ericsson_Access_Classification_Location + + +// AVP: Additional-Subscription-Id-Information (1462) Ericsson (193) +type AVP_Grouped Additional_Subscription_Id_Information + + +// AVP: Subscriber-Type (1463) Ericsson (193) +type enumerated Subscriber_Type +{ + BUSINESS (0) +} + + +// AVP: UC-Mobility-Call-Leg (1464) Ericsson (193) +type enumerated UC_Mobility_Call_Leg +{ + ORIGINATING_ACCESS (0), + TERMINATING_TRUNK (1), + TERMINATING_CONNECT (2) +} + + diff --git a/src/ExtensibleAuthenticationProtocol_IETF_RFC4072.ddf b/src/ExtensibleAuthenticationProtocol_IETF_RFC4072.ddf index 7340bc8..ee39725 100644 --- a/src/ExtensibleAuthenticationProtocol_IETF_RFC4072.ddf +++ b/src/ExtensibleAuthenticationProtocol_IETF_RFC4072.ddf @@ -37,7 +37,7 @@ // // File: ExensibleAuthenticationProtocol_IETF_RFC4072.ddf // Description: DDF for EAP according to RFC 4072 -// Rev: RXXA0X +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/GiInterface_3GPP_TS29061_770.ddf b/src/GiInterface_3GPP_TS29061_770.ddf index ee73d6d..aff653c 100644 --- a/src/GiInterface_3GPP_TS29061_770.ddf +++ b/src/GiInterface_3GPP_TS29061_770.ddf @@ -37,7 +37,7 @@ // // File: GiInterface_3GPP_TS29061_770.ddf // Description: DDF for Gi according to 3GPP TS 29.061 V7.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_810.ddf b/src/GiSGiInterface_3GPP_TS29061_810.ddf index de2d0a0..40d52bb 100644 --- a/src/GiSGiInterface_3GPP_TS29061_810.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_810.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_810.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V8.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_930.ddf b/src/GiSGiInterface_3GPP_TS29061_930.ddf index b235ed5..603651e 100644 --- a/src/GiSGiInterface_3GPP_TS29061_930.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_930.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_930.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf b/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf index 2c66d7d..82b8d2e 100644 --- a/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.3.0 -// Rev: R40A +// Rev: R17A01 // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_980.ddf b/src/GiSGiInterface_3GPP_TS29061_980.ddf index bb1b038..e4de48f 100644 --- a/src/GiSGiInterface_3GPP_TS29061_980.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_980.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.8.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_b90.ddf b/src/GiSGiInterface_3GPP_TS29061_b90.ddf index e0806aa..6327686 100644 --- a/src/GiSGiInterface_3GPP_TS29061_b90.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_b90.ddf @@ -11,7 +11,7 @@ // // File: GiSGiInterface_3GPP_TS29061_b90.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V11.9.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf b/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf index fdaf251..5edee89 100644 --- a/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf @@ -11,7 +11,7 @@ // // File: GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V11.9.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_d70.ddf b/src/GiSGiInterface_3GPP_TS29061_d70.ddf new file mode 100644 index 0000000..a33e83d --- /dev/null +++ b/src/GiSGiInterface_3GPP_TS29061_d70.ddf @@ -0,0 +1,220 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Máté Kovács +******************************************************************************/ +// +// File: GiSGiInterface_3GPP_TS29061_d70.ddf +// Description: DDF for Gi/SGi according to 3GPP TS 29.061 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: GI +// APPLICATION-REVISION: V13_7_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V13.7.0 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// +// +// Dependant applications +// - + + +// 3GPP TS 29.061 V13.7.0 16a.4 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Session_Termination (275), + Abort_Session (274), + Accounting (271) +} + + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IMSI (1) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Charging-Id (2) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Charging_Id; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-PDP-Type (3) 3GPP (10415) +// 16.4.7 +type enumerated 3GPP_PDP_Type +{ + IPv4 (0), + PPP (1), + IPv6 (2), + IPv4v6 (3), + NonIp (4) +} + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-CG-Address (4) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-GPRS-Negotiated-QoS-Profile (5) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_GPRS_Negotiated_QoS_Profile; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-SGSN-Address (6) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-GGSN-Address (7) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IMSI-MCC-MNC (8) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI_MCC_MNC; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-GGSN-MCC-MNC (9) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_GGSN_MCC_MNC; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-NSAPI (10) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_NSAPI; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Session-Stop-Indicator (11) 3GPP (10415) +type AVP_UTF8String 3GPP_Session_Stop_Indicator; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Selection-Mode (12) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Selection_Mode; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Charging-Characteristics (13) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Charging_Characteristics; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-CG-IPv6-Address (14) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_IPv6_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-SGSN-IPv6-Address (15) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_IPv6_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-GGSN-IPv6-Address (16) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_IPv6_Address; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IPv6-DNS-Servers (17) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IPv6_DNS_Servers; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-SGSN-MCC-MNC (18) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_SGSN_MCC_MNC; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IMEISV (20) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IMEISV; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-RAT-Type (21) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_RAT_Type; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-User-Location-Info (22) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_User_Location_Info; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-MS-TimeZone (23) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_MS_TimeZone; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-CAMEL-Charging-Info (24) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CAMEL_Charging_Info; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Packet-Filter (25) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Packet_Filter; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Negotiated-DSCP (26) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Negotiated_DSCP; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-Allocate-IP-Type (27) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Allocate_IP_Type; + +// 3GPP TS 29.061 V13.7.0 +// AVP: External-Identifier (28) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String External_Identifier; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: TWAN-Identifier (29) 3GPP (10415) +// 16.4.7 +type AVP_OctetString TWAN_Identifier; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-User-Location-Info-Time (30) 3GPP (10415) +// 16.4.7 +type AVP_Unsigned32 3GPP_User_Location_Info_Time; + + + diff --git a/src/GmbInterface_3GPP_TS29061_6f0.ddf b/src/GmbInterface_3GPP_TS29061_6f0.ddf index 1278a1d..a27b8d6 100644 --- a/src/GmbInterface_3GPP_TS29061_6f0.ddf +++ b/src/GmbInterface_3GPP_TS29061_6f0.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_6f0.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V6.15.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_720.ddf b/src/GmbInterface_3GPP_TS29061_720.ddf index 86e2f34..19767d6 100644 --- a/src/GmbInterface_3GPP_TS29061_720.ddf +++ b/src/GmbInterface_3GPP_TS29061_720.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_720.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V7.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_810.ddf b/src/GmbInterface_3GPP_TS29061_810.ddf index e4f54b4..facf2e1 100644 --- a/src/GmbInterface_3GPP_TS29061_810.ddf +++ b/src/GmbInterface_3GPP_TS29061_810.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_810.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V8.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_930.ddf b/src/GmbInterface_3GPP_TS29061_930.ddf index 52d239f..386b4d3 100644 --- a/src/GmbInterface_3GPP_TS29061_930.ddf +++ b/src/GmbInterface_3GPP_TS29061_930.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_930.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_970.ddf b/src/GmbInterface_3GPP_TS29061_970.ddf index 709913f..5b3d411 100644 --- a/src/GmbInterface_3GPP_TS29061_970.ddf +++ b/src/GmbInterface_3GPP_TS29061_970.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_970.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_980.ddf b/src/GmbInterface_3GPP_TS29061_980.ddf index f3319a5..2efef1d 100644 --- a/src/GmbInterface_3GPP_TS29061_980.ddf +++ b/src/GmbInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_980.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.8.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_d70.ddf b/src/GmbInterface_3GPP_TS29061_d70.ddf new file mode 100644 index 0000000..fbfbf82 --- /dev/null +++ b/src/GmbInterface_3GPP_TS29061_d70.ddf @@ -0,0 +1,224 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Máté Kovács +******************************************************************************/ +// +// File: GmbInterface_3GPP_TS29061_d70.ddf +// Description: DDF for Gmb according to 3GPP TS 29.061 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: GMB +// APPLICATION-REVISION: V13_7_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V13.7.0 - Interworking between the Public Land Mobile Network +// (PLMN) supporting packet based services and Packet Data Networks (PDN) +// +// +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// +// Notes: +// Present application has its own vendor specific Diameter application id: 16777223 +// + +// 3GPP TS 29.061 V13.7.0 17.6 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Re_Auth (258), + Session_Termination (275), + Abort_Session (274) +} + + +// 3GPP TS 29.061 V13.7.0 +// AVP: TMGI (900) 3GPP (10415) +// 17.7.2 +type AVP_OctetString TMGI; + +// 3GPP TS 29.061 V13.7.0 +// AVP: Required-MBMS-Bearer-Capabilities (901) 3GPP (10415) +// 17.7.3 +type AVP_UTF8String Required_MBMS_Bearer_Capabilities; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-StartStop-Indication (902) 3GPP (10415) +// 17.7.5 +type enumerated MBMS_StartStop_Indication +{ + START (0), + STOP (1), + UPDATE (2), + HEARTBEAT (3) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Service-Area (903) 3GPP (10415) +// 17.7.6 +type AVP_OctetString MBMS_Service_Area; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Session-Duration (904) 3GPP (10415) +// 17.7.7 +type AVP_OctetString MBMS_Session_Duration; + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IMSI (1) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI; + +// 3GPP TS 29.061 V13.7.0 +// AVP: Alternative-APN (905) 3GPP (10415) +// 17.7.8 +type AVP_UTF8String Alternative_APN; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Service-Type (906) 3GPP (10415) +// 17.7.9 +type enumerated MBMS_Service_Type +{ + MULTICAST (0), + BROADCAST (1) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-SGSN-Address (6) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-SGSN-IPv6-Address (15) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_IPv6_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-2G-3G-Indicator (907) 3GPP (10415) +// 17.7.10 +type enumerated MBMS_2G_3G_Indicator +{ + TwoG (0), + ThreeG (1), + TwoG_AND_ThreeG (2) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Session-Identity (908) 3GPP (10415) +// 17.7.11 +type AVP_OctetString MBMS_Session_Identity; + +// 3GPP TS 29.061 V13.7.0 +// AVP: RAI (909) 3GPP (10415) +// 17.7.12 +type AVP_UTF8String RAI; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-IMEISV (20) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IMEISV; + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-RAT-Type (21) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_RAT_Type; + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-User-Location-Info (22) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_User_Location_Info; + +// 3GPP TS 29.061 V13.7.0 +// AVP: 3GPP-MS-TimeZone (23) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_MS_TimeZone; + +// 3GPP TS 29.061 V13.7.0 +// AVP: Additional-MBMS-Trace-Info (910) 3GPP (10415) +// 17.7.13 +type AVP_OctetString Additional_MBMS_Trace_Info; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Time-To-Data-Transfer (911) 3GPP (10415) +// 17.7.14 +type AVP_OctetString MBMS_Time_To_Data_Transfer; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Session-Repetition-Number (912) 3GPP (10415) +// 17.7.15 +type AVP_OctetString MBMS_Session_Repetition_Number; + + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Required-QoS (913) 3GPP (10415) +// 17.7.16 +type AVP_UTF8String MBMS_Required_QoS; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Counting-Information (914) 3GPP (10415) +// 17.7.17 +type enumerated MBMS_Counting_Information +{ + COUNTING_NOT_APPLICABLE (0), + COUNTING_APPLICABLE (1) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-User-Data-Mode-Indication (915) 3GPP (10415) +// 17.7.18 +type enumerated MBMS_User_Data_Mode_Indication +{ + Unicast (0), + Multicast_and_Unicast (1) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GGSN-Address (916) 3GPP (10415) +// 17.7.19 +type AVP_OctetString MBMS_GGSN_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GGSN-IPv6-Address (917) 3GPP (10415) +// 17.7.20 +type AVP_OctetString MBMS_GGSN_IPv6_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-BMSC-SSM-IP-Address (918) 3GPP (10415) +// 17.7.21 +type AVP_OctetString MBMS_BMSC_SSM_IP_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-BMSC-SSM-IPv6-Address (919) 3GPP (10415) +// 17.7.22 +type AVP_OctetString MBMS_BMSC_SSM_IPv6_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Flow-Identifier (920) 3GPP (10415) +// 17.7.23 +type AVP_OctetString MBMS_Flow_Identifier; + +// 3GPP TS 29.061 V13.7.0 +// AVP: CN-IP-Multicast-Distribution (921) 3GPP (10415) +// 17.7.24 +type enumerated CN_IP_Multicast_Distribution +{ + NO_IP_MULTICAST (0), + IP_MULTICAST (1) +} + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-HC-Indicator (922) 3GPP (10415) +// 17.7.25 +type AVP_Unsigned32 MBMS_HC_Indicator; diff --git a/src/GqInterface_PC_3GPP_TS29209_670.ddf b/src/GqInterface_PC_3GPP_TS29209_670.ddf index 51cfb97..6d48fed 100644 --- a/src/GqInterface_PC_3GPP_TS29209_670.ddf +++ b/src/GqInterface_PC_3GPP_TS29209_670.ddf @@ -37,7 +37,7 @@ // // File: GqInterface_PC_3GPP_TS29209_670.ddf // Description: DDF for Gq according to 3GPP TS 29.209 V6.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GqInterface_S3_ETSI_TS183017_231.ddf b/src/GqInterface_S3_ETSI_TS183017_231.ddf index 861351d..a60aa61 100644 --- a/src/GqInterface_S3_ETSI_TS183017_231.ddf +++ b/src/GqInterface_S3_ETSI_TS183017_231.ddf @@ -37,7 +37,7 @@ // // File: GqInterface_S3_ETSI_TS183017_231.ddf // Description: DDF for Gq according to ETSI TS 183.017 V2.3.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_CRP_3GPP_TS29210_670.ddf b/src/GxInterface_CRP_3GPP_TS29210_670.ddf index 1d36e68..6b5f776 100644 --- a/src/GxInterface_CRP_3GPP_TS29210_670.ddf +++ b/src/GxInterface_CRP_3GPP_TS29210_670.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_CRP_3GPP_TS29210_670.ddf // Description: DDF for Gx according to 3GPP TS 29.210 V6.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_740.ddf b/src/GxInterface_PCC_3GPP_TS29212_740.ddf index ee4685e..45b7508 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_740.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_740.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_740.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V7.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_820.ddf b/src/GxInterface_PCC_3GPP_TS29212_820.ddf index ce1ee45..40de8d4 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_820.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_820.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_820.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_830.ddf b/src/GxInterface_PCC_3GPP_TS29212_830.ddf index 34e3851..94d1fba 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_830.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_830.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_830.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_840.ddf b/src/GxInterface_PCC_3GPP_TS29212_840.ddf index bf29900..de848a1 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_840.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_840.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_840.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf b/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf index 3186603..afbcd6f 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_8a0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.10.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf b/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf index 657c4f2..b8bc3c7 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_8b1.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.11.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_910.ddf b/src/GxInterface_PCC_3GPP_TS29212_910.ddf index 4ad631b..bca43e3 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_910.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_910.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_910.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_930.ddf b/src/GxInterface_PCC_3GPP_TS29212_930.ddf index 242e88d..98e8f71 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_930.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_930.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_930.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_970.ddf b/src/GxInterface_PCC_3GPP_TS29212_970.ddf index b5f9bda..fd832ea 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_970.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_970.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_930.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.5.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf b/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf index 3612fcd..4088edf 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_9b0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.11.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf b/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf index ca60fe0..0864f80 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_aa0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V10.10.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_c52.ddf b/src/GxInterface_PCC_3GPP_TS29212_c52.ddf index ddd7662..51d431c 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_c52.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_c52.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_c52.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V12.5.2 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_d70.ddf b/src/GxInterface_PCC_3GPP_TS29212_d70.ddf new file mode 100644 index 0000000..3a8cd54 --- /dev/null +++ b/src/GxInterface_PCC_3GPP_TS29212_d70.ddf @@ -0,0 +1,1099 @@ +/****************************************************************************** +* Copyright (c) 2004, 2014 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Roland Gecse - initial implementation and initial documentation +* Akos Pernek +* Antal Wuh.Hen.Chang +* Attila Fulop +* Balazs Barcsik +* Bence Molnar +* Csaba Koppany +* David Juhasz +* Eduard Czimbalmos +* Elemer Lelik +* Endre Kiss +* Endre Kulcsar +* Gabor Szalai +* Gabor Tatarka +* Gergely Futo +* Istvan Sandor +* Kalman Mikecz +* Krisztian Pandi +* Kulcsár Endre +* Laszlo Tamas Zeke +* Norbert Pinter +* Roland Gecse +* Tibor Bende +* Tibor Szabo +* Timea Moder +* Zoltan Medve +* Zsolt Nandor Torok +* Zsolt Szalai +* Akos Makovics +******************************************************************************/ +// +// File: GxInterface_PCC_3GPP_TS29212_d70.ddf +// Description: DDF for Gx according to 3GPP TS 29.212 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: PCC +// APPLICATION-REVISION: VC_5_2 + +// AVP implementations according to: +// 3GPP TS 29.212 V13.7.0 - Policy and Charging Control over Gx interface +// +// +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// IETF RFC 4006 - Diameter Credit Control Application +// 3GPP TS 29.061 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// 3GPP TS 29.214 - Policy and Charging Control over Rx reference points +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// 3GPP TS 29.272 - EPS; MME and SGSN related interfaces based on Diameter protocol +// 3GPP2 X.S0057-O - (3GPP2-BSID AVP reused for Gx and Gxx interface) +// 3GPP TS 32.299 - Telecommunication manegement; Charging management; Diameter charging applications +// +// Notes: +// Present application is based on 3GPP TS 29.210 V6.7.0 but has its own vendor +// specific Diameter application with application id: 16777238 +// + +// 3GPP TS 29.212 V13.7.0 5.6 +type enumerated Command_Code { + Credit_Control (272), + Re_Auth (258) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Bearer-Usage (1000) 3GPP (10415) +// 5.3.1 +type enumerated Bearer_Usage +{ + GENERAL (0), + IMS_SIGNALLING (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Install (1001) 3GPP (10415) +// 5.3.2 +type AVP_Grouped Charging_Rule_Install; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Remove (1002) 3GPP (10415) +// 5.3.3 +type AVP_Grouped Charging_Rule_Remove; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Definition (1003) 3GPP (10415) +// 5.3.4 +type AVP_Grouped Charging_Rule_Definition; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Base-Name (1004) 3GPP (10415) +// 5.3.5 +type AVP_UTF8String Charging_Rule_Base_Name; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Name (1005) 3GPP (10415) +// 5.3.6 +type AVP_OctetString Charging_Rule_Name; + + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Event-Trigger (1006) 3GPP (10415) +// 5.3.7 +type enumerated Event_Trigger +{ + SGSN_CHANGE (0), + QOS_CHANGE (1), + RAT_CHANGE (2), + TFT_CHANGE (3), + PLMN_CHANGE (4), + LOSS_OF_BEARER (5), + RECOVERY_OF_BEARER (6), + IP_CAN_CHANGE (7), + QOS_CHANGE_EXCEEDING_AUTHORIZATION (11), + RAI_CHANGE (12), + USER_LOCATION_CHANGE (13), + NO_EVENT_TRIGGERS (14), + OUT_OF_CREDIT (15), + REALLOCATION_OF_CREDIT (16), + REVALIDATION_TIMEOUT (17), + UE_IP_ADDRESS_ALLOCATE (18), + UE_IP_ADDRESS_RELEASE (19), + DEFAULT_EPS_BEARER_QOS_CHANGE (20), + AN_GW_CHANGE (21), + SUCCESSFUL_RESOURCE_ALLOCATION (22), + RESOURCE_MODIFICATION_REQUEST (23), + PGW_TRACE_CONTROL (24), + UE_TIME_ZONE_CHANGE (25), + TAI_CHANGE (26), + ECGI_CHANGE (27), + CHARGING_CORRELATION_EXCHANGE (28), + APN_AMBR_MODIFICATION_FAILURE (29), + USER_CSG_INFORMATION_CHANGE (30), + USAGE_REPORT (33), + DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE (34), + USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE (35), + USER_CSG_HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE (36), + ROUTING_RULE_CHANGE (37), + APPLICATION_START (39), + APPLICATION_STOP (40), + CS_TO_PS_HANDOVER (42), + UE_LOCAL_IP_ADDRESS_CHANGE (43), + HENB_LOCAL_IP_ADDRESS_CHANGE (44), + ACCESS_NETWORK_INFO_REPORT (45), + CREDIT_MANAGEMENT_SESSION_FAILURE (46), + DEFAULT_QOS_CHANGE (47), + CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT (48), + ADDITION_OF_ACCESS (49), + REMOVAL_OF_ACCESS (50), + UNAVAILABLITY_OF_ACCESS (51), + AVAILABLITY_OF_ACCESS (52), + RESOURCE_RELEASE (53) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Metering-Method (1007) 3GPP (10415) +// 5.3.8 +type enumerated Metering_Method +{ + DURATION (0), + VOLUME (1), + DURATION_VOLUME (2), + EVENT (3) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Offline (1008) 3GPP (10415) +// 5.3.9 +type enumerated Offline +{ + DISABLE_OFFLINE (0), + ENABLE_OFFLINE (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Online (1009) 3GPP (10415) +// 5.3.10 +type enumerated Online +{ + DISABLE_ONLINE (0), + ENABLE_ONLINE (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Precedence (1010) 3GPP (10415) +// 5.3.11 +type AVP_Unsigned32 Precedence; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Reporting-Level (1011) 3GPP (10415) +// 5.3.12 +type enumerated Reporting_Level +{ + SERVICE_IDENTIFIER_LEVEL (0), + RATING_GROUP_LEVEL (1), + SPONSORED_CONNECTIVITY_LEVEL (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TFT-Filter (1012) 3GPP (10415) +// 5.3.13 +type AVP_IPFilterRule TFT_Filter; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TFT-Packet-Filter-Information (1013) 3GPP (10415) +// 5.3.14 +type AVP_Grouped TFT_Packet_Filter_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ToS-Traffic-Class (1014) 3GPP (10415) +// 5.3.15 +type AVP_OctetString ToS_Traffic_Class; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Information (1016) 3GPP (10415) +// 5.3.16 +type AVP_Grouped QoS_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Class-Identifier (1028) 3GPP (10415) +// 5.3.17 +type AVP_Unsigned32 QoS_Class_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Rule-Report (1018) 3GPP (10415) +// 5.3.18 +type AVP_Grouped Charging_Rule_Report; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: PCC-Rule-Status (1019) 3GPP (10415) +// 5.3.19 +type enumerated PCC_Rule_Status +{ + ACTIVE (0), + INACTIVE (1), + TEMPORARILY_INACTIVE (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Bearer-Identifier (1020) 3GPP (10415) +// 5.3.20 +type AVP_OctetString Bearer_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Bearer-Operation (1021) 3GPP (10415) +// 5.3.21 +type enumerated Bearer_Operation +{ + TERMINATION (0), + ESTABLISHMENT (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Access-Network-Charging-Identifier-Gx (1022) 3GPP (10415) +// 5.3.22 +type AVP_Grouped Access_Network_Charging_Identifier_Gx; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Bearer-Control-Mode (1023) 3GPP (10415) +// 5.3.23 +type enumerated Bearer_Control_Mode +{ + UE_ONLY (0), + RESERVED (1), + UE_NW (2), + SX_GX (3), + SX_ONLY (4) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Network-Request-Support (1024) 3GPP (10415) +// 5.3.24 +type enumerated Network_Request_Support +{ + NETWORK_REQUEST_NOT_SUPPORTED (0), + NETWORK_REQUEST_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Guaranteed-Bitrate-DL (1025) 3GPP (10415) +// 5.3.25 +type AVP_Unsigned32 Guaranteed_Bitrate_DL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Guaranteed-Bitrate-UL (1026) 3GPP (10415) +// 5.3.26 +type AVP_Unsigned32 Guaranteed_Bitrate_UL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: IP-CAN-Type (1027) 3GPP (10415) +// 5.3.27 +type enumerated IP_CAN_Type +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Negotiation (1029) 3GPP (10415) +// 5.3.28 +type enumerated QoS_Negotiation +{ + NO_QoS_NEGOTIATION (0), + QoS_NEGOTIATION_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Upgrade (1030) 3GPP (10415) +// 5.3.29 +type enumerated QoS_Upgrade +{ + QoS_UPGRADE_NOT_SUPPORTED (0), + QoS_UPGRADE_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Event-Report-Indication (1033) 3GPP (10415) +// 5.3.30 +type AVP_Grouped Event_Report_Indication; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: RAT-Type (1032) 3GPP (10415) +// 5.3.31 +type enumerated RAT_Type +{ + WLAN (0), + VIRTUAL (1), + UTRAN (1000), + GERAN (1001), + GAN (1002), + HSPA_EVOLUTION (1003), + EUTRAN (1004), + EUTRAN_NB_IoT (1005), + CDMA2000_1X (2000), + HRPD (2001), + UMB (2002), + EHRPD (2003) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Allocation-Retention-Priority (1034) 3GPP (10415) +// 5.3.32 +type AVP_Grouped Allocation_Retention_Priority; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: CoA-IP-Address (1035) 3GPP (10415) +// 5.3.33 +type AVP_Address CoA_IP_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Tunnel-Header-Filter (1036) 3GPP (10415) +// 5.3.34 +type AVP_IPFilterRule Tunnel_Header_Filter; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Tunnel-Header-Length (1037) 3GPP (10415) +// 5.3.35 +type AVP_Unsigned32 Tunnel_Header_Length; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Tunnel-Information (1038) 3GPP (10415) +// 5.3.36 +type AVP_Grouped Tunnel_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: CoA-Information (1039) 3GPP (10415) +// 5.3.37 +type AVP_Grouped CoA_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Rule-Failure-Code (1031) 3GPP (10415) +// 5.3.38 +type enumerated Rule_Failure_Code +{ + UNKNOWN_RULE_NAME (1), + RATING_GROUP_ERROR (2), + SERVICE_IDENTIFIER_ERROR (3), + GW_PCEF_MALFUNCTION (4), + RESOURCES_LIMITATION (5), + MAX_NR_BEARERS_REACHED (6), + UNKNOWN_BEARER_ID (7), + MISSING_BEARER_ID (8), + MISSING_FLOW_DESCRIPTION (9), + RESOURCE_ALLOCATION_FAILURE (10), + UNSUCCESSFUL_QOS_VALIDATION (11), + INCORRECT_FLOW_INFORMATION (12), + PS_TO_CS_HANDOVER (13), + TDF_APPLICATION_IDENTIFIER_ERROR (14), + NO_BEARER_BOUND (15), + FILTER_RESTRICTIONS (16), + AN_GW_FAILED (17), + MISSING_REDIRECT_SERVER_ADDRESS (18), + CM_END_USER_SERVICE_DENIED (19), + CM_CREDIT_CONTROL_NOT_APPLICABLE (20), + CM_AUTHORIZATION_REJECTED (21), + CM_USER_UNKNOWN (22), + CM_RATING_FAILED (23), + ROUTING_RULE_REJECTION (24), + UNKNOWN_ROUTING_ACCESS_INFORMATION (25), + UNKNOWN (99) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: APN-Aggregate-Max-Bitrate-DL (1040) 3GPP (10415) +// 5.3.39 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_DL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: APN-Aggregate-Max-Bitrate-UL (1041) 3GPP (10415) +// 5.3.40 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_UL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Revalidation-Time (1042) 3GPP (10415) +// 5.3.41 +type AVP_Time Revalidation_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Rule-Activation-Time (1043) 3GPP (10415) +// 5.3.42 +type AVP_Time Rule_Activation_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Rule-DeActivation-Time (1044) 3GPP (10415) +// 5.3.43 +type AVP_Time Rule_DeActivation_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Session-Release-Cause (1045) 3GPP (10415) +// 5.3.44 +type enumerated Session_Release_Cause +{ + UNSPECIFIED_REASON (0), + UE_SUBSCRIPTION_REASON (1), + INSUFFICIENT_SERVER_RESOURCES (2), + IP_CAN_SESSION_TERMINATION (3), + UE_IP_ADDRESS_RELEASE (4) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Priority-Level (1046) 3GPP (10415) +// 5.3.45 +type AVP_Unsigned32 Priority_Level; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Pre-emption-Capability (1047) 3GPP (10415) +// 5.3.46 +type enumerated Pre_emption_Capability +{ + PRE_EMPTION_CAPABILITY_ENABLED (0), + PRE_EMPTION_CAPABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Pre-emption-Vulnerability (1048) 3GPP (10415) +// 5.3.47 +type enumerated Pre_emption_Vulnerability +{ + PRE_EMPTION_VULNERABILITY_ENABLED (0), + PRE_EMPTION_VULNERABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Default-EPS-Bearer-QoS (1049) 3GPP (10415) +// 5.3.48 +type AVP_Grouped Default_EPS_Bearer_QoS; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: AN-GW-Address (1050) 3GPP (10415) +// 5.3.49 +type AVP_Address AN_GW_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Resource-Allocation-Notification (1063) 3GPP (10415) +// 5.3.50 +type enumerated Resource_Allocation_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Security-Parameter-Index (1056) 3GPP (10415) +// 5.3.51 +type AVP_OctetString Security_Parameter_Index; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Flow-Label (1057) 3GPP (10415) +// 5.3.52 +type AVP_OctetString Flow_Label; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Flow-Information (1058) 3GPP (10415) +// 5.3.53 +type AVP_Grouped Flow_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Packet-Filter-Content (1059) 3GPP (10415) +// 5.3.54 +type AVP_IPFilterRule Packet_Filter_Content; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Packet-Filter-Identifier (1060) 3GPP (10415) +// 5.3.55 +type AVP_OctetString Packet_Filter_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Packet-Filter-Information (1061) 3GPP (10415) +// 5.3.56 +type AVP_Grouped Packet_Filter_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Packet-Filter-Operation (1062) 3GPP (10415) +// 5.3.57 +type enumerated Packet_Filter_Operation +{ + DELETION (0), + ADDITION (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: PDN-Connection-ID (1065) 3GPP (10415) +// 5.3.58 +type AVP_OctetString PDN_Connection_ID; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Monitoring-Key (1066) 3GPP (10415) +// 5.3.59 +type AVP_OctetString Monitoring_Key; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Usage-Monitoring-Information (1067) 3GPP (10415) +// 5.3.60 +type AVP_Grouped Usage_Monitoring_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Usage-Monitoring-Level (1068) 3GPP (10415) +// 5.3.61 +type enumerated Usage_Monitoring_Level +{ + SESSION_LEVEL (0), + PCC_RULE_LEVEL (1), + ADC_RULE_LEVEL (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Usage-Monitoring-Report (1069) 3GPP (10415) +// 5.3.62 +type enumerated Usage_Monitoring_Report +{ + USAGE_MONITORING_REPORT_REQUIRED (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Usage-Monitoring-Support (1070) 3GPP (10415) +// 5.3.63 +type enumerated Usage_Monitoring_Support +{ + USAGE_MONITORING_DISABLED (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: CSG-Information-Reporting (1071) 3GPP (10415) +// 5.3.64 +type enumerated CSG_Information_Reporting +{ + CHANGE_CSG_CELL (0), + CHANGE_CSG_SUBSCRIBED_HYBRID_CELL (1), + CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL (2) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Flow-Direction (1080) 3GPP (10415) +// 5.3.65 +type enumerated Flow_Direction +{ + UNSPECIFIED (0), + DOWNLINK (1), + UPLINK (2), + BIDIRECTIONAL (3) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Packet-Filter-Usage (1072) 3GPP (10415) +// 5.3.66 +type enumerated Packet_Filter_Usage +{ + SEND_TO_UE (1) +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: Charging-Correlation-Indicator (1073) 3GPP (10415) +// 5.3.67 +type enumerated Charging_Correlation_Indicator +{ + CHARGING_IDENTIFIER_REQUIRED (0) +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Install (1081) 3GPP (10415) +// 5.3.68 +type AVP_Grouped Routing_Rule_Install; + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Remove (1075) 3GPP (10415) +// 5.3.69 +type AVP_Grouped Routing_Rule_Remove; + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Definition (1076) 3GPP (10415) +// 5.3.70 +type AVP_Grouped Routing_Rule_Definition; + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Identifier (1077) 3GPP (10415) +// 5.3.71 +type AVP_OctetString Routing_Rule_Identifier; + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Filter (1078) 3GPP (10415) +// 5.3.72 +type AVP_Grouped Routing_Filter; + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-IP-Address (1079) 3GPP (10415) +// 5.3.72 +type AVP_Address Routing_IP_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-Application-Identifier (1088) 3GPP (10415) +// 5.3.77 +type AVP_OctetString TDF_Application_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-Information (1087) 3GPP (10415) +// 5.3.78 +type AVP_Grouped TDF_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-Destination-Realm (1090) 3GPP (10415) +// 5.3.79 +type AVP_DiameterIdentity TDF_Destination_Realm; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-Destination-Host (1089) 3GPP (10415) +// 5.3.80 +type AVP_DiameterIdentity TDF_Destination_Host; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-IP-Address (1091) 3GPP (10415) +// 5.3.81 +type AVP_Address TDF_IP_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Redirect-Information (1085) 3GPP (10415) +// 5.3.82 +type AVP_Grouped Redirect_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Redirect-Support (1086) 3GPP (10415) +// 5.3.83 +type enumerated Redirect_Support +{ + REDIRECTION_DISABLED (0), + REDIRECTION_ENABLED (1) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: PS-to-CS-Session-Continuity (1099) 3GPP (10415) +// 5.3.84 +type enumerated PS_to_CS_Session_Continuity +{ + VIDEO_PS2CS_CONT_CANDIDATE (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Application-Detection-Information (1098) 3GPP (10415) +// 5.3.91 +type AVP_Grouped Application_Detection_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TDF-Application-Instance-Identifier (2802) 3GPP (10415) +// 5.3.92 +type AVP_OctetString TDF_Application_Instance_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: HeNB-Local-IP-Address (2804) 3GPP (10415) +// 5.3.95 +type AVP_Address HeNB_Local_IP_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: UE-Local-IP-Address (2805) 3GPP (10415) +// 5.3.96 +type AVP_Address UE_Local_IP_Address; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: UDP-Source-Port (2806) 3GPP (10415) +// 5.3.97 +type AVP_Unsigned32 UDP_Source_Port; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Mute-Notification (2809) 3GPP (10415) +// 5.3.98 +type enumerated Mute_Notification +{ + MUTE_REQUIRED (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Monitoring-Time (2810) 3GPP (10415) +// 5.3.99 +type AVP_Time Monitoring_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: AN-GW-Status (2811) 3GPP (10415) +// 5.3.100 +type enumerated AN_GW_Status +{ + AN_GW_FAILED (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: User-Location-Info-Time (2812) 3GPP (10415) +// 5.3.101 +type AVP_Time User_Location_Info_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Credit-Management-Status (1082) 3GPP (10415) +// 5.3.102 +type AVP_Unsigned32 Credit_Management_Status; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Default-QoS-Information (2816) 3GPP (10415) +// 5.3.103 +type AVP_Grouped Default_QoS_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Default-QoS-Name (2817) 3GPP (10415) +// 5.3.104 +type AVP_UTF8String Default_QoS_Name; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Conditional-APN-Aggregate-Max-Bitrate (2818) 3GPP (10415) +// 5.3.105 +type AVP_Grouped Conditional_APN_Aggregate_Max_Bitrate; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: RAN-NAS-Release-Cause (2819) 3GPP (10415) +// 5.3.106 +type AVP_OctetString RAN_NAS_Release_Cause; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Presence-Reporting-Area-Elements-List (2820) 3GPP (10415) +// 5.3.107 +type AVP_OctetString Presence_Reporting_Area_Elements_List; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Presence-Reporting-Area-Identifier (2821) 3GPP (10415) +// 5.3.108 +type AVP_OctetString Presence_Reporting_Area_Identifier; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Presence-Reporting-Area-Information (2822) 3GPP (10415) +// 5.3.109 +type AVP_Grouped Presence_Reporting_Area_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Presence-Reporting-Area-Status (2823) 3GPP (10415) +// 5.3.110 +type AVP_Unsigned32 Presence_Reporting_Area_Status; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: NetLoc-Access-Support (2824) 3GPP (10415) +// 5.3.111 +type AVP_Unsigned32 NetLoc_Access_Support; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Fixed-User-Location-Info (2825) 3GPP (10415) +// 5.3.112 +type AVP_Grouped Fixed_User_Location_Info; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: PCSCF-Restoration-Indication (2826) 3GPP (10415) +// 5.3.113 +type AVP_Unsigned32 PCSCF_Restoration_Indication; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: IP-CAN-Session-Charging-Scope (2827) 3GPP (10415) +// 5.3.114 +type enumerated IP_CAN_Session_Charging_Scope +{ + IP_CAN_SESSION_SCOPE (0) +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: Monitoring-Flags (2828) 3GPP (10415) +// 5.3.115 +type AVP_Unsigned32 Monitoring_Flags; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: NBIFOM-Support (2831) 3GPP (10415) +// 5.3.116 +type enumerated NBIFOM_Support +{ + NBIFOM_NOT_SUPPORTED (0), + NBIFOM_SUPPORTED (1) +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: NBIFOM-Mode (2830) 3GPP (10415) +// 5.3.117 +type enumerated NBIFOM_Mode +{ + UE_INITIATED (0), + NETWORK_INITIATED (1) +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Report (2835) 3GPP (10415) +// 5.3.118 +type AVP_Grouped Routing_Rule_Report; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Routing-Rule-Failure-Code (2834) 3GPP (10415) +// 5.3.119 +type AVP_Unsigned32 Routing_Rule_Failure_Code; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Default-Access (2829) 3GPP (10415) +// 5.3.120 +type enumerated Default_Access +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Access-Availability-Change-Reason (2833) 3GPP (10415) +// 5.3.121 +type AVP_Unsigned32 Access_Availability_Change_Reason; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: RAN-Rule-Support (2832) 3GPP (10415) +// 5.3.122 +type AVP_Unsigned32 RAN_Rule_Support; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Traffic-Steering-Policy-Identifier-DL (2836) 3GPP (10415) +// 5.3.123 +type AVP_OctetString Traffic_Steering_Policy_Identifier_DL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Traffic-Steering-Policy-Identifier-UL (2837) 3GPP (10415) +// 5.3.124 +type AVP_OctetString Traffic_Steering_Policy_Identifier_UL; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Resource-Release-Notification (2841) 3GPP (10415) +// 5.3.125 +type enumerated Resource_Release_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Removal-Of-Access (2842) 3GPP (10415) +// 5.3.126 +type enumerated Removal_Of_Access +{ + REMOVAL_OF_ACCESS (0) +} + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Execution-Time (2839) 3GPP (10415) +// 5.3.127 +type AVP_Time Execution_Time; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Conditional-Policy-Information (2840) 3GPP (10415) +// 5.3.128 +type AVP_Grouped Conditional_Policy_Information; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: TCP-Source-Port (2843) 3GPP (10415) +// 5.3.129 +type AVP_Unsigned32 TCP_Source_Port; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Install (1051) 3GPP (10415) +// 5a.3.1 +type AVP_Grouped QoS_Rule_Install; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Remove (1052) 3GPP (10415) +// 5a.3.2 +type AVP_Grouped QoS_Rule_Remove; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Definition (1053) 3GPP (10415) +// 5a.3.3 +type AVP_Grouped QoS_Rule_Definition; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Name (1054) 3GPP (10415) +// 5a.3.4 +type AVP_OctetString QoS_Rule_Name; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Report (1055) 3GPP (10415) +// 5a.3.5 +type AVP_Grouped QoS_Rule_Report; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: Session-Linking-Indicator (1064) 3GPP (10415) +// 5a.3.6 +type enumerated Session_Linking_Indicator +{ + SESSION_LINKING_IMMEDIATE (0), + SESSION_LINKING_DEFERRED (1), + SESSION_LINKING_INVALID (100) //Requested for negative testing in CR_TR00019832. +} + +// 3GPP TS 29.212 V13.7.0 +// AVP: QoS-Rule-Base-Name (1074) 3GPP (10415) +// 5a.3.7 +type AVP_UTF8String QoS_Rule_Base_Name; + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Install (1092) 3GPP (10415) +// 5b.3.1 +type AVP_Grouped ADC_Rule_Install; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Remove (1093) 3GPP (10415) +// 5b.3.2 +type AVP_Grouped ADC_Rule_Remove; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Definition (1094) 3GPP (10415) +// 5b.3.3 +type AVP_Grouped ADC_Rule_Definition; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Base-Name (1095) 3GPP (10415) +// 5b.3.4 +type AVP_UTF8String ADC_Rule_Base_Name; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Name (1096) 3GPP (10415) +// 5b.3.5 +type AVP_OctetString ADC_Rule_Name; + + +// 3GPP TS 29.212 V13.7.0 +// AVP: ADC-Rule-Report (1097) 3GPP (10415) +// 5b.3.6 +type AVP_Grouped ADC_Rule_Report; + diff --git a/src/GxInterface_PCC_3GPP_TS29212_e00.ddf b/src/GxInterface_PCC_3GPP_TS29212_e00.ddf new file mode 100644 index 0000000..b3def9d --- /dev/null +++ b/src/GxInterface_PCC_3GPP_TS29212_e00.ddf @@ -0,0 +1,1073 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation +******************************************************************************/ +// +// File: GxInterface_PCC_3GPP_TS29212_e00.ddf +// Description: DDF for Gx Gxx and Sd according to 3GPP TS 29.212 V14.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: PCC +// APPLICATION-REVISION: Ve_0_0 + +// AVP implementations according to: +// 3GPP TS 29.212 V14.0.0 - Policy and Charging Control over Gx interface +// +// +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// IETF RFC 4006 - Diameter Credit Control Application +// 3GPP TS 29.061 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// 3GPP TS 29.214 - Policy and Charging Control over Rx reference points +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// 3GPP TS 29.272 - EPS; MME and SGSN related interfaces based on Diameter protocol +// 3GPP2 X.S0057-O - (3GPP2-BSID AVP reused for Gx and Gxx interface) +// 3GPP TS 32.299 - Telecommunication manegement; Charging management; Diameter charging applications +// +// Notes: +// Present application is based on 3GPP TS 29.210 V6.7.0 but has its own vendor +// specific Diameter application with application id for the Gx Application : 16777238 +// Application-ID for the Gxx Application is 16777266 +// Application-ID for the Sd Application is 16777303 + +// 3GPP TS 29.212 V14.0.0 +// 5.6, 5b.6, 5c.6 +type enumerated Command_Code { + Credit_Control (272), + Re_Auth (258), + TDF_Session (8388637) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Bearer-Usage (1000) 3GPP (10415) +// 5.3.1 +type enumerated Bearer_Usage +{ + GENERAL (0), + IMS_SIGNALLING (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Install (1001) 3GPP (10415) +// 5.3.2 +type AVP_Grouped Charging_Rule_Install; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Remove (1002) 3GPP (10415) +// 5.3.3 +type AVP_Grouped Charging_Rule_Remove; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Definition (1003) 3GPP (10415) +// 5.3.4 +type AVP_Grouped Charging_Rule_Definition; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Base-Name (1004) 3GPP (10415) +// 5.3.5 +type AVP_UTF8String Charging_Rule_Base_Name; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Name (1005) 3GPP (10415) +// 5.3.6 +type AVP_OctetString Charging_Rule_Name; + + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Event-Trigger (1006) 3GPP (10415) +// 5.3.7 +type enumerated Event_Trigger +{ + SGSN_CHANGE (0), + QOS_CHANGE (1), + RAT_CHANGE (2), + TFT_CHANGE (3), + PLMN_CHANGE (4), + LOSS_OF_BEARER (5), + RECOVERY_OF_BEARER (6), + IP_CAN_CHANGE (7), + QOS_CHANGE_EXCEEDING_AUTHORIZATION (11), + RAI_CHANGE (12), + USER_LOCATION_CHANGE (13), + NO_EVENT_TRIGGERS (14), + OUT_OF_CREDIT (15), + REALLOCATION_OF_CREDIT (16), + REVALIDATION_TIMEOUT (17), + UE_IP_ADDRESS_ALLOCATE (18), + UE_IP_ADDRESS_RELEASE (19), + DEFAULT_EPS_BEARER_QOS_CHANGE (20), + AN_GW_CHANGE (21), + SUCCESSFUL_RESOURCE_ALLOCATION (22), + RESOURCE_MODIFICATION_REQUEST (23), + PGW_TRACE_CONTROL (24), + UE_TIME_ZONE_CHANGE (25), + TAI_CHANGE (26), + ECGI_CHANGE (27), + CHARGING_CORRELATION_EXCHANGE (28), + APN_AMBR_MODIFICATION_FAILURE (29), + USER_CSG_INFORMATION_CHANGE (30), + USAGE_REPORT (33), + DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE (34), + USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE (35), + USER_CSG_HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE (36), + ROUTING_RULE_CHANGE (37), + APPLICATION_START (39), + APPLICATION_STOP (40), + CS_TO_PS_HANDOVER (42), + UE_LOCAL_IP_ADDRESS_CHANGE (43), + HENB_LOCAL_IP_ADDRESS_CHANGE (44), + ACCESS_NETWORK_INFO_REPORT (45), + CREDIT_MANAGEMENT_SESSION_FAILURE (46), + DEFAULT_QOS_CHANGE (47), + CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT (48), + ADDITION_OF_ACCESS (49), + REMOVAL_OF_ACCESS (50), + UNAVAILABLITY_OF_ACCESS (51), + AVAILABLITY_OF_ACCESS (52), + RESOURCE_RELEASE (53), + ENODEB_CHANGE (54) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Metering-Method (1007) 3GPP (10415) +// 5.3.8 +type enumerated Metering_Method +{ + DURATION (0), + VOLUME (1), + DURATION_VOLUME (2), + EVENT (3) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Offline (1008) 3GPP (10415) +// 5.3.9 +type enumerated Offline +{ + DISABLE_OFFLINE (0), + ENABLE_OFFLINE (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Online (1009) 3GPP (10415) +// 5.3.10 +type enumerated Online +{ + DISABLE_ONLINE (0), + ENABLE_ONLINE (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Precedence (1010) 3GPP (10415) +// 5.3.11 +type AVP_Unsigned32 Precedence; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Reporting-Level (1011) 3GPP (10415) +// 5.3.12 +type enumerated Reporting_Level +{ + SERVICE_IDENTIFIER_LEVEL (0), + RATING_GROUP_LEVEL (1), + SPONSORED_CONNECTIVITY_LEVEL (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TFT-Filter (1012) 3GPP (10415) +// 5.3.13 +type AVP_IPFilterRule TFT_Filter; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TFT-Packet-Filter-Information (1013) 3GPP (10415) +// 5.3.14 +type AVP_Grouped TFT_Packet_Filter_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ToS-Traffic-Class (1014) 3GPP (10415) +// 5.3.15 +type AVP_OctetString ToS_Traffic_Class; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Information (1016) 3GPP (10415) +// 5.3.16 +type AVP_Grouped QoS_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Class-Identifier (1028) 3GPP (10415) +// 5.3.17 +type AVP_Unsigned32 QoS_Class_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Rule-Report (1018) 3GPP (10415) +// 5.3.18 +type AVP_Grouped Charging_Rule_Report; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: PCC-Rule-Status (1019) 3GPP (10415) +// 5.3.19 +type enumerated PCC_Rule_Status +{ + ACTIVE (0), + INACTIVE (1), + TEMPORARILY_INACTIVE (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Bearer-Identifier (1020) 3GPP (10415) +// 5.3.20 +type AVP_OctetString Bearer_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Bearer-Operation (1021) 3GPP (10415) +// 5.3.21 +type enumerated Bearer_Operation +{ + TERMINATION (0), + ESTABLISHMENT (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Access-Network-Charging-Identifier-Gx (1022) 3GPP (10415) +// 5.3.22 +type AVP_Grouped Access_Network_Charging_Identifier_Gx; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Bearer-Control-Mode (1023) 3GPP (10415) +// 5.3.23 +type enumerated Bearer_Control_Mode +{ + UE_ONLY (0), + RESERVED (1), + UE_NW (2), + SX_GX (3), + SX_ONLY (4) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Network-Request-Support (1024) 3GPP (10415) +// 5.3.24 +type enumerated Network_Request_Support +{ + NETWORK_REQUEST_NOT_SUPPORTED (0), + NETWORK_REQUEST_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Guaranteed-Bitrate-DL (1025) 3GPP (10415) +// 5.3.25 +type AVP_Unsigned32 Guaranteed_Bitrate_DL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Guaranteed-Bitrate-UL (1026) 3GPP (10415) +// 5.3.26 +type AVP_Unsigned32 Guaranteed_Bitrate_UL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: IP-CAN-Type (1027) 3GPP (10415) +// 5.3.27 +type enumerated IP_CAN_Type +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Negotiation (1029) 3GPP (10415) +// 5.3.28 +type enumerated QoS_Negotiation +{ + NO_QoS_NEGOTIATION (0), + QoS_NEGOTIATION_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Upgrade (1030) 3GPP (10415) +// 5.3.29 +type enumerated QoS_Upgrade +{ + QoS_UPGRADE_NOT_SUPPORTED (0), + QoS_UPGRADE_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Event-Report-Indication (1033) 3GPP (10415) +// 5.3.30 +type AVP_Grouped Event_Report_Indication; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: RAT-Type (1032) 3GPP (10415) +// 5.3.31 +type enumerated RAT_Type +{ + WLAN (0), + VIRTUAL (1), + UTRAN (1000), + GERAN (1001), + GAN (1002), + HSPA_EVOLUTION (1003), + EUTRAN (1004), + EUTRAN_NB_IoT (1005), + CDMA2000_1X (2000), + HRPD (2001), + UMB (2002), + EHRPD (2003) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Allocation-Retention-Priority (1034) 3GPP (10415) +// 5.3.32 +type AVP_Grouped Allocation_Retention_Priority; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: CoA-IP-Address (1035) 3GPP (10415) +// 5.3.33 +type AVP_Address CoA_IP_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Tunnel-Header-Filter (1036) 3GPP (10415) +// 5.3.34 +type AVP_IPFilterRule Tunnel_Header_Filter; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Tunnel-Header-Length (1037) 3GPP (10415) +// 5.3.35 +type AVP_Unsigned32 Tunnel_Header_Length; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Tunnel-Information (1038) 3GPP (10415) +// 5.3.36 +type AVP_Grouped Tunnel_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: CoA-Information (1039) 3GPP (10415) +// 5.3.37 +type AVP_Grouped CoA_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Rule-Failure-Code (1031) 3GPP (10415) +// 5.3.38 +type enumerated Rule_Failure_Code +{ + UNKNOWN_RULE_NAME (1), + RATING_GROUP_ERROR (2), + SERVICE_IDENTIFIER_ERROR (3), + GW_PCEF_MALFUNCTION (4), + RESOURCES_LIMITATION (5), + MAX_NR_BEARERS_REACHED (6), + UNKNOWN_BEARER_ID (7), + MISSING_BEARER_ID (8), + MISSING_FLOW_DESCRIPTION (9), + RESOURCE_ALLOCATION_FAILURE (10), + UNSUCCESSFUL_QOS_VALIDATION (11), + INCORRECT_FLOW_INFORMATION (12), + PS_TO_CS_HANDOVER (13), + TDF_APPLICATION_IDENTIFIER_ERROR (14), + NO_BEARER_BOUND (15), + FILTER_RESTRICTIONS (16), + AN_GW_FAILED (17), + MISSING_REDIRECT_SERVER_ADDRESS (18), + CM_END_USER_SERVICE_DENIED (19), + CM_CREDIT_CONTROL_NOT_APPLICABLE (20), + CM_AUTHORIZATION_REJECTED (21), + CM_USER_UNKNOWN (22), + CM_RATING_FAILED (23), + ROUTING_RULE_REJECTION (24), + UNKNOWN_ROUTING_ACCESS_INFORMATION (25) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: APN-Aggregate-Max-Bitrate-DL (1040) 3GPP (10415) +// 5.3.39 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_DL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: APN-Aggregate-Max-Bitrate-UL (1041) 3GPP (10415) +// 5.3.40 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_UL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Revalidation-Time (1042) 3GPP (10415) +// 5.3.41 +type AVP_Time Revalidation_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Rule-Activation-Time (1043) 3GPP (10415) +// 5.3.42 +type AVP_Time Rule_Activation_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Rule-DeActivation-Time (1044) 3GPP (10415) +// 5.3.43 +type AVP_Time Rule_DeActivation_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Session-Release-Cause (1045) 3GPP (10415) +// 5.3.44 +type enumerated Session_Release_Cause +{ + UNSPECIFIED_REASON (0), + UE_SUBSCRIPTION_REASON (1), + INSUFFICIENT_SERVER_RESOURCES (2), + IP_CAN_SESSION_TERMINATION (3), + UE_IP_ADDRESS_RELEASE (4) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Priority-Level (1046) 3GPP (10415) +// 5.3.45 +type AVP_Unsigned32 Priority_Level; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Pre-emption-Capability (1047) 3GPP (10415) +// 5.3.46 +type enumerated Pre_emption_Capability +{ + PRE_EMPTION_CAPABILITY_ENABLED (0), + PRE_EMPTION_CAPABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Pre-emption-Vulnerability (1048) 3GPP (10415) +// 5.3.47 +type enumerated Pre_emption_Vulnerability +{ + PRE_EMPTION_VULNERABILITY_ENABLED (0), + PRE_EMPTION_VULNERABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Default-EPS-Bearer-QoS (1049) 3GPP (10415) +// 5.3.48 +type AVP_Grouped Default_EPS_Bearer_QoS; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: AN-GW-Address (1050) 3GPP (10415) +// 5.3.49 +type AVP_Address AN_GW_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Resource-Allocation-Notification (1063) 3GPP (10415) +// 5.3.50 +type enumerated Resource_Allocation_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Security-Parameter-Index (1056) 3GPP (10415) +// 5.3.51 +type AVP_OctetString Security_Parameter_Index; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Flow-Label (1057) 3GPP (10415) +// 5.3.52 +type AVP_OctetString Flow_Label; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Flow-Information (1058) 3GPP (10415) +// 5.3.53 +type AVP_Grouped Flow_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Packet-Filter-Content (1059) 3GPP (10415) +// 5.3.54 +type AVP_IPFilterRule Packet_Filter_Content; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Packet-Filter-Identifier (1060) 3GPP (10415) +// 5.3.55 +type AVP_OctetString Packet_Filter_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Packet-Filter-Information (1061) 3GPP (10415) +// 5.3.56 +type AVP_Grouped Packet_Filter_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Packet-Filter-Operation (1062) 3GPP (10415) +// 5.3.57 +type enumerated Packet_Filter_Operation +{ + DELETION (0), + ADDITION (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: PDN-Connection-ID (1065) 3GPP (10415) +// 5.3.58 +type AVP_OctetString PDN_Connection_ID; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Monitoring-Key (1066) 3GPP (10415) +// 5.3.59 +type AVP_OctetString Monitoring_Key; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Usage-Monitoring-Information (1067) 3GPP (10415) +// 5.3.60 +type AVP_Grouped Usage_Monitoring_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Usage-Monitoring-Level (1068) 3GPP (10415) +// 5.3.61 +type enumerated Usage_Monitoring_Level +{ + SESSION_LEVEL (0), + PCC_RULE_LEVEL (1), + ADC_RULE_LEVEL (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Usage-Monitoring-Report (1069) 3GPP (10415) +// 5.3.62 +type enumerated Usage_Monitoring_Report +{ + USAGE_MONITORING_REPORT_REQUIRED (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Usage-Monitoring-Support (1070) 3GPP (10415) +// 5.3.63 +type enumerated Usage_Monitoring_Support +{ + USAGE_MONITORING_DISABLED (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: CSG-Information-Reporting (1071) 3GPP (10415) +// 5.3.64 +type enumerated CSG_Information_Reporting +{ + CHANGE_CSG_CELL (0), + CHANGE_CSG_SUBSCRIBED_HYBRID_CELL (1), + CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL (2) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Flow-Direction (1080) 3GPP (10415) +// 5.3.65 +type enumerated Flow_Direction +{ + UNSPECIFIED (0), + DOWNLINK (1), + UPLINK (2), + BIDIRECTIONAL (3) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Packet-Filter-Usage (1072) 3GPP (10415) +// 5.3.66 +type enumerated Packet_Filter_Usage +{ + SEND_TO_UE (1) +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: Charging-Correlation-Indicator (1073) 3GPP (10415) +// 5.3.67 +type enumerated Charging_Correlation_Indicator +{ + CHARGING_IDENTIFIER_REQUIRED (0) +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Install (1081) 3GPP (10415) +// 5.3.68 +type AVP_Grouped Routing_Rule_Install; + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Remove (1075) 3GPP (10415) +// 5.3.69 +type AVP_Grouped Routing_Rule_Remove; + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Definition (1076) 3GPP (10415) +// 5.3.70 +type AVP_Grouped Routing_Rule_Definition; + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Identifier (1077) 3GPP (10415) +// 5.3.71 +type AVP_OctetString Routing_Rule_Identifier; + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Filter (1078) 3GPP (10415) +// 5.3.72 +type AVP_Grouped Routing_Filter; + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-IP-Address (1079) 3GPP (10415) +// 5.3.73 +type AVP_Address Routing_IP_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-Application-Identifier (1088) 3GPP (10415) +// 5.3.77 +type AVP_OctetString TDF_Application_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-Information (1087) 3GPP (10415) +// 5.3.78 +type AVP_Grouped TDF_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-Destination-Realm (1090) 3GPP (10415) +// 5.3.79 +type AVP_DiameterIdentity TDF_Destination_Realm; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-Destination-Host (1089) 3GPP (10415) +// 5.3.80 +type AVP_DiameterIdentity TDF_Destination_Host; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-IP-Address (1091) 3GPP (10415) +// 5.3.81 +type AVP_Address TDF_IP_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Redirect-Information (1085) 3GPP (10415) +// 5.3.82 +type AVP_Grouped Redirect_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Redirect-Support (1086) 3GPP (10415) +// 5.3.83 +type enumerated Redirect_Support +{ + REDIRECTION_DISABLED (0), + REDIRECTION_ENABLED (1) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: PS-to-CS-Session-Continuity (1099) 3GPP (10415) +// 5.3.84 +type enumerated PS_to_CS_Session_Continuity +{ + VIDEO_PS2CS_CONT_CANDIDATE (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Application-Detection-Information (1098) 3GPP (10415) +// 5.3.91 +type AVP_Grouped Application_Detection_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: TDF-Application-Instance-Identifier (2802) 3GPP (10415) +// 5.3.92 +type AVP_OctetString TDF_Application_Instance_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: HeNB-Local-IP-Address (2804) 3GPP (10415) +// 5.3.95 +type AVP_Address HeNB_Local_IP_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: UE-Local-IP-Address (2805) 3GPP (10415) +// 5.3.96 +type AVP_Address UE_Local_IP_Address; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: UDP-Source-Port (2806) 3GPP (10415) +// 5.3.97 +type AVP_Unsigned32 UDP_Source_Port; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Mute-Notification (2809) 3GPP (10415) +// 5.3.98 +type enumerated Mute_Notification +{ + MUTE_REQUIRED (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Monitoring-Time (2810) 3GPP (10415) +// 5.3.99 +type AVP_Time Monitoring_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: AN-GW-Status (2811) 3GPP (10415) +// 5.3.100 +type enumerated AN_GW_Status +{ + AN_GW_FAILED (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: User-Location-Info-Time (2812) 3GPP (10415) +// 5.3.101 +type AVP_Time User_Location_Info_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Credit-Management-Status (1082) 3GPP (10415) +// 5.3.102 +type AVP_Unsigned32 Credit_Management_Status; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Default-QoS-Information (2816) 3GPP (10415) +// 5.3.103 +type AVP_Grouped Default_QoS_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Default-QoS-Name (2817) 3GPP (10415) +// 5.3.104 +type AVP_UTF8String Default_QoS_Name; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Conditional-APN-Aggregate-Max-Bitrate (2818) 3GPP (10415) +// 5.3.105 +type AVP_Grouped Conditional_APN_Aggregate_Max_Bitrate; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: RAN-NAS-Release-Cause (2819) 3GPP (10415) +// 5.3.106 +type AVP_OctetString RAN_NAS_Release_Cause; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Presence-Reporting-Area-Elements-List (2820) 3GPP (10415) +// 5.3.107 +type AVP_OctetString Presence_Reporting_Area_Elements_List; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Presence-Reporting-Area-Identifier (2821) 3GPP (10415) +// 5.3.108 +type AVP_OctetString Presence_Reporting_Area_Identifier; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Presence-Reporting-Area-Information (2822) 3GPP (10415) +// 5.3.109 +type AVP_Grouped Presence_Reporting_Area_Information; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Presence-Reporting-Area-Status (2823) 3GPP (10415) +// 5.3.110 +type AVP_Unsigned32 Presence_Reporting_Area_Status; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: NetLoc-Access-Support (2824) 3GPP (10415) +// 5.3.111 +type AVP_Unsigned32 NetLoc_Access_Support; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Fixed-User-Location-Info (2825) 3GPP (10415) +// 5.3.112 +type AVP_Grouped Fixed_User_Location_Info; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: PCSCF-Restoration-Indication (2826) 3GPP (10415) +// 5.3.113 +type AVP_Unsigned32 PCSCF_Restoration_Indication; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: IP-CAN-Session-Charging-Scope (2827) 3GPP (10415) +// 5.3.114 +type enumerated IP_CAN_Session_Charging_Scope +{ + IP_CAN_SESSION_SCOPE (0) +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: Monitoring-Flags (2828) 3GPP (10415) +// 5.3.115 +type AVP_Unsigned32 Monitoring_Flags; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: NBIFOM-Support (2831) 3GPP (10415) +// 5.3.116 +type enumerated NBIFOM_Support +{ + NBIFOM_NOT_SUPPORTED (0), + NBIFOM_SUPPORTED (1) +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: NBIFOM-Mode (2830) 3GPP (10415) +// 5.3.117 +type enumerated NBIFOM_Mode +{ + UE_INITIATED (0), + NETWORK_INITIATED (1) +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Report (2835) 3GPP (10415) +// 5.3.118 +type AVP_Grouped Routing_Rule_Report; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Routing-Rule-Failure-Code (2834) 3GPP (10415) +// 5.3.119 +type AVP_Unsigned32 Routing_Rule_Failure_Code; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Default-Access (2829) 3GPP (10415) +// 5.3.120 +type enumerated Default_Access +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Access-Availability-Change-Reason (2833) 3GPP (10415) +// 5.3.121 +type AVP_Unsigned32 Access_Availability_Change_Reason; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: RAN-Rule-Support (2832) 3GPP (10415) +// 5.3.122 +type AVP_Unsigned32 RAN_Rule_Support; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Traffic-Steering-Policy-Identifier-DL (2836) 3GPP (10415) +// 5.3.123 +type AVP_OctetString Traffic_Steering_Policy_Identifier_DL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Traffic-Steering-Policy-Identifier-UL (2837) 3GPP (10415) +// 5.3.124 +type AVP_OctetString Traffic_Steering_Policy_Identifier_UL; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Resource-Release-Notification (2841) 3GPP (10415) +// 5.3.125 +type enumerated Resource_Release_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Removal-Of-Access (2842) 3GPP (10415) +// 5.3.126 +type enumerated Removal_Of_Access +{ + REMOVAL_OF_ACCESS (0) +} + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Execution-Time (2839) 3GPP (10415) +// 5.3.127 +type AVP_Time Execution_Time; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Conditional-Policy-Information (2840) 3GPP (10415) +// 5.3.128 +type AVP_Grouped Conditional_Policy_Information; + + +// Gxx specific AVPs + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Install (1051) 3GPP (10415) +// 5a.3.1 +type AVP_Grouped QoS_Rule_Install; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Remove (1052) 3GPP (10415) +// 5a.3.2 +type AVP_Grouped QoS_Rule_Remove; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Definition (1053) 3GPP (10415) +// 5a.3.3 +type AVP_Grouped QoS_Rule_Definition; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Name (1054) 3GPP (10415) +// 5a.3.4 +type AVP_OctetString QoS_Rule_Name; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Report (1055) 3GPP (10415) +// 5a.3.5 +type AVP_Grouped QoS_Rule_Report; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: Session-Linking-Indicator (1064) 3GPP (10415) +// 5a.3.6 +type enumerated Session_Linking_Indicator +{ + SESSION_LINKING_IMMEDIATE (0), + SESSION_LINKING_DEFERRED (1), + SESSION_LINKING_INVALID (100) //Requested for negative testing in CR_TR00019832. +} + +// 3GPP TS 29.212 V14.0.0 +// AVP: QoS-Rule-Base-Name (1074) 3GPP (10415) +// 5a.3.7 +type AVP_UTF8String QoS_Rule_Base_Name; + + +// Sd specific AVPs + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Install (1092) 3GPP (10415) +// 5b.3.1 +type AVP_Grouped ADC_Rule_Install; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Remove (1093) 3GPP (10415) +// 5b.3.2 +type AVP_Grouped ADC_Rule_Remove; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Definition (1094) 3GPP (10415) +// 5b.3.3 +type AVP_Grouped ADC_Rule_Definition; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Base-Name (1095) 3GPP (10415) +// 5b.3.4 +type AVP_UTF8String ADC_Rule_Base_Name; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Name (1096) 3GPP (10415) +// 5b.3.5 +type AVP_OctetString ADC_Rule_Name; + + +// 3GPP TS 29.212 V14.0.0 +// AVP: ADC-Rule-Report (1097) 3GPP (10415) +// 5b.3.6 +type AVP_Grouped ADC_Rule_Report; + diff --git a/src/GxInterface_PCC_3GPP_TS29212_f10.ddf b/src/GxInterface_PCC_3GPP_TS29212_f10.ddf new file mode 100644 index 0000000..5370bc1 --- /dev/null +++ b/src/GxInterface_PCC_3GPP_TS29212_f10.ddf @@ -0,0 +1,1128 @@ +/****************************************************************************** +* Copyright (c) 2004, 2018 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Gabor Szalai - initial implementation +******************************************************************************/ +// +// File: GxInterface_PCC_3GPP_TS29212_f10.ddf +// Description: DDF for Gx Gxx and Sd according to 3GPP TS 29.212 V15.1.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: PCC +// APPLICATION-REVISION: Vf_1_0 + +// AVP implementations according to: +// 3GPP TS 29.212 V15.1.0 - Policy and Charging Control over Gx interface +// +// +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// IETF RFC 4006 - Diameter Credit Control Application +// 3GPP TS 29.061 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// 3GPP TS 29.214 - Policy and Charging Control over Rx reference points +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// 3GPP TS 29.272 - EPS; MME and SGSN related interfaces based on Diameter protocol +// 3GPP2 X.S0057-O - (3GPP2-BSID AVP reused for Gx and Gxx interface) +// 3GPP TS 32.299 - Telecommunication manegement; Charging management; Diameter charging applications +// +// Notes: +// Present application is based on 3GPP TS 29.210 V6.7.0 but has its own vendor +// specific Diameter application with application id for the Gx Application : 16777238 +// Application-ID for the Gxx Application is 16777266 +// Application-ID for the Sd Application is 16777303 + +// 3GPP TS 29.212 V15.1.0 +// 5.6, 5b.6, 5c.6 +type enumerated Command_Code { + Credit_Control (272), + Re_Auth (258), + TDF_Session (8388637) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Bearer-Usage (1000) 3GPP (10415) +// 5.3.1 +type enumerated Bearer_Usage +{ + GENERAL (0), + IMS_SIGNALLING (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Install (1001) 3GPP (10415) +// 5.3.2 +type AVP_Grouped Charging_Rule_Install; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Remove (1002) 3GPP (10415) +// 5.3.3 +type AVP_Grouped Charging_Rule_Remove; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Definition (1003) 3GPP (10415) +// 5.3.4 +type AVP_Grouped Charging_Rule_Definition; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Base-Name (1004) 3GPP (10415) +// 5.3.5 +type AVP_UTF8String Charging_Rule_Base_Name; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Name (1005) 3GPP (10415) +// 5.3.6 +type AVP_OctetString Charging_Rule_Name; + + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Event-Trigger (1006) 3GPP (10415) +// 5.3.7 +type enumerated Event_Trigger +{ + SGSN_CHANGE (0), + QOS_CHANGE (1), + RAT_CHANGE (2), + TFT_CHANGE (3), + PLMN_CHANGE (4), + LOSS_OF_BEARER (5), + RECOVERY_OF_BEARER (6), + IP_CAN_CHANGE (7), + QOS_CHANGE_EXCEEDING_AUTHORIZATION (11), + RAI_CHANGE (12), + USER_LOCATION_CHANGE (13), + NO_EVENT_TRIGGERS (14), + OUT_OF_CREDIT (15), + REALLOCATION_OF_CREDIT (16), + REVALIDATION_TIMEOUT (17), + UE_IP_ADDRESS_ALLOCATE (18), + UE_IP_ADDRESS_RELEASE (19), + DEFAULT_EPS_BEARER_QOS_CHANGE (20), + AN_GW_CHANGE (21), + SUCCESSFUL_RESOURCE_ALLOCATION (22), + RESOURCE_MODIFICATION_REQUEST (23), + PGW_TRACE_CONTROL (24), + UE_TIME_ZONE_CHANGE (25), + TAI_CHANGE (26), + ECGI_CHANGE (27), + CHARGING_CORRELATION_EXCHANGE (28), + APN_AMBR_MODIFICATION_FAILURE (29), + USER_CSG_INFORMATION_CHANGE (30), + USAGE_REPORT (33), + DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE (34), + USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE (35), + USER_CSG_HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE (36), + ROUTING_RULE_CHANGE (37), + APPLICATION_START (39), + APPLICATION_STOP (40), + CS_TO_PS_HANDOVER (42), + UE_LOCAL_IP_ADDRESS_CHANGE (43), + HENB_LOCAL_IP_ADDRESS_CHANGE (44), + ACCESS_NETWORK_INFO_REPORT (45), + CREDIT_MANAGEMENT_SESSION_FAILURE (46), + DEFAULT_QOS_CHANGE (47), + CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT (48), + ADDITION_OF_ACCESS (49), + REMOVAL_OF_ACCESS (50), + UNAVAILABLITY_OF_ACCESS (51), + AVAILABLITY_OF_ACCESS (52), + RESOURCE_RELEASE (53), + ENODEB_CHANGE (54), + THREEGPP_PS_DATA_OFF_CHANGE (55) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Metering-Method (1007) 3GPP (10415) +// 5.3.8 +type enumerated Metering_Method +{ + DURATION (0), + VOLUME (1), + DURATION_VOLUME (2), + EVENT (3) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Offline (1008) 3GPP (10415) +// 5.3.9 +type enumerated Offline +{ + DISABLE_OFFLINE (0), + ENABLE_OFFLINE (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Online (1009) 3GPP (10415) +// 5.3.10 +type enumerated Online +{ + DISABLE_ONLINE (0), + ENABLE_ONLINE (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Precedence (1010) 3GPP (10415) +// 5.3.11 +type AVP_Unsigned32 Precedence; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Reporting-Level (1011) 3GPP (10415) +// 5.3.12 +type enumerated Reporting_Level +{ + SERVICE_IDENTIFIER_LEVEL (0), + RATING_GROUP_LEVEL (1), + SPONSORED_CONNECTIVITY_LEVEL (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TFT-Filter (1012) 3GPP (10415) +// 5.3.13 +type AVP_IPFilterRule TFT_Filter; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TFT-Packet-Filter-Information (1013) 3GPP (10415) +// 5.3.14 +type AVP_Grouped TFT_Packet_Filter_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ToS-Traffic-Class (1014) 3GPP (10415) +// 5.3.15 +type AVP_OctetString ToS_Traffic_Class; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Information (1016) 3GPP (10415) +// 5.3.16 +type AVP_Grouped QoS_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Class-Identifier (1028) 3GPP (10415) +// 5.3.17 +type AVP_Unsigned32 QoS_Class_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Rule-Report (1018) 3GPP (10415) +// 5.3.18 +type AVP_Grouped Charging_Rule_Report; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: PCC-Rule-Status (1019) 3GPP (10415) +// 5.3.19 +type enumerated PCC_Rule_Status +{ + ACTIVE (0), + INACTIVE (1), + TEMPORARILY_INACTIVE (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Bearer-Identifier (1020) 3GPP (10415) +// 5.3.20 +type AVP_OctetString Bearer_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Bearer-Operation (1021) 3GPP (10415) +// 5.3.21 +type enumerated Bearer_Operation +{ + TERMINATION (0), + ESTABLISHMENT (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Access-Network-Charging-Identifier-Gx (1022) 3GPP (10415) +// 5.3.22 +type AVP_Grouped Access_Network_Charging_Identifier_Gx; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Bearer-Control-Mode (1023) 3GPP (10415) +// 5.3.23 +type enumerated Bearer_Control_Mode +{ + UE_ONLY (0), + RESERVED (1), + UE_NW (2), + SX_GX (3), + SX_ONLY (4) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Network-Request-Support (1024) 3GPP (10415) +// 5.3.24 +type enumerated Network_Request_Support +{ + NETWORK_REQUEST_NOT_SUPPORTED (0), + NETWORK_REQUEST_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Guaranteed-Bitrate-DL (1025) 3GPP (10415) +// 5.3.25 +type AVP_Unsigned32 Guaranteed_Bitrate_DL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Guaranteed-Bitrate-UL (1026) 3GPP (10415) +// 5.3.26 +type AVP_Unsigned32 Guaranteed_Bitrate_UL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: IP-CAN-Type (1027) 3GPP (10415) +// 5.3.27 +type enumerated IP_CAN_Type +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Negotiation (1029) 3GPP (10415) +// 5.3.28 +type enumerated QoS_Negotiation +{ + NO_QoS_NEGOTIATION (0), + QoS_NEGOTIATION_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Upgrade (1030) 3GPP (10415) +// 5.3.29 +type enumerated QoS_Upgrade +{ + QoS_UPGRADE_NOT_SUPPORTED (0), + QoS_UPGRADE_SUPPORTED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Event-Report-Indication (1033) 3GPP (10415) +// 5.3.30 +type AVP_Grouped Event_Report_Indication; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: RAT-Type (1032) 3GPP (10415) +// 5.3.31 +type enumerated RAT_Type +{ + WLAN (0), + VIRTUAL (1), + UTRAN (1000), + GERAN (1001), + GAN (1002), + HSPA_EVOLUTION (1003), + EUTRAN (1004), + EUTRAN_NB_IoT (1005), + CDMA2000_1X (2000), + HRPD (2001), + UMB (2002), + EHRPD (2003) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Allocation-Retention-Priority (1034) 3GPP (10415) +// 5.3.32 +type AVP_Grouped Allocation_Retention_Priority; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: CoA-IP-Address (1035) 3GPP (10415) +// 5.3.33 +type AVP_Address CoA_IP_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Tunnel-Header-Filter (1036) 3GPP (10415) +// 5.3.34 +type AVP_IPFilterRule Tunnel_Header_Filter; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Tunnel-Header-Length (1037) 3GPP (10415) +// 5.3.35 +type AVP_Unsigned32 Tunnel_Header_Length; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Tunnel-Information (1038) 3GPP (10415) +// 5.3.36 +type AVP_Grouped Tunnel_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: CoA-Information (1039) 3GPP (10415) +// 5.3.37 +type AVP_Grouped CoA_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Rule-Failure-Code (1031) 3GPP (10415) +// 5.3.38 +type enumerated Rule_Failure_Code +{ + UNKNOWN_RULE_NAME (1), + RATING_GROUP_ERROR (2), + SERVICE_IDENTIFIER_ERROR (3), + GW_PCEF_MALFUNCTION (4), + RESOURCES_LIMITATION (5), + MAX_NR_BEARERS_REACHED (6), + UNKNOWN_BEARER_ID (7), + MISSING_BEARER_ID (8), + MISSING_FLOW_DESCRIPTION (9), + RESOURCE_ALLOCATION_FAILURE (10), + UNSUCCESSFUL_QOS_VALIDATION (11), + INCORRECT_FLOW_INFORMATION (12), + PS_TO_CS_HANDOVER (13), + TDF_APPLICATION_IDENTIFIER_ERROR (14), + NO_BEARER_BOUND (15), + FILTER_RESTRICTIONS (16), + AN_GW_FAILED (17), + MISSING_REDIRECT_SERVER_ADDRESS (18), + CM_END_USER_SERVICE_DENIED (19), + CM_CREDIT_CONTROL_NOT_APPLICABLE (20), + CM_AUTHORIZATION_REJECTED (21), + CM_USER_UNKNOWN (22), + CM_RATING_FAILED (23), + ROUTING_RULE_REJECTION (24), + UNKNOWN_ROUTING_ACCESS_INFORMATION (25), + NO_NBIFOM_SUPPORT (26) // the standard defines as 25, which doesn't seem to be correct +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: APN-Aggregate-Max-Bitrate-DL (1040) 3GPP (10415) +// 5.3.39 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_DL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: APN-Aggregate-Max-Bitrate-UL (1041) 3GPP (10415) +// 5.3.40 +type AVP_Unsigned32 APN_Aggregate_Max_Bitrate_UL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Revalidation-Time (1042) 3GPP (10415) +// 5.3.41 +type AVP_Time Revalidation_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Rule-Activation-Time (1043) 3GPP (10415) +// 5.3.42 +type AVP_Time Rule_Activation_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Rule-DeActivation-Time (1044) 3GPP (10415) +// 5.3.43 +type AVP_Time Rule_DeActivation_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Session-Release-Cause (1045) 3GPP (10415) +// 5.3.44 +type enumerated Session_Release_Cause +{ + UNSPECIFIED_REASON (0), + UE_SUBSCRIPTION_REASON (1), + INSUFFICIENT_SERVER_RESOURCES (2), + IP_CAN_SESSION_TERMINATION (3), + UE_IP_ADDRESS_RELEASE (4) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Priority-Level (1046) 3GPP (10415) +// 5.3.45 +type AVP_Unsigned32 Priority_Level; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Pre-emption-Capability (1047) 3GPP (10415) +// 5.3.46 +type enumerated Pre_emption_Capability +{ + PRE_EMPTION_CAPABILITY_ENABLED (0), + PRE_EMPTION_CAPABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Pre-emption-Vulnerability (1048) 3GPP (10415) +// 5.3.47 +type enumerated Pre_emption_Vulnerability +{ + PRE_EMPTION_VULNERABILITY_ENABLED (0), + PRE_EMPTION_VULNERABILITY_DISABLED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Default-EPS-Bearer-QoS (1049) 3GPP (10415) +// 5.3.48 +type AVP_Grouped Default_EPS_Bearer_QoS; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: AN-GW-Address (1050) 3GPP (10415) +// 5.3.49 +type AVP_Address AN_GW_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Resource-Allocation-Notification (1063) 3GPP (10415) +// 5.3.50 +type enumerated Resource_Allocation_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Security-Parameter-Index (1056) 3GPP (10415) +// 5.3.51 +type AVP_OctetString Security_Parameter_Index; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Flow-Label (1057) 3GPP (10415) +// 5.3.52 +type AVP_OctetString Flow_Label; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Flow-Information (1058) 3GPP (10415) +// 5.3.53 +type AVP_Grouped Flow_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Packet-Filter-Content (1059) 3GPP (10415) +// 5.3.54 +type AVP_IPFilterRule Packet_Filter_Content; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Packet-Filter-Identifier (1060) 3GPP (10415) +// 5.3.55 +type AVP_OctetString Packet_Filter_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Packet-Filter-Information (1061) 3GPP (10415) +// 5.3.56 +type AVP_Grouped Packet_Filter_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Packet-Filter-Operation (1062) 3GPP (10415) +// 5.3.57 +type enumerated Packet_Filter_Operation +{ + DELETION (0), + ADDITION (1), + MODIFICATION (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: PDN-Connection-ID (1065) 3GPP (10415) +// 5.3.58 +type AVP_OctetString PDN_Connection_ID; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Monitoring-Key (1066) 3GPP (10415) +// 5.3.59 +type AVP_OctetString Monitoring_Key; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Usage-Monitoring-Information (1067) 3GPP (10415) +// 5.3.60 +type AVP_Grouped Usage_Monitoring_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Usage-Monitoring-Level (1068) 3GPP (10415) +// 5.3.61 +type enumerated Usage_Monitoring_Level +{ + SESSION_LEVEL (0), + PCC_RULE_LEVEL (1), + ADC_RULE_LEVEL (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Usage-Monitoring-Report (1069) 3GPP (10415) +// 5.3.62 +type enumerated Usage_Monitoring_Report +{ + USAGE_MONITORING_REPORT_REQUIRED (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Usage-Monitoring-Support (1070) 3GPP (10415) +// 5.3.63 +type enumerated Usage_Monitoring_Support +{ + USAGE_MONITORING_DISABLED (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: CSG-Information-Reporting (1071) 3GPP (10415) +// 5.3.64 +type enumerated CSG_Information_Reporting +{ + CHANGE_CSG_CELL (0), + CHANGE_CSG_SUBSCRIBED_HYBRID_CELL (1), + CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL (2) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Flow-Direction (1080) 3GPP (10415) +// 5.3.65 +type enumerated Flow_Direction +{ + UNSPECIFIED (0), + DOWNLINK (1), + UPLINK (2), + BIDIRECTIONAL (3) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Packet-Filter-Usage (1072) 3GPP (10415) +// 5.3.66 +type enumerated Packet_Filter_Usage +{ + SEND_TO_UE (1) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: Charging-Correlation-Indicator (1073) 3GPP (10415) +// 5.3.67 +type enumerated Charging_Correlation_Indicator +{ + CHARGING_IDENTIFIER_REQUIRED (0) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Install (1081) 3GPP (10415) +// 5.3.68 +type AVP_Grouped Routing_Rule_Install; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Remove (1075) 3GPP (10415) +// 5.3.69 +type AVP_Grouped Routing_Rule_Remove; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Definition (1076) 3GPP (10415) +// 5.3.70 +type AVP_Grouped Routing_Rule_Definition; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Identifier (1077) 3GPP (10415) +// 5.3.71 +type AVP_OctetString Routing_Rule_Identifier; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Filter (1078) 3GPP (10415) +// 5.3.72 +type AVP_Grouped Routing_Filter; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-IP-Address (1079) 3GPP (10415) +// 5.3.73 +type AVP_Address Routing_IP_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-Application-Identifier (1088) 3GPP (10415) +// 5.3.77 +type AVP_OctetString TDF_Application_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-Information (1087) 3GPP (10415) +// 5.3.78 +type AVP_Grouped TDF_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-Destination-Realm (1090) 3GPP (10415) +// 5.3.79 +type AVP_DiameterIdentity TDF_Destination_Realm; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-Destination-Host (1089) 3GPP (10415) +// 5.3.80 +type AVP_DiameterIdentity TDF_Destination_Host; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-IP-Address (1091) 3GPP (10415) +// 5.3.81 +type AVP_Address TDF_IP_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Redirect-Information (1085) 3GPP (10415) +// 5.3.82 +type AVP_Grouped Redirect_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Redirect-Support (1086) 3GPP (10415) +// 5.3.83 +type enumerated Redirect_Support +{ + REDIRECTION_DISABLED (0), + REDIRECTION_ENABLED (1) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: PS-to-CS-Session-Continuity (1099) 3GPP (10415) +// 5.3.84 +type enumerated PS_to_CS_Session_Continuity +{ + VIDEO_PS2CS_CONT_CANDIDATE (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Application-Detection-Information (1098) 3GPP (10415) +// 5.3.91 +type AVP_Grouped Application_Detection_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: TDF-Application-Instance-Identifier (2802) 3GPP (10415) +// 5.3.92 +type AVP_OctetString TDF_Application_Instance_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: HeNB-Local-IP-Address (2804) 3GPP (10415) +// 5.3.95 +type AVP_Address HeNB_Local_IP_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: UE-Local-IP-Address (2805) 3GPP (10415) +// 5.3.96 +type AVP_Address UE_Local_IP_Address; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: UDP-Source-Port (2806) 3GPP (10415) +// 5.3.97 +type AVP_Unsigned32 UDP_Source_Port; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Mute-Notification (2809) 3GPP (10415) +// 5.3.98 +type enumerated Mute_Notification +{ + MUTE_REQUIRED (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Monitoring-Time (2810) 3GPP (10415) +// 5.3.99 +type AVP_Time Monitoring_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: AN-GW-Status (2811) 3GPP (10415) +// 5.3.100 +type enumerated AN_GW_Status +{ + AN_GW_FAILED (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: User-Location-Info-Time (2812) 3GPP (10415) +// 5.3.101 +type AVP_Time User_Location_Info_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Credit-Management-Status (1082) 3GPP (10415) +// 5.3.102 +type AVP_Unsigned32 Credit_Management_Status; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Default-QoS-Information (2816) 3GPP (10415) +// 5.3.103 +type AVP_Grouped Default_QoS_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Default-QoS-Name (2817) 3GPP (10415) +// 5.3.104 +type AVP_UTF8String Default_QoS_Name; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Conditional-APN-Aggregate-Max-Bitrate (2818) 3GPP (10415) +// 5.3.105 +type AVP_Grouped Conditional_APN_Aggregate_Max_Bitrate; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: RAN-NAS-Release-Cause (2819) 3GPP (10415) +// 5.3.106 +type AVP_OctetString RAN_NAS_Release_Cause; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Presence-Reporting-Area-Elements-List (2820) 3GPP (10415) +// 5.3.107 +type AVP_OctetString Presence_Reporting_Area_Elements_List; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Presence-Reporting-Area-Identifier (2821) 3GPP (10415) +// 5.3.108 +type AVP_OctetString Presence_Reporting_Area_Identifier; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Presence-Reporting-Area-Information (2822) 3GPP (10415) +// 5.3.109 +type AVP_Grouped Presence_Reporting_Area_Information; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Presence-Reporting-Area-Status (2823) 3GPP (10415) +// 5.3.110 +type AVP_Unsigned32 Presence_Reporting_Area_Status; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: NetLoc-Access-Support (2824) 3GPP (10415) +// 5.3.111 +type AVP_Unsigned32 NetLoc_Access_Support; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Fixed-User-Location-Info (2825) 3GPP (10415) +// 5.3.112 +type AVP_Grouped Fixed_User_Location_Info; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: PCSCF-Restoration-Indication (2826) 3GPP (10415) +// 5.3.113 +type AVP_Unsigned32 PCSCF_Restoration_Indication; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: IP-CAN-Session-Charging-Scope (2827) 3GPP (10415) +// 5.3.114 +type enumerated IP_CAN_Session_Charging_Scope +{ + IP_CAN_SESSION_SCOPE (0) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: Monitoring-Flags (2828) 3GPP (10415) +// 5.3.115 +type AVP_Unsigned32 Monitoring_Flags; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: NBIFOM-Support (2831) 3GPP (10415) +// 5.3.116 +type enumerated NBIFOM_Support +{ + NBIFOM_NOT_SUPPORTED (0), + NBIFOM_SUPPORTED (1) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: NBIFOM-Mode (2830) 3GPP (10415) +// 5.3.117 +type enumerated NBIFOM_Mode +{ + UE_INITIATED (0), + NETWORK_INITIATED (1) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Report (2835) 3GPP (10415) +// 5.3.118 +type AVP_Grouped Routing_Rule_Report; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Routing-Rule-Failure-Code (2834) 3GPP (10415) +// 5.3.119 +type AVP_Unsigned32 Routing_Rule_Failure_Code; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Default-Access (2829) 3GPP (10415) +// 5.3.120 +type enumerated Default_Access +{ + threeGPP_GPRS (0), + DOCSIS (1), + xDSL (2), + WiMAX (3), + threeGPP2 (4), + threeGPP_EPS (5), + Non_threeGPP_EPS (6), + FBA (7) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Access-Availability-Change-Reason (2833) 3GPP (10415) +// 5.3.121 +type AVP_Unsigned32 Access_Availability_Change_Reason; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: RAN-Rule-Support (2832) 3GPP (10415) +// 5.3.122 +type AVP_Unsigned32 RAN_Rule_Support; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Traffic-Steering-Policy-Identifier-DL (2836) 3GPP (10415) +// 5.3.123 +type AVP_OctetString Traffic_Steering_Policy_Identifier_DL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Traffic-Steering-Policy-Identifier-UL (2837) 3GPP (10415) +// 5.3.124 +type AVP_OctetString Traffic_Steering_Policy_Identifier_UL; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Resource-Release-Notification (2841) 3GPP (10415) +// 5.3.125 +type enumerated Resource_Release_Notification +{ + ENABLE_NOTIFICATION (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Removal-Of-Access (2842) 3GPP (10415) +// 5.3.126 +type enumerated Removal_Of_Access +{ + REMOVAL_OF_ACCESS (0) +} + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Execution-Time (2839) 3GPP (10415) +// 5.3.127 +type AVP_Time Execution_Time; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Conditional-Policy-Information (2840) 3GPP (10415) +// 5.3.128 +type AVP_Grouped Conditional_Policy_Information; + +// 3GPP TS 29.212 V15.1.0 +// AVP: TCP-Source-Port (2843) 3GPP (10415) +// 5.3.129 +type AVP_Unsigned32 TCP_Source_Port; + +// 3GPP TS 29.212 V15.1.0 +// AVP: PRA-Install (2845) 3GPP (10415) +// 5.3.130 +type AVP_Grouped PRA_Install; + +// 3GPP TS 29.212 V15.1.0 +// AVP: PRA-Remove (2846) 3GPP (10415) +// 5.3.131 +type AVP_Grouped PRA_Remove; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Default-Bearer-Indication (2844) 3GPP (10415) +// 5.3.132 +type enumerated Default_Bearer_Indication +{ + BIND_TO_DEF_BEARER (0), + BIND_TO_APPLICABLE_BEARER (1) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: 3GPP-PS-Data-Off-Status (2847) 3GPP (10415) +// 5.3.133 +type enumerated 3GPP_PS_Data_Off_Status +{ + ACTIVE (0), + INACTIVE (1) +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: Extended-APN-AMBR-DL (2848) 3GPP (10415) +// 5.3.134 +type AVP_Unsigned32 Extended_APN_AMBR_DL; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Extended-APN-AMBR-UL (2849) 3GPP (10415) +// 5.3.135 +type AVP_Unsigned32 Extended_APN_AMBR_UL; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Extended-GBR-DL (2850) 3GPP (10415) +// 5.3.136 +type AVP_Unsigned32 Extended_GBR_DL; + +// 3GPP TS 29.212 V15.1.0 +// AVP: Extended-GBR-UL (2851) 3GPP (10415) +// 5.3.137 +type AVP_Unsigned32 Extended_GBR_UL; + + +// Gxx specific AVPs + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Install (1051) 3GPP (10415) +// 5a.3.1 +type AVP_Grouped QoS_Rule_Install; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Remove (1052) 3GPP (10415) +// 5a.3.2 +type AVP_Grouped QoS_Rule_Remove; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Definition (1053) 3GPP (10415) +// 5a.3.3 +type AVP_Grouped QoS_Rule_Definition; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Name (1054) 3GPP (10415) +// 5a.3.4 +type AVP_OctetString QoS_Rule_Name; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Report (1055) 3GPP (10415) +// 5a.3.5 +type AVP_Grouped QoS_Rule_Report; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: Session-Linking-Indicator (1064) 3GPP (10415) +// 5a.3.6 +type enumerated Session_Linking_Indicator +{ + SESSION_LINKING_IMMEDIATE (0), + SESSION_LINKING_DEFERRED (1), + SESSION_LINKING_INVALID (100) //Requested for negative testing in CR_TR00019832. +} + +// 3GPP TS 29.212 V15.1.0 +// AVP: QoS-Rule-Base-Name (1074) 3GPP (10415) +// 5a.3.7 +type AVP_UTF8String QoS_Rule_Base_Name; + + +// Sd specific AVPs + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Install (1092) 3GPP (10415) +// 5b.3.1 +type AVP_Grouped ADC_Rule_Install; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Remove (1093) 3GPP (10415) +// 5b.3.2 +type AVP_Grouped ADC_Rule_Remove; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Definition (1094) 3GPP (10415) +// 5b.3.3 +type AVP_Grouped ADC_Rule_Definition; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Base-Name (1095) 3GPP (10415) +// 5b.3.4 +type AVP_UTF8String ADC_Rule_Base_Name; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Name (1096) 3GPP (10415) +// 5b.3.5 +type AVP_OctetString ADC_Rule_Name; + + +// 3GPP TS 29.212 V15.1.0 +// AVP: ADC-Rule-Report (1097) 3GPP (10415) +// 5b.3.6 +type AVP_Grouped ADC_Rule_Report; + diff --git a/src/GxaInterface_3GPP2_X_S0057_0_300.ddf b/src/GxaInterface_3GPP2_X_S0057_0_300.ddf index 3427925..b539dbc 100644 --- a/src/GxaInterface_3GPP2_X_S0057_0_300.ddf +++ b/src/GxaInterface_3GPP2_X_S0057_0_300.ddf @@ -37,7 +37,7 @@ // // File: GxaInterface_3GPP2_X_S0057_0_300.ddf // Description: DDF for Gxa according to 3GPP2 X.S0057-0 v3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/MobileIPv4_Application_IETF_RFC4004.ddf b/src/MobileIPv4_Application_IETF_RFC4004.ddf index 0be2b46..d8dcea0 100644 --- a/src/MobileIPv4_Application_IETF_RFC4004.ddf +++ b/src/MobileIPv4_Application_IETF_RFC4004.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv4_Application_IETF_RFC4004.ddf // Description: DDF for Mobile IPv4 Application -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 // Reference: IETF RFC 4004 // diff --git a/src/MobileIPv6_HAAA_IETF_RFC5779.ddf b/src/MobileIPv6_HAAA_IETF_RFC5779.ddf index d89c3f7..71a035d 100644 --- a/src/MobileIPv6_HAAA_IETF_RFC5779.ddf +++ b/src/MobileIPv6_HAAA_IETF_RFC5779.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_HAAA_IETF_RFC5779.ddf // Description: DDF for Mobile IPv6 according to RFC 5779 -// Rev: R40A +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/MobileIPv6_HA_IETF_RFC5778.ddf b/src/MobileIPv6_HA_IETF_RFC5778.ddf index 9f0f1df..4ca6968 100644 --- a/src/MobileIPv6_HA_IETF_RFC5778.ddf +++ b/src/MobileIPv6_HA_IETF_RFC5778.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_HA_IETF_RFC5778.ddf // Description: DDF for Mobile IPv6 according to RFC 5778 -// Rev: R40A +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/MobileIPv6_NAS_IETF_RFC5447.ddf b/src/MobileIPv6_NAS_IETF_RFC5447.ddf index c59ef9e..0c06dbc 100644 --- a/src/MobileIPv6_NAS_IETF_RFC5447.ddf +++ b/src/MobileIPv6_NAS_IETF_RFC5447.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_NAS_IETF_RFC5447.ddf // Description: DDF for Mobile IPv6 according to RFC 5447 -// Rev: R40A +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf b/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf index af49d36..f8e8632 100644 --- a/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf +++ b/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf @@ -37,7 +37,7 @@ // // File: NGN_NetworkAccesses_ETSI_ES183020_111.ddf // Description: DDF for NGN Network Accesses according to ETSI ES 183 020 V1.1.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/NetworkAccessServer_IETF_RFC4005.ddf b/src/NetworkAccessServer_IETF_RFC4005.ddf index a4bfead..bb25ad4 100644 --- a/src/NetworkAccessServer_IETF_RFC4005.ddf +++ b/src/NetworkAccessServer_IETF_RFC4005.ddf @@ -37,7 +37,7 @@ // // File: NetworkAccessServer_IETF_RFC4005.ddf // Description: DDF for NAS according to RFC 4005 -// Rev: R40A +// Rev: R55A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/RqInterface_ETSI_ES283026_241.ddf b/src/RqInterface_ETSI_ES283026_241.ddf index 1a4055b..7d24c90 100644 --- a/src/RqInterface_ETSI_ES283026_241.ddf +++ b/src/RqInterface_ETSI_ES283026_241.ddf @@ -37,7 +37,7 @@ // // File: RqInterface_ETSI_ES283026_241.ddf // Description: DDF for Rq according to ETSI ES 283 026 V2.4.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// // AVP implementations according to: diff --git a/src/RxInterface_PCC_3GPP_TS29214_830.ddf b/src/RxInterface_PCC_3GPP_TS29214_830.ddf index f420dbe..91c4506 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_830.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_830.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_830.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V8.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf b/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf index b798cd4..1c240a9 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_830.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V8.10.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_990.ddf b/src/RxInterface_PCC_3GPP_TS29214_990.ddf index 872d062..a940828 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_990.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_990.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_990.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V9.9.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_a70.ddf b/src/RxInterface_PCC_3GPP_TS29214_a70.ddf index b239164..fc798ea 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_a70.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_a70.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_a70.ddf // Description: DDF for Rx according to 3GPP TS 29.214 a.7.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_c10.ddf b/src/RxInterface_PCC_3GPP_TS29214_c10.ddf index 752267a..c99108b 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_c10.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_c10.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_c10.ddf // Description: DDF for Rx according to 3GPP TS 29.214 c.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_d10.ddf b/src/RxInterface_PCC_3GPP_TS29214_d10.ddf index d7bffca..801b3b9 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_d10.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_d10.ddf @@ -11,7 +11,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_d10.ddf // Description: DDF for Rx according to 3GPP TS 29.214 d.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_f20.ddf b/src/RxInterface_PCC_3GPP_TS29214_f20.ddf new file mode 100644 index 0000000..f8c6c67 --- /dev/null +++ b/src/RxInterface_PCC_3GPP_TS29214_f20.ddf @@ -0,0 +1,437 @@ +/****************************************************************************** +* Copyright (c) 2004, 2018 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Gabor Szalai - initial implementation +******************************************************************************/ +// +// File: RxInterface_PCC_3GPP_TS29214_f20.ddf +// Description: DDF for Rx according to 3GPP TS 29.214 15.2.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: RX +// APPLICATION-REVISION: VF_2_0 + +// AVP implementations according to: +// 3GPP TS 29.214 15.2.0 - Policy and Charging Control over Rx reference point +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// TS 183.017 - DIAMETER protocol for session based policy set-up information exchange between +// the Application Function (AF) and the Service Policy Decision Function (SPDF) +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// IETF RFC 4006 - Diameter Credit Control Application +// +// Notes: +// Present application has its own vendor specific Diameter application id: 16777236 +// +// Type of enumerated AVP Media-Type is changed to AVP_Unsigned32 to +// give the ability to contain OTHER (0xFFFFFFFF) value +// + +// 3GPP TS 29.214 15.2.0 5.6 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Re_Auth (258), + Session_Termination (275), + Abort_Session (274) +} + + + +// 3GPP TS 29.214 15.2.0 +// AVP: Abort-Cause (500) 3GPP (10415) +// 5.3.1 +type enumerated Abort_Cause +{ + BEARER_RELEASED (0), + INSUFFICIENT_SERVER_RESOURCES (1), + INSUFFICIENT_BEARER_RESOURCES (2), + PS_TO_CS_HANDOVER (3), + SPONSORED_DATA_CONNECTIVITY_DISALLOWED (4) +} + + +// 3GPP TS 29.214 15.2.0 +// AVP: Access-Network-Charging-Address (501) 3GPP (10415) +// 5.3.2 +type AVP_Address Access_Network_Charging_Address; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Access-Network-Charging-Identifier (502) 3GPP (10415) +// 5.3.3 +type AVP_Grouped Access_Network_Charging_Identifier; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Access-Network-Charging-Identifier-Value (503) 3GPP (10415) +// 5.3.4 +type AVP_OctetString Access_Network_Charging_Identifier_Value; + + + + +// 3GPP TS 29.214 15.2.0 +// AVP: AF-Application-Identifier (504) 3GPP (10415) +// 5.3.5 +type AVP_OctetString AF_Application_Identifier; + + +// 3GPP TS 29.214 15.2.0 +// AVP: AF-Charging-Identifier (505) 3GPP (10415) +// 5.3.6 +type AVP_OctetString AF_Charging_Identifier; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Codec-Data (524) 3GPP (10415) +// 5.3.7 +type AVP_OctetString Codec_Data; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Flow-Description (507) 3GPP (10415) +// 5.3.8 +type AVP_IPFilterRule Flow_Description; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Flow-Number (509) 3GPP (10415) +// 5.3.9 +type AVP_Unsigned32 Flow_Number; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Flows (510) 3GPP (10415) +// 5.3.10 +type AVP_Grouped Flows; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Flow-Status (511) 3GPP (10415) +// 5.3.11 +type enumerated Flow_Status +{ + ENABLED_UPLINK (0), + ENABLED_DOWNLINK (1), + ENABLED (2), + DISABLED (3), + REMOVED (4) +} + + +// 3GPP TS 29.214 15.2.0 +// AVP: Flow-Usage (512) 3GPP (10415) +// 5.3.12 +type enumerated Flow_Usage +{ + NO_INFORMATION (0), + RTCP (1), + AF_SIGNALLING (2) +} + + +// 3GPP TS 29.214 15.2.0 +// AVP: Specific-Action (513) 3GPP (10415) +// 5.3.13 +type enumerated Specific_Action +{ + CHARGING_CORRELATION_EXCHANGE (1), + INDICATION_OF_LOSS_OF_BEARER (2), + INDICATION_OF_RECOVERY_OF_BEARER (3), + INDICATION_OF_RELEASE_OF_BEARER (4), + INDICATION_OF_ESTABLISHMENT_OF_BEARER (5), + IP_CAN_CHANGE (6), + INDICATION_OF_OUT_OF_CREDIT (7), + INDICATION_OF_SUCCESSFUL_RESOURCES_ALLOCATION (8), + INDICATION_OF_FAILED_RESOURCES_ALLOCATION (9), + INDICATION_OF_LIMITED_PCC_DEPLOYMENT (10), + USAGE_REPORT (11), + ACCESS_NETWORK_INFO_REPORT (12), + INDICATION_OF_RECOVERY_FROM_LIMITED_PCC_DEPLOYMENT (13), + INDICATION_OF_ACCESS_NETWORK_INFO_REPORTING_FAILURE (14), + INDICATION_OF_TRANSFER_POLICY_EXPIRED (15), + PLMN_CHANGE (16) +} + + +// 3GPP TS 29.214 15.2.0 +// AVP: Max-Requested-Bandwidth-DL (515) 3GPP (10415) +// 5.3.14 +type AVP_Unsigned32 Max_Requested_Bandwidth_DL; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Max-Requested-Bandwidth-UL (516) 3GPP (10415) +// 5.3.15 +type AVP_Unsigned32 Max_Requested_Bandwidth_UL; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Media-Component-Description (517) 3GPP (10415) +// 5.3.16 +type AVP_Grouped Media_Component_Description; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Media-Component-Number (518) 3GPP (10415) +// 5.3.17 +type AVP_Unsigned32 Media_Component_Number; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Media-Sub-Component (519) 3GPP (10415) +// 5.3.18 +type AVP_Grouped Media_Sub_Component; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Media-Type (520) 3GPP (10415) +// 5.3.19 +type AVP_Unsigned32 Media_Type; + + +// 3GPP TS 29.214 15.2.0 +// AVP: RR-Bandwidth (521) 3GPP (10415) +// 5.3.20 +type AVP_Unsigned32 RR_Bandwidth; + + +// 3GPP TS 29.214 15.2.0 +// AVP: RS-Bandwidth (522) 3GPP (10415) +// 5.3.21 +type AVP_Unsigned32 RS_Bandwidth; + +// 3GPP TS 29.214 15.2.0 +// AVP: SIP-Forking-Indication (523) 3GPP (10415) +// 5.3.22 +type enumerated SIP_Forking_Indication +{ + SINGLE_DIALOGUE (0), + SEVERAL_DIALOGUES (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Service-URN (525) 3GPP (10415) +// 5.3.23 +type AVP_OctetString Service_URN; + + +// 3GPP TS 29.214 15.2.0 +// AVP: Acceptable-Service-Info (526) 3GPP (10415) +// 5.3.24 +type AVP_Grouped Acceptable_Service_Info; + +// 3GPP TS 29.214 15.2.0 +// AVP: Service-Info-Status (527) 3GPP (10415) +// 5.3.25 +type enumerated Service_Info_Status +{ + FINAL_SERVICE_INFORMATION (0), + PRELIMINARY_SERVICE_INFORMATION (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: AF-Signalling-Protocol (529) 3GPP (10415) +// 5.3.26 +type enumerated AF_Signalling_Protocol +{ + NO_INFORMATION (0), + SIP (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Sponsored-Connectivity-Data (530) 3GPP (10415) +// 5.3.27 +type AVP_Grouped Sponsored_Connectivity_Data; + +// 3GPP TS 29.214 15.2.0 +// AVP: Sponsor-Identity (531) 3GPP (10415) +// 5.3.28 +type AVP_UTF8String Sponsor_Identity; + +// 3GPP TS 29.214 15.2.0 +// AVP: Application-Service-Provider-Identity (532) 3GPP (10415) +// 5.3.29 +type AVP_UTF8String Application_Service_Provider_Identity; + + +// 3GPP TS 29.214 15.2.0 +// AVP: MPS-Identifier (528) 3GPP (10415) +// 5.3.30 +type AVP_OctetString MPS_Identifier; + +// 3GPP TS 29.214 15.2.0 +// AVP: Rx-Request-Type (533) 3GPP (10415) +// 5.3.31 +type enumerated Rx_Request_Type +{ + INITIAL_REQUEST (0), + UPDATE_REQUEST (1), + PCSCF_RESTORATION (2) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Min-Requested-Bandwidth-DL (534) 3GPP (10415) +// 5.3.32 +type AVP_Unsigned32 Min_Requested_Bandwidth_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Min-Requested-Bandwidth-UL (535) 3GPP (10415) +// 5.3.33 +type AVP_Unsigned32 Min_Requested_Bandwidth_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Required-Access-Info (536) 3GPP (10415) +// 5.3.34 +type enumerated Required_Access_Info +{ + USER_LOCATION (0), + MS_TIME_ZONE (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Ip-Domain-Id (537) 3GPP (10415) +// 5.3.35 +type AVP_OctetString Ip_Domain_Id; + +// 3GPP TS 29.214 15.2.0 +// AVP: GCS-Identifier (538) 3GPP (10415) +// 5.3.36 +type AVP_OctetString GCS_Identifier; + +// 3GPP TS 29.214 15.2.0 +// AVP: Sharing-Key-DL (539) 3GPP (10415) +// 5.3.37 +type AVP_Unsigned32 Sharing_Key_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Sharing-Key-UL (540) 3GPP (10415) +// 5.3.38 +type AVP_Unsigned32 Sharing_Key_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Retry-Interval (541) 3GPP (10415) +// 5.3.39 +type AVP_Unsigned32 Retry_Interval; + +// 3GPP TS 29.214 15.2.0 +// AVP: Sponsoring-Action (542) 3GPP (10415) +// 5.3.40 +type enumerated Sponsoring_Action +{ + DISABLE_SPONSORING (0), + ENABLE_SPONSORING (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Max-Supported-Bandwidth-DL (543) 3GPP (10415) +// 5.3.41 +type AVP_Unsigned32 Max_Supported_Bandwidth_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Max-Supported-Bandwidth-UL (544) 3GPP (10415) +// 5.3.42 +type AVP_Unsigned32 Max_Supported_Bandwidth_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Min-Desired-Bandwidth-DL (545) 3GPP (10415) +// 5.3.43 +type AVP_Unsigned32 Min_Desired_Bandwidth_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Min-Desired-Bandwidth-UL (546) 3GPP (10415) +// 5.3.44 +type AVP_Unsigned32 Min_Desired_Bandwidth_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: MCPTT-Identifier (547) 3GPP (10415) +// 5.3.45 +type AVP_OctetString MCPTT_Identifier; + +// 3GPP TS 29.214 15.2.0 +// AVP: Service-Authorization-Info (548) 3GPP (10415) +// 5.3.46 +type AVP_Unsigned32 Service_Authorization_Info; + +// 3GPP TS 29.214 15.2.0 +// AVP: Priority-Sharing-Indicator (550) 3GPP (10415) +// 5.3.47 +type enumerated Priority_Sharing_Indicator +{ + PRIORITY_SHARING_ENABLED (0), + PRIORITY_SHARING_DISABLED (1) +} + +// 3GPP TS 29.214 15.2.0 +// AVP: Media-Component-Status (549) 3GPP (10415) +// 5.3.49 +type AVP_Unsigned32 Media_Component_Status; + +// 3GPP TS 29.214 15.2.0 +// AVP: Content-Version (552) 3GPP (10415) +// 5.3.49 +type AVP_Unsigned64 Content_Version; + +// 3GPP TS 29.214 15.2.0 +// AVP: AF-Requested-Data (551) 3GPP (10415) +// 5.3.50 +type AVP_Unsigned32 AF_Requested_Data; + +// 3GPP TS 29.214 15.2.0 +// AVP: Pre-emption-Control-Info (553) 3GPP (10415) +// 5.3.51 +type AVP_Unsigned32 Pre_emption_Control_Info; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Max-Requested-BW-DL (554) 3GPP (10415) +// 5.3.52 +type AVP_Unsigned32 Extended_Max_Requested_BW_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Max-Requested-BW-UL (555) 3GPP (10415) +// 5.3.53 +type AVP_Unsigned32 Extended_Max_Requested_BW_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Max-Supported-BW-DL (556) 3GPP (10415) +// 5.3.54 +type AVP_Unsigned32 Extended_Max_Supported_BW_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Max-Supported-BW-UL (557) 3GPP (10415) +// 5.3.55 +type AVP_Unsigned32 Extended_Max_Supported_BW_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Min-Desired-BW-DL (558) 3GPP (10415) +// 5.3.56 +type AVP_Unsigned32 Extended_Min_Desired_BW_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Min-Desired-BW-UL (559) 3GPP (10415) +// 5.3.57 +type AVP_Unsigned32 Extended_Min_Desired_BW_UL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Min-Requested-BW-DL (560) 3GPP (10415) +// 5.3.58 +type AVP_Unsigned32 Extended_Min_Requested_BW_DL; + +// 3GPP TS 29.214 15.2.0 +// AVP: Extended-Min-Requested-BW-UL (561) 3GPP (10415) +// 5.3.59 +type AVP_Unsigned32 Extended_Min_Requested_BW_UL; + + diff --git a/src/S6Interfaces_3GPP_TS29336_f00.ddf b/src/S6Interfaces_3GPP_TS29336_f00.ddf new file mode 100644 index 0000000..dc70e49 --- /dev/null +++ b/src/S6Interfaces_3GPP_TS29336_f00.ddf @@ -0,0 +1,324 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: S6Interfaces_3GPP_TS29336_f00.ddf +// Description: DDF for S6m, S6n and S6t Interfaces according to 3GPP TS 29.336 V15.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: S6 +// APPLICATION-REVISION: V15_0_0 + +// AVP implementations according to: +// 3GPP TS 29.336 V15.0.0 - Home Subscriber Server (HSS) diameter interfaces for interworking with packet data networks and applications + +// 8.2.2 +type enumerated Command_Code +{ + Subscriber_Information (8388641), + Configuration_Information (8388718), + Reporting_Information (8388719), + NIDD_Information (8388726) +} + +//S6m/S6n specific Diameter AVPs + +// 6.4.14 +// AVP: IP-SM-GW-Number (3100) 3GPP (10415) +type AVP_OctetString IP_SM_GW_Number; + +// 6.4.15 +// AVP: IP-SM-GW-Name (3101) 3GPP (10415) +type AVP_DiameterIdentity IP_SM_GW_Name; + +// 6.4.2 +// AVP: User-Identifier (3102) 3GPP (10415) +type AVP_Grouped User_Identifier; + +// 6.4.3 +// AVP: Service-ID (3103) 3GPP (10415) +type enumerated Service_ID +{ + DEVICE_TRIGGER (0), + SMS_MO (1) +} + +// 6.4.4 +// AVP: SCS-Identity (3104) 3GPP (10415) +type AVP_OctetString SCS_Identity; + +// 6.4.5 +// AVP: Service-Parameters (3105) 3GPP (10415) +type AVP_Grouped Service_Parameters; + +// 6.4.6 +// AVP: T4-Parameters (3106) 3GPP (10415) +type AVP_Grouped T4_Parameters; + +// 6.4.7 +// AVP: Service-Data (3107) 3GPP (10415) +type AVP_Grouped Service_Data; + +// 6.4.8 +// AVP: T4-Data (3108) 3GPP (10415) +type AVP_Grouped T4_Data; + +// 6.4.9 +// AVP: HSS-Cause (3109) 3GPP (10415) +type AVP_Unsigned32 HSS_Cause; + +// 6.4.10 +// AVP: SIR-Flags (3110) 3GPP (10415) +type AVP_Unsigned32 SIR_Flags; + +// 6.4.11 +// AVP: External-Identifier (3111) 3GPP (10415) +type AVP_UTF8String External_Identifier; + +// 6.4.18 +// AVP: IP-SM-GW-Realm (3112) 3GPP (10415) +type AVP_DiameterIdentity IP_SM_GW_Realm; + + + +//S6t specific Diameter AVPs + +// 8.4.25 +// AVP: AESE-Communication-Pattern (3113) 3GPP (10415) +type AVP_Grouped AESE_Communication_Pattern; + +// 8.4.26 +// AVP: Communication-Pattern-Set (3114) 3GPP (10415) +type AVP_Grouped Communication_Pattern_Set; + +// 8.4.27 +// AVP: Periodic-Communication-Indicator (3115) 3GPP (10415) +type AVP_Unsigned32 Periodic_Communication_Indicator; + +// 8.4.28 +// AVP: Communication-Duration-Time (3116) 3GPP (10415) +type AVP_Unsigned32 Communication_Duration_Time; + +// 8.4.29 +// AVP: Periodic-Time (3117) 3GPP (10415) +type AVP_Unsigned32 Periodic_Time; + +// 8.4.30 +// AVP: Scheduled-Communication-Time (3118) 3GPP (10415) +type AVP_Grouped Scheduled_Communication_Time; + +// 8.4.31 +// AVP: Stationary-Indication (3119) 3GPP (10415) +type AVP_Unsigned32 Stationary_Indication; + +// 8.4.32 +// AVP: AESE-Communication-Pattern-Config-Status (3120) 3GPP (10415) +type AVP_Grouped AESE_Communication_Pattern_Config_Status; + +// 8.4.33 +// AVP: AESE-Error-Report (3121) 3GPP (10415) +type AVP_Grouped AESE_Error_Report; + +// 8.4.2 +// AVP: Monitoring-Event-Configuration (3122) 3GPP (10415) +type AVP_Grouped Monitoring_Event_Configuration; + +// 8.4.3 +// AVP: Monitoring-Event-Report (3123) 3GPP (10415) +type AVP_Grouped Monitoring_Event_Report; + +// 8.4.4 +// AVP: SCEF-Reference-ID (3124) 3GPP (10415) +type AVP_Unsigned32 SCEF_Reference_ID; + +// 8.4.5 +// AVP: SCEF-ID (3125) 3GPP (10415) +type AVP_DiameterIdentity SCEF_ID; + +// 8.4.6 +// AVP: SCEF-Reference-ID-for-Deletion (3126) 3GPP (10415) +type AVP_Unsigned32 SCEF_Reference_ID_for_Deletion; + +// 8.4.7 +// AVP: Monitoring-Type (3127) 3GPP (10415) +type AVP_Unsigned32 Monitoring_Type; + +// 8.4.8 +// AVP: Maximum-Number-of-Reports (3128) 3GPP (10415) +type AVP_Unsigned32 Maximum_Number_of_Reports; + +// 8.4.9 +// AVP: UE-Reachability-Configuration (3129) 3GPP (10415) +type AVP_Grouped UE_Reachability_Configuration; + +// 8.4.10 +// AVP: Monitoring-Duration (3130) 3GPP (10415) +type AVP_Time Monitoring_Duration; + +// 8.4.11 +// AVP: Maximum-Detection-Time (3131) 3GPP (10415) +type AVP_Unsigned32 Maximum_Detection_Time; + +// 8.4.12 +// AVP: Reachability-Type (3132) 3GPP (10415) +type AVP_Unsigned32 Reachability_Type; + +// 8.4.13 +// AVP: Maximum-Latency (3133) 3GPP (10415) +type AVP_Unsigned32 Maximum_Latency; + +// 8.4.14 +// AVP: Maximum-Response-Time (3134) 3GPP (10415) +type AVP_Unsigned32 Maximum_Response_Time; + +// 8.4.15 +// AVP: Location-Information-Configuration (3135) 3GPP (10415) +type AVP_Grouped Location_Information_Configuration; + +// 8.4.16 +// AVP: MONTE-Location-Type (3136) 3GPP (10415) +type AVP_Unsigned32 MONTE_Location_Type; + +// 8.4.17 +// AVP: Accuracy (3137) 3GPP (10415) +type AVP_Unsigned32 Accuracy; + +// 8.4.18 +// AVP: Association-Type (3138) 3GPP (10415) +type AVP_Unsigned32 Association_Type; + +// 8.4.19 +// AVP: Roaming-Information (3139) 3GPP (10415) +type AVP_Unsigned32 Roaming_Information; + +// 8.4.20 +// AVP: Reachability-Information (3140) 3GPP (10415) +type AVP_Unsigned32 Reachability_Information; + +// 8.4.22 +// AVP: IMEI-Change (3141) 3GPP (10415) +type AVP_Unsigned32 IMEI_Change; + +// 8.4.24 +// AVP: Monitoring-Event-Config-Status (3142) 3GPP (10415) +type AVP_Grouped Monitoring_Event_Config_Status; + +// 8.4.40 +// AVP: Supported-Services (3143) 3GPP (10415) +type AVP_Grouped Supported_Services; + +// 8.4.41 +// AVP: Supported-Monitoring-Events (3144) 3GPP (10415) +type AVP_Unsigned64 Supported_Monitoring_Events; + +// 8.4.39 +// AVP: CIR-Flags (3145) 3GPP (10415) +type AVP_Unsigned32 CIR_Flags; + +// 8.4.37 +// AVP: Service-Result (3146) 3GPP (10415) +type AVP_Grouped Service_Result; + +// 8.4.38 +// AVP: Service-Result-Code (3147) 3GPP (10415) +type AVP_Unsigned32 Service_Result_Code; + +// 8.4.42 +// AVP: Reference-ID-Validity-Time (3148) 3GPP (10415) +type AVP_Time Reference_ID_Validity_Time; + +// 8.4.43 +// AVP: Event-Handling (3149) 3GPP (10415) +type AVP_Unsigned32 Event_Handling; + +// 8.4.44 +// AVP: NIDD-Authorization-Request (3150) 3GPP (10415) +type AVP_Grouped NIDD_Authorization_Request; + +// 8.4.45 +// AVP: NIDD-Authorization-Response (3151) 3GPP (10415) +type AVP_Grouped NIDD_Authorization_Response; + +// 8.4.47 +// AVP: Service-Report (3152) 3GPP (10415) +type AVP_Grouped Service_Report; + +// 8.4.48 +// AVP: Node-Type (3153) 3GPP (10415) +type AVP_Unsigned32 Node_Type; + +// 8.4.50 +// AVP: S6t-HSS-Cause (3154) 3GPP (10415) +type AVP_Unsigned32 S6t_HSS_Cause; + +// 8.4.51 +// AVP: Enhanced-Coverage-Restriction (3155) 3GPP (10415) +type AVP_Grouped Enhanced_Coverage_Restriction; + +// 8.4.52 +// AVP: Enhanced-Coverage-Restriction-Data (3156) 3GPP (10415) +type AVP_Grouped Enhanced_Coverage_Restriction_Data; + +// 8.4.53 +// AVP: Restricted-PLMN-List (3157) 3GPP (10415) +type AVP_Grouped Restricted_PLMN_List; + +// 8.4.54 +// AVP: Allowed-PLMN-List (3158) 3GPP (10415) +type AVP_Grouped Allowed_PLMN_List; + +// 8.4.55 +// AVP: Requested-Validity-Time (3159) 3GPP (10415) +type AVP_Time Requested_Validity_Time; + +// 8.4.56 +// AVP: Granted-Validity-Time (3160) 3GPP (10415) +type AVP_Time Granted_Validity_Time; + +// 8.4.57 +// AVP: NIDD-Authorization-Update (3161) 3GPP (10415) +type AVP_Grouped NIDD_Authorization_Update; + +// 8.4.58 +// AVP: Loss-Of-Connectivity-Reason (3162) 3GPP (10415) +type AVP_Unsigned32 Loss_Of_Connectivity_Reason; + +// 8.4.59 +// AVP: Group-Reporting-Guard-Timer (3163) 3GPP (10415) +type AVP_Unsigned32 Group_Reporting_Guard_Timer; + +// 8.4.60 +// AVP: CIA-Flags (3164) 3GPP (10415) +type AVP_Unsigned32 CIA_Flags; + +// 8.4.61 +// AVP: Group-Monitoring-Event-Report (3165) 3GPP (10415) +type AVP_Grouped Group_Monitoring_Event_Report; + +// 8.4.62 +// AVP: Group-Monitoring-Event-Report-Item (3166) 3GPP (10415) +type AVP_Grouped Group_Monitoring_Event_Report_Item; + +// 8.4.63 +// AVP: RIR-Flags (3167) 3GPP (10415) +type AVP_Unsigned32 RIR_Flags; + +// 8.4.64 +// AVP: Type-Of-External-Identifier (3168) 3GPP (10415) +type AVP_Unsigned32 Type_Of_External_Identifier; + +// 8.4.65 +// AVP: APN-Validity-Time (3169) 3GPP (10415) +type AVP_Grouped APN_Validity_Time; + + + diff --git a/src/S6cInterface_3GPP_TS29338_f00.ddf b/src/S6cInterface_3GPP_TS29338_f00.ddf new file mode 100644 index 0000000..001b300 --- /dev/null +++ b/src/S6cInterface_3GPP_TS29338_f00.ddf @@ -0,0 +1,113 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: S6cInterface_3GPP_TS29338_f00.ddf +// Description: DDF for S6c Interface according to 3GPP TS 29.338 V15.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: S6C +// APPLICATION-REVISION: V15_0_0 + +// 5.3.2.2 +type enumerated Command_Code +{ + Send_Routing_Info_for_SM (8388647), + Alert_Service_Centre (8388648), + Report_SM_Delivery_Status (8388649) +} + +// 5.3.3.2 +// AVP: SM-RP-MTI (3308) 3GPP (10415) +type enumerated SM_RP_MTI +{ + SM_DELIVER (0), + SM_STATUS_REPORT (1) +} + +// 5.3.3.3 +// AVP: SM-RP-SMEA (3309) 3GPP (10415) +type AVP_OctetString SM_RP_SMEA; + +// 5.3.3.4 +// AVP: SRR-Flags (3310) 3GPP (10415) +type AVP_Unsigned32 SRR_Flags; + +// 5.3.3.5 +// AVP: SM-Delivery-Not-Intended (3311) 3GPP (10415) +type enumerated SM_Delivery_Not_Intended +{ + ONLY_IMSI_REQUESTED (0), + ONLY_MCC_MNC_REQUESTED (1) +} + +// 5.3.3.8 +// AVP: MWD-Status (3312) 3GPP (10415) +type AVP_Unsigned32 MWD_Status; + +// 5.3.3.9 +// AVP: MME-Absent-User-Diagnostic-SM (3313) 3GPP (10415) +type AVP_Unsigned32 MME_Absent_User_Diagnostic_SM; + +// 5.3.3.10 +// AVP: MSC-Absent-User-Diagnostic-SM (3314) 3GPP (10415) +type AVP_Unsigned32 MSC_Absent_User_Diagnostic_SM; + +// 5.3.3.11 +// AVP: SGSN-Absent-User-Diagnostic-SM (3315) 3GPP (10415) +type AVP_Unsigned32 SGSN_Absent_User_Diagnostic_SM; + +// 5.3.3.14 +// AVP: SM-Delivery-Outcome (3316) 3GPP (10415) +type AVP_Grouped SM_Delivery_Outcome; + +// 5.3.3.15 +// AVP: MME-SM-Delivery-Outcome (3317) 3GPP (10415) +type AVP_Grouped MME_SM_Delivery_Outcome; + +// 5.3.3.16 +// AVP: MSC-SM-Delivery-Outcome (3318) 3GPP (10415) +type AVP_Grouped MSC_SM_Delivery_Outcome; + +// 5.3.3.17 +// AVP: SGSN-SM-Delivery-Outcome (3319) 3GPP (10415) +type AVP_Grouped SGSN_SM_Delivery_Outcome; + +// 5.3.3.18 +// AVP: IP-SM-GW-SM-Delivery-Outcome (3320) 3GPP (10415) +type AVP_Grouped IP_SM_GW_SM_Delivery_Outcome; + +// 5.3.3.19 +// AVP: SM-Delivery-Cause (3321) 3GPP (10415) +type enumerated SM_Delivery_Cause +{ + UE_MEMORY_CAPACITY_EXCEEDED (0), + ABSENT_USER (1), + SUCCESSFUL_TRANSFER (2) +} + +// 5.3.3.20 +// AVP: Absent-User-Diagnostic-SM (3322) 3GPP (10415) +type AVP_Unsigned32 Absent_User_Diagnostic_SM; + +// 5.3.3.21 +// AVP: RDR-Flags (3323) 3GPP (10415) +type AVP_Unsigned32 RDR_Flags; + +// 5.3.3.22 +// AVP: Maximum-UE-Availability-Time (3329) 3GPP (10415) +type AVP_Time Maximum_UE_Availability_Time; + +// 5.3.3.23 +// AVP: SMS-GMSC-Alert-Event (3333) 3GPP (10415) +type AVP_Unsigned32 SMS_GMSC_Alert_Event; + diff --git a/src/S9Interface_3GPP_TS29215_b40.ddf b/src/S9Interface_3GPP_TS29215_b40.ddf index 3247f91..29a95a0 100644 --- a/src/S9Interface_3GPP_TS29215_b40.ddf +++ b/src/S9Interface_3GPP_TS29215_b40.ddf @@ -37,7 +37,7 @@ // // File: S9Interface_3GPP_TS29215_b40.ddf // Description: DDF for S9 according to 3GPP TS 29.215 V11.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGdGddInterface_3GPP_TS29338_f00.ddf b/src/SGdGddInterface_3GPP_TS29338_f00.ddf new file mode 100644 index 0000000..7611810 --- /dev/null +++ b/src/SGdGddInterface_3GPP_TS29338_f00.ddf @@ -0,0 +1,99 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: SGdGddInterface_3GPP_TS29338_f00.ddf +// Description: DDF for SGd/Gdd Interface according to 3GPP TS 29.338 V15.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: SGdGdd +// APPLICATION-REVISION: V15_0_0 + +// 5.3.2.2 +type enumerated Command_Code +{ + MO_Forward_Short_Message (8388645), + MT_Forward_Short_Message (8388646) +} + +// 5.3.3.2 +// AVP: SC-Address (3300) 3GPP (10415) +type AVP_OctetString SC_Address; + +// 5.3.3.3 +// AVP: SM-RP-UI (3301) 3GPP (10415) +type AVP_OctetString SM_RP_UI; + +// 5.3.3.4 +// AVP: TFR-Flags (3302) 3GPP (10415) +type AVP_Unsigned32 TFR_Flags; + +// 5.3.3.5 +// AVP: SM-Delivery-Failure-Cause (3303) 3GPP (10415) +type AVP_Grouped SM_Delivery_Failure_Cause; + +// 5.3.3.6 +// AVP: SM-Enumerated-Delivery-Failure-Cause (3304) 3GPP (10415) +type enumerated SM_Enumerated_Delivery_Failure_Cause +{ + MEMORY_CAPACITY_EXCEEDED (0), + EQUIPMENT_PROTOCOL_ERROR (1), + EQUIPMENT_NOT_SM_EQUIPPED (2), + UNKNOWN_SERVICE_CENTRE (3), + SC_CONGESTION (4), + INVALID_SME_ADDRESS (5), + USER_NOT_SC_USER (6) +} + +// 5.3.3.7 +// AVP: SM-Diagnostic-Info (3305) 3GPP (10415) +type AVP_OctetString SM_Diagnostic_Info; + +// 5.3.3.10 +// AVP: SM-Delivery-Timer (3306) 3GPP (10415) +type AVP_Unsigned32 SM_Delivery_Timer; + +// 5.3.3.11 +// AVP: SM-Delivery-Start-Time (3307) 3GPP (10415) +type AVP_Time SM_Delivery_Start_Time; + +// 5.3.3.13 +// AVP: SMSMI-Correlation-ID (3324) 3GPP (10415) +type AVP_Grouped SMSMI_Correlation_ID; + +// 5.3.3.14 +// AVP: HSS-ID (3325) 3GPP (10415) +type AVP_OctetString HSS_ID; + +// 5.3.3.15 +// AVP: Originating-SIP-URI (3326) 3GPP (10415) +type AVP_UTF8String Originating_SIP_URI; + +// 5.3.3.16 +// AVP: Destination-SIP-URI (3327) 3GPP (10415) +type AVP_UTF8String Destination_SIP_URI; + +// 5.3.3.12 +// AVP: OFR-Flags (3328) 3GPP (10415) +type AVP_Unsigned32 OFR_Flags; + +// 5.3.3.17 +// AVP: Maximum-Retransmission-Time (3330) 3GPP (10415) +type AVP_Time Maximum_Retransmission_Time; + +// 5.3.3.18 +// AVP: Requested-Retransmission-Time (3331) 3GPP (10415) +type AVP_Time Requested_Retransmission_Time; + +// 5.3.3.19 +// AVP: SMS-GMSC-Address (3332) 3GPP (10415) +type AVP_OctetString SMS_GMSC_Address; diff --git a/src/SGmbInterface_3GPP_TS29061_940.ddf b/src/SGmbInterface_3GPP_TS29061_940.ddf index ed752f4..9367c2f 100644 --- a/src/SGmbInterface_3GPP_TS29061_940.ddf +++ b/src/SGmbInterface_3GPP_TS29061_940.ddf @@ -37,7 +37,7 @@ // // File: SGmbInterface_3GPP_TS29061_940.ddf // Description: DDF for SGmb according to 3GPP TS 29.061 V9.4.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_980.ddf b/src/SGmbInterface_3GPP_TS29061_980.ddf index 2454cc3..29dd351 100644 --- a/src/SGmbInterface_3GPP_TS29061_980.ddf +++ b/src/SGmbInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: SGmbInterface_3GPP_TS29061_980.ddf // Description: DDF for SGmb according to 3GPP TS 29.061 V9.8.0 -// Rev: R40A +// Rev: R13A04 // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_b90.ddf b/src/SGmbInterface_3GPP_TS29061_b90.ddf index c4059c3..65050a8 100644 --- a/src/SGmbInterface_3GPP_TS29061_b90.ddf +++ b/src/SGmbInterface_3GPP_TS29061_b90.ddf @@ -11,7 +11,7 @@ // // File: SGmbInterface_3GPP_TS29061_b90.ddf // Description: DDF for SGmb according to 3GPP TS 29.061 V11.9.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_d70.ddf b/src/SGmbInterface_3GPP_TS29061_d70.ddf new file mode 100644 index 0000000..7f96a75 --- /dev/null +++ b/src/SGmbInterface_3GPP_TS29061_d70.ddf @@ -0,0 +1,91 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Máté Kovács +******************************************************************************/ +// +// File: SGmbInterface_3GPP_TS29061_d70.ddf +// Description: DDF for SGmb according to 3GPP TS 29.061 V13.7.0 +// Rev: R55A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: SGMB +// APPLICATION-REVISION: V13_7_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V13.7.0 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Access-Indicator (923) 3GPP (10415) +// 20.5a.1 +type enumerated MBMS_Access_Indicator +{ + UTRAN (0), + E_UTRAN (1), + UTRAN_AND_E_UTRAN (2) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GW-SSM-IP-Address (924) 3GPP (10415) +// 20.5a.2 +type AVP_OctetString MBMS_GW_SSM_IP_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GW-SSM-IPv6-Address (925) 3GPP (10415) +// 20.5a.3 +type AVP_OctetString MBMS_GW_SSM_IPv6_Address; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-BMSC-SSM-UDP-Port (926) 3GPP (10415) +// 20.5a.4 +type AVP_OctetString MBMS_BMSC_SSM_UDP_Port; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GW-UDP-Port (927) 3GPP (10415) +// 20.5a.5 +type AVP_OctetString MBMS_GW_UDP_Port; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-GW-UDP-Port-Indicator (928) 3GPP (10415) +// 20.5a.6 +type enumerated MBMS_GW_UDP_Port_Indicator +{ + UDP_PORT_REQUIRED (1) +} + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Data-Transfer-Start (929) 3GPP (10415) +// 20.5a.7 +type AVP_Unsigned64 MBMS_Data_Transfer_Start; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Data-Transfer-Stop (930) 3GPP (10415) +// 20.5a.8 +type AVP_Unsigned64 MBMS_Data_Transfer_Stop; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Flag (931) 3GPP (10415) +// 20.5a.9 +type AVP_Unsigned32 MBMS_Flag; + +// 3GPP TS 29.061 V13.7.0 +// AVP: Restart-Counter (932) 3GPP (10415) +// 20.5a.10 +type AVP_Unsigned32 Restart_Counter; + +// 3GPP TS 29.061 V13.7.0 +// AVP: Diagnostic-Info (933) 3GPP (10415) +// 20.5a.11 +type AVP_Unsigned32 Diagnostic_Info; + +// 3GPP TS 29.061 V13.7.0 +// AVP: MBMS-Cell-List (934) 3GPP (10415) +// 20.5a.12 +type AVP_OctetString MBMS_Cell_List; \ No newline at end of file diff --git a/src/SKT_Specific_AVPs.ddf b/src/SKT_Specific_AVPs.ddf index bb9265c..28061e9 100644 --- a/src/SKT_Specific_AVPs.ddf +++ b/src/SKT_Specific_AVPs.ddf @@ -11,7 +11,7 @@ // // File: SKT_Specific_AVPs.ddf // Description: SKT Specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 @@ -25,3 +25,11 @@ // Zone-Info // AVP: Zone-Info (9104) SKT (5806) type AVP_UTF8String Zone_Info; + +// Quota-Noti +// AVP: Quota-Noti (9105) SKT (5806) +type AVP_UTF8String Quota_Noti; + +// Win-Service-Type +// AVP: Win-Service-Type (10002) SKT (5806) +type AVP_Unsigned32 Win_Service_Type; diff --git a/src/SLgInterface_3GPP_TS29172_d10.ddf b/src/SLgInterface_3GPP_TS29172_d10.ddf index aac1b1f..c9dd272 100644 --- a/src/SLgInterface_3GPP_TS29172_d10.ddf +++ b/src/SLgInterface_3GPP_TS29172_d10.ddf @@ -11,7 +11,7 @@ // // File: SLgInterface_3GPP_TS29172_d10.ddf // Description: DDF for SLg according to 3GPP TS 29.172 d.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SLhInterface_3GPP_TS29173_d00.ddf b/src/SLhInterface_3GPP_TS29173_d00.ddf index 57256b8..322ee16 100644 --- a/src/SLhInterface_3GPP_TS29173_d00.ddf +++ b/src/SLhInterface_3GPP_TS29173_d00.ddf @@ -11,7 +11,7 @@ // // File: SLhInterface_3GPP_TS29173_d00.ddf // Description: DDF for SLh according to 3GPP TS 29.173 d.0.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_620.ddf b/src/ShInterface_3GPP_TS29329_620.ddf index 1d76a99..e49954c 100644 --- a/src/ShInterface_3GPP_TS29329_620.ddf +++ b/src/ShInterface_3GPP_TS29329_620.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_620.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v6.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_750.ddf b/src/ShInterface_3GPP_TS29329_750.ddf index 10c10e0..1a9c21c 100644 --- a/src/ShInterface_3GPP_TS29329_750.ddf +++ b/src/ShInterface_3GPP_TS29329_750.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_750.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v7.5.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_820.ddf b/src/ShInterface_3GPP_TS29329_820.ddf index c1bb8eb..0a9adac 100644 --- a/src/ShInterface_3GPP_TS29329_820.ddf +++ b/src/ShInterface_3GPP_TS29329_820.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_820.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v8.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_a30.ddf b/src/ShInterface_3GPP_TS29329_a30.ddf index 4ad65a9..bc500d5 100644 --- a/src/ShInterface_3GPP_TS29329_a30.ddf +++ b/src/ShInterface_3GPP_TS29329_a30.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_a30.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v10.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_a50.ddf b/src/ShInterface_3GPP_TS29329_a50.ddf index 94f4419..c7b428c 100644 --- a/src/ShInterface_3GPP_TS29329_a50.ddf +++ b/src/ShInterface_3GPP_TS29329_a50.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_a50.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v10.5.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SyInterface_3GPP_TS29219_b30.ddf b/src/SyInterface_3GPP_TS29219_b30.ddf index 9df4c5d..026aceb 100644 --- a/src/SyInterface_3GPP_TS29219_b30.ddf +++ b/src/SyInterface_3GPP_TS29219_b30.ddf @@ -37,7 +37,7 @@ // // File: SyInterface_3GPP_TS29219_b30.ddf // Description: DDF for Sy Interface according to 3GPP 29.219 v11.3.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/T6Interfaces_3GPP_TS29128_f00.ddf b/src/T6Interfaces_3GPP_TS29128_f00.ddf new file mode 100644 index 0000000..ea8f264 --- /dev/null +++ b/src/T6Interfaces_3GPP_TS29128_f00.ddf @@ -0,0 +1,130 @@ +/****************************************************************************** +* Copyright (c) 2004, 2017 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: T6Interfaces_3GPP_TS29128_f00.ddf +// Description: DDF for T6a and T6b Interfaces according to 3GPP TS 29.128 V15.0.0 +// Rev: R55A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: T6 +// APPLICATION-REVISION: V15_0_0 + +// AVP implementations according to: +// 3GPP TS 29.128 V15.0.0 - Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) interfaces for interworking with packet data networks and applications + +// 8.2.2 +type enumerated Command_Code +{ + Connection_Management (8388732), + MO_Data (8388733), + MT_Data (8388734) +} + +// 6.4.4 +// AVP: Communication-Failure-Information (4300) 3GPP (10415) +type AVP_Grouped Communication_Failure_Information; + +// 6.4.5 +// AVP: Cause-Type (4301) 3GPP (10415) +type AVP_Unsigned32 Cause_Type; + +// 6.4.6 +// AVP: S1AP-Cause (4302) 3GPP (10415) +type AVP_Unsigned32 S1AP_Cause; + +// 6.4.7 +// AVP: RANAP-Cause (4303) 3GPP (10415) +type AVP_Unsigned32 RANAP_Cause; + +// 6.4.8 +// AVP: BSSGP-Cause (4309) 3GPP (10415) +type AVP_Unsigned32 BSSGP_Cause; + +// 6.4.9 +// AVP: GMM-Cause (4304) 3GPP (10415) +type AVP_Unsigned32 GMM_Cause; + +// 6.4.10 +// AVP: SM-Cause (4305) 3GPP (10415) +type AVP_Unsigned32 SM_Cause; + +// 6.4.11 +// AVP: Number-Of-UE-Per-Location-Configuration (4306) 3GPP (10415) +type AVP_Grouped Number_Of_UE_Per_Location_Configuration; + +// 6.4.12 +// AVP: Number-Of-UE-Per-Location-Report (4307) 3GPP (10415) +type AVP_Grouped Number_Of_UE_Per_Location_Report; + +// 6.4.13 +// AVP: UE-Count (4308) 3GPP (10415) +type AVP_Unsigned32 UE_Count; + +// 6.4.18 +// AVP: Connection-Action (4314) 3GPP (10415) +type AVP_Unsigned32 Connection_Action; + +// 6.4.19 +// AVP: Non-IP-Data (4315) 3GPP (10415) +type AVP_OctetString Non_IP_Data; + +// 6.4.21 +// AVP: Serving-PLMN-Rate-Control (4310) 3GPP (10415) +type AVP_Grouped Serving_PLMN_Rate_Control; + +// 6.4.23 +// AVP: Uplink-Rate-Limit (4311) 3GPP (10415) +type AVP_Unsigned32 Uplink_Rate_Limit; + +// 6.4.22 +// AVP: Downlink-Rate-Limit (4312) 3GPP (10415) +type AVP_Unsigned32 Downlink_Rate_Limit; + +// 6.4.26 +// AVP: Extended-PCO (4313) 3GPP (10415) +type AVP_OctetString Extended_PCO; + +// 6.4.24 +// AVP: SCEF-Wait-Time (4316) 3GPP (10415) +type AVP_Time SCEF_Wait_Time; + +// 6.4.25 +// AVP: CMR-Flags (4317) 3GPP (10415) +type AVP_Unsigned32 CMR_Flags; + +// 6.4.27 +// AVP: RRC-Cause-Counter (4318) 3GPP (10415) +type AVP_Grouped RRC_Cause_Counter; + +// 6.4.28 +// AVP: Counter-Value (4319) 3GPP (10415) +type AVP_Unsigned32 Counter_Value; + +// 6.4.29 +// AVP: RRC-Counter-Timestamp (4320) 3GPP (10415) +type AVP_Time RRC_Counter_Timestamp; + +// 6.4.31 +// AVP: TDA-Flags (4321) 3GPP (10415) +type AVP_Unsigned32 TDA_Flags; + +// 6.4.32 +// AVP: Idle-Status-Indication (4322) 3GPP (10415) +type AVP_Grouped Idle_Status_Indication; + +// 6.4.33 +// AVP: Idle-Status-Timestamp (4323) 3GPP (10415) +type AVP_Time Idle_Status_Timestamp; + +// 6.4.34 +// AVP: Active-Time (4324) 3GPP (10415) +type AVP_Unsigned32 Active_Time; diff --git a/src/TCOM_Specific_AVPs.ddf b/src/TCOM_Specific_AVPs.ddf index 193055a..ece8125 100644 --- a/src/TCOM_Specific_AVPs.ddf +++ b/src/TCOM_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: TCOM_Specific_AVPs.ddf // Description: T-COM specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Verizon_Specific_AVPs.ddf b/src/Verizon_Specific_AVPs.ddf index 5f2c148..a48b7ae 100644 --- a/src/Verizon_Specific_AVPs.ddf +++ b/src/Verizon_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Verizon_Specific_AVPs.ddf // Description: Verizon specific AVP definitions -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -71,3 +71,11 @@ type AVP_Unsigned32 Self_Activation_Status; // Verizon PGW-Relocation-Indication // AVP: PGW-Relocation-Indication (6114) Verizon (12951) type AVP_Grouped PGW_Relocation_Indication; + +// Verizon Origination-TimeStamp +// AVP: Origination-TimeStamp (7102) Verizon (12951) +type AVP_Unsigned64 Origination_TimeStamp; + +// Verizon Max-Wait-Time +// AVP: Max-Wait-Time (7103) Verizon (12951) +type AVP_Unsigned32 Max_Wait_Time; diff --git a/src/Vimpelcom_Specific.ddf b/src/Vimpelcom_Specific.ddf index e6af6c0..4a3e6ce 100644 --- a/src/Vimpelcom_Specific.ddf +++ b/src/Vimpelcom_Specific.ddf @@ -37,7 +37,7 @@ // // File: Vimpelcom_Specific.ddf // Description: Vimpelcom specific AVPs -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -69,4 +69,9 @@ type AVP_Unsigned32 TOA_Adapt_Status; // AVP: TOA-Opt-Status (667) Vimpelcom_toa (50001) type AVP_Unsigned32 TOA_Opt_Status; +// AVP: DPI-Specific-Flow-Id (668) Vimpelcom_sadpi (50000) +type AVP_OctetString DPI_Specific_Flow_Id; + +// AVP: DPI-Flow-Info (669) Vimpelcom_sadpi (50000) +type AVP_Grouped DPI_Flow_Info; diff --git a/src/Vodafone_Specific.ddf b/src/Vodafone_Specific.ddf index 082b87b..d717cde 100644 --- a/src/Vodafone_Specific.ddf +++ b/src/Vodafone_Specific.ddf @@ -37,7 +37,7 @@ // // File: Vodafone_Specific.ddf // Description: Vodafone specific AVPs -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/WgInterface_3GPP_TS29234_910.ddf b/src/WgInterface_3GPP_TS29234_910.ddf index 331e2b4..2e2fa17 100644 --- a/src/WgInterface_3GPP_TS29234_910.ddf +++ b/src/WgInterface_3GPP_TS29234_910.ddf @@ -37,7 +37,7 @@ // // File: WgInterface_3GPP_TS29234_910.ddf // Description: DDF for 3GPP to WLAN interworking according to 3GPP TS 29.234 V9.1.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/a2Interface_ETSI_ES183059_1_211.ddf b/src/a2Interface_ETSI_ES183059_1_211.ddf index aab6565..40ae1fb 100644 --- a/src/a2Interface_ETSI_ES183059_1_211.ddf +++ b/src/a2Interface_ETSI_ES183059_1_211.ddf @@ -37,7 +37,7 @@ // // File: a2Interface_ETSI_ES183059_1_211.ddf // Description: DDF for a2 Interface according to ETSI ES 183 059-1 V2.1.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/a4Interface_ETSI_ES183066_211.ddf b/src/a4Interface_ETSI_ES183066_211.ddf index 23bc082..e846662 100644 --- a/src/a4Interface_ETSI_ES183066_211.ddf +++ b/src/a4Interface_ETSI_ES183066_211.ddf @@ -37,7 +37,7 @@ // // File: a4Interface_ETSI_ES183066_211.ddf // Description: DDF for a4 Interface according to ETSI ES 183 066 V2.1.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/e2Interface_ETSI_ES283035_121.ddf b/src/e2Interface_ETSI_ES283035_121.ddf index d047526..ec52295 100644 --- a/src/e2Interface_ETSI_ES283035_121.ddf +++ b/src/e2Interface_ETSI_ES283035_121.ddf @@ -37,7 +37,7 @@ // // File: e2Interface_ETSI_ES283035_121.ddf // Description: DDF for e2 Interface according to ETSI ES 283 035 V1.2.1 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/e4Interface_ETSI_ES283034_220.ddf b/src/e4Interface_ETSI_ES283034_220.ddf index c085f83..e3e138f 100644 --- a/src/e4Interface_ETSI_ES283034_220.ddf +++ b/src/e4Interface_ETSI_ES283034_220.ddf @@ -37,7 +37,7 @@ // // File: e4Interface_ETSI_ES283034_220.ddf // Description: DDF for e4 Interface according to ETSI ES 283 034 V2.2.0 -// Rev: R40A +// Rev: R55A // Prodnr: CNL 113 462 /////////////////////////////////////////////// -- GitLab