DiameterRfRo_Templates.ttcn 274 KB
Newer Older
             *                  MMTel  Charging: holds the time in UTC format and it is a time stamp that defines the moment when the conference participant has an action
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.38  Change-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Change_Time_AVP mw_change_Time_AVP(
                                                                  template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_change_Time_AVP_Code, 4, c_vendId3gpp),
                time        := p_time
            } // End of template mw_change_Time_AVP
            
            /**
             * @desc The Change-Condition send template 
             * @param p_data_AVP     Indicates the change in charging condition
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.37  Change-Condition AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Change_Condition_AVP mw_change_Condition_AVP(
                                                                            template (present) Change_Condition p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_change_Condition_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_change_Condition_AVP
            
            /**
             * @desc Alternate-Charged-Party-Address receive template 
             * @param p_data_AVP     Holds the address of the alternate charged party determined by an AS at IMS session initiation
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.12  Alternate-Charged-Party-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Alternate_Charged_Party_Address_AVP mw_alternate_Charged_Party_Address_AVP(
                                                                                                          template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_alternate_Charged_Party_Address_AVP_Code, ?, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_alternate_Charged_Party_Address_AVP
            
            /**
             * @desc IMS-Communication-Service-Identifier receive template 
             * @member aVP_Header   Header AVP
             * @member data_AVP     Holds the IMS Communication Service Identifier (ICSI) as contained in the P-Asserted-Service header of a SIP request to identify an IMS Communication Service as defined in TS 24.229 [202]
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.76  IMS-Communication-Service-Identifier AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) IMS_Communication_Service_Identifier_AVP mw_ims_Communication_Service_Identifier_AVP(
                                                                                                                    template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ims_Communication_Service_Identifier_AVP_Code, ?, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_ims_Communication_Service_Identifier_AVP
            
            /**
             * @desc The Access-Network-Information receive template 
             * @member aVP_Header   Header AVP
             * @member data_AVP     Indicates the SIP P-header "P-Access-Network-Information"
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.1   Access-Network-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Access_Network_Information_AVP mw_access_Network_Information_AVP(
                                                                                                template (present) octetstring p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_envelope_Reporting_AVP_Code, ?, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_access_Network_Information_AVP
            
            /**
             * @desc The Envelope-Reporting receive template 
             * @param p_aVP_Header   Header AVP
             * @param p_data_AVP     Indicate whether the client shall report the start and end of each time envelope, in those cases in which quota is consumed in envelopes
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.61  Envelope-Reporting AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Envelope_Reporting_AVP mw_envelope_Reporting_AVP(
                                                                                template (present) Envelope_Reporting p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_envelope_Reporting_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_envelope_Reporting_AVP
            
            /**
             * @desc The AF-Correlation-Information send template 
             * @param p_af_Charging_Identifier   TODO
             * @param p_flows                    Flow identifiers generated by the AF and received by P-GW over Rx/Gx as defined in TS 29.214 [214] and TS 29.212 [215]
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.11  AF-Correlation-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template AF_Correlation_Information_AVP mw_af_Correlation_Information_AVP(
                                                                                      template AF_Charging_Identifier_AVP  p_af_Charging_Identifier := *,
                                                                                      template Flows_AVP                   p_flows := *
            ) := {
                aVP_Header              := mw_aVP_HeaderVid_Mbit1(c_af_Correlation_Information_AVP_Code, ?, c_vendId3gpp),
                af_Charging_Identifier  := p_af_Charging_Identifier,
                flows                   := { p_flows }
            } // End of template mw_af_Correlation_Information_AVP
            
            /**
             * @desc The Remaining-Balance receive template
             * @param p_unit_Value       TODO
             * @param p_currency_Code    TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.172 Remaining-Balance AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Remaining_Balance_AVP mw_remaining_Balance_AVP(
                                                                              template (present) Unit_Value_AVP     p_unit_Value := ?, 
                                                                              template (present) Currency_Code_AVP  p_currency_Code := ?
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_remaining_Balance_AVP_Code, ?, c_vendId3gpp),
                unit_Value      := p_unit_Value,
                currency_Code   := p_currency_Code
            } // End of template mw_remaining_Balance_AVP 
            
            /**
             * @desc The Carrier-Select-Routing-Information receive template 
             * @param p_data_AVP    Holds information on carrier selection performed by S-CSCF/AS
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.34  Carrier-Select-Routing-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Carrier_Select_Routing_Information_AVP mw_carrier_Select_Routing_Information_AVP(
                                                                                                                template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_remaining_Balance_AVP_Code, ?, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_carrier_Select_Routing_Information_AVP 
            
            /**
             * @desc The Number-Portability-Routing-Information receive template 
             * @param p_data_AVP    Holds information on carrier selection performed by S-CSCF/AS
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.120 Number-Portability-Routing-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Number_Portability_Routing_Information_AVP mw_number_Portability_Routing_Information_AVP(
                                                                                                                        template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_number_Portability_Routing_Information_AVP_Code, ?, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_number_Portability_Routing_Information_AVP 
            
            /**
             * @desc The Low-Balance-Indication receive template 
             * @param p_data_AVP Indicates if the subscriber balance went below a designated threshold by its account
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.97  Low-Balance-Indication AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Low_Balance_Indication_AVP mw_low_Balance_Indication_AVP(
                                                                                        template (present) Low_Balance_Indication p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_low_Balance_Indication_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_low_Balance_Indication_AVP 
            
            /**
             * @desc The Node-Id receive template 
             * @param p_data_AVP     Operator configurable identifier string for the node
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.114 Node-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Node_Id_AVP mw_node_Id_AVP(
                                                          template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_node_Id_AVP_Code, ?, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_node_Id_AVP
            
            /**
             * @desc The Start-Time receive template
             * @param p_aVP_Header   Header AVP
             * @param p_time        The time in UTC format which represents the start of a user session at the S-GW/P-GW
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.215 Start-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Start_Time_AVP mw_start_Time_AVP(
                                                                template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_start_Time_AVP_Code, 4, c_vendId3gpp),
                time := p_time
            } // End of template mw_start_Time_AVP
            
            /**
             * @desc The Stop-Time receive template
             * @param p_aVP_Header   Header AVP
             * @param p_time        The the time in UTC format which represents the termination of a user session at the S-GW/P-GW
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.216 Stop-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Stop_Time_AVP mw_stop_Time_AVP(
                                                              template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_stop_Time_AVP_Code, 4, c_vendId3gpp),
                time := p_time
            } // End of template mw_stop_Time_AVP
            
            /**
             * @desc The Time-First-Usage receive template
             * @param p_aVP_Header   Header AVP
             * @param p_time        The the time in UTC format for the first IP packet to be transmitted and mapped to the current service data container
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.226 Time-First-Usage AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Time_First_Usage_AVP mw_time_First_Usage_AVP(
                                                                            template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_time_First_Usage_AVP_Code, 4, c_vendId3gpp),
                time := p_time
            } // End of template mw_time_First_Usage_AVP
            
            /**
             * @desc The Time-Last-Usage receive template
             * @param p_aVP_Header   Header AVP
             * @param p_time        The the time in UTC format for the last  IP packet to be transmitted and mapped to the current service data container
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.227 Time-Last-Usage AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Time_Last_Usage_AVP mw_time_Last_Usage_AVP(
                                                                          template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_time_Last_Usage_AVP_Code, 4, c_vendId3gpp),
                time := p_time
            } // End of template mw_time_Last_Usage_AVP
            
            /**
             * @desc The Time-Last-Usage receive template
             * @param p_aVP_Header   Header AVP
             * @param p_time        Holds the effective used time within the service data container reporting interval.
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.232     Time-Usage  AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Time_Usage_AVP mw_time_Usage_AVP(
                                                                template (present) UInt32 p_time := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_time_Usage_Usage_AVP_Code, 4, c_vendId3gpp),
                time := p_time
            } // End of template mw_time_Usage_AVP
            
            /**
             * @desc The Traffic-Data-Volumes receive template
             * @param p_accounting_Input_Octets      TODO
             * @param p_accounting_Output_Octets     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.233 Traffic-Data-Volumes AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Traffic_Data_Volumes_AVP mw_traffic_Data_Volumes_AVP(
                                                                                    template (present) Accounting_Input_Octets_AVP  p_accounting_Input_Octets := ?,
                                                                                    template (present) Accounting_Output_Octets_AVP p_accounting_Output_Octets := ?
            ) := {
                aVP_Header                  := mw_aVP_HeaderVid_Mbit1(c_traffic_Data_Volumes_AVP_Code, ?, c_vendId3gpp),
                qos_Information             := *,
                accounting_Input_Octets     := p_accounting_Input_Octets,
                accounting_Output_Octets    := p_accounting_Output_Octets,
                change_condition            := *,
                change_Time                 := *,
                threeGPP_User_Location_Info := *,
                user_CSG_Information        := *
            } // End of template mw_traffic_Data_Volumes_AVP
            
            /**
             * @desc The Serving-Node-Type receive template 
             * @param p_node_Type     The type of Serving Node
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.198 Serving-Node-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Serving_Node_Type_AVP mw_serving_Node_Type_AVP(
                                                                              in template (present) Serving_Node_Type p_node_Type := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_serving_Node_Type_AVP_Code, 4, c_vendId3gpp),
                node_Type := p_node_Type
            } // End of template mw_serving_Node_Type_AVP
            
            /**
             * @desc The PDN-Connection-Charging-ID receive template 
             * @param p_charging_id   The charging identifier to identify different records belonging to same PDN connection
             */
            template (present) PDN_Connection_Charging_ID_AVP mw_pdn_Connection_Charging_ID_AVP(
                                                                                                template (present) UInt32 p_charging_id := ?
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit1(c_pdn_Connection_Charging_ID_AVP_Code, 4, c_vendId3gpp),
                charging_id   := p_charging_id
            } // End of template mw_pdn_Connection_Charging_ID_AVP
            
            /**
             * @desc The Accumulated-Cost send template 
             * @param p_value_Digits TODO
             * @param p_exponent     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.3 Accumulated-Cost AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Accumulated_Cost_AVP mw_accumulated_Cost_AVP(
                                                                            template (present) Value_Digits_AVP p_value_Digits := ?,
                                                                            template Exponent_AVP               p_exponent := *
            
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_accumulated_Cost_AVP_Code, ?, c_vendId3gpp),
                value_Digits    := p_value_Digits,
                exponent        := p_exponent
            } // End of template mw_accumulated_Cost_AVP
            
            /**
             * @desc The AoC-Information receive template 
             * @param p_aoc_Cost_Information_AVP     Holds accumulated and incremental cost information for the AoC service
             * @param p_tariff_Information_AVP       Holds a tariff definition either from the local provider or from 3rd party provider
             * @param p_aoc_Subscription_Information Holds the subscription and formatting parameters received from HSS
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.15 AoC-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template AoC_Information_AVP mw_aoc_Information_AVP(
                                                                template AoC_Cost_Information_AVP           p_aoc_Cost_Information_AVP := *,
                                                                template Tariff_Information_AVP             p_tariff_Information_AVP := *,
                                                                template AoC_Subscription_Information_AVP   p_aoc_Subscription_Information := *
            ) := {
                aVP_Header                      := mw_aVP_HeaderVid_Mbit1(c_aoc_Information_AVP_Code, ?, c_vendId3gpp),
                aoc_Cost_Information_AVP        := p_aoc_Cost_Information_AVP,
                tariff_Information_AVP          := p_tariff_Information_AVP,
                aoc_Subscription_Information    := p_aoc_Subscription_Information
            } // End of template mw_aoc_Information_AVP
            
            /**
             * @desc The AoC-Cost-Information receive template 
             * @param p_accumulated_Cost Holds the accumulated cost for the ongoing session
             * @param p_incremental_Cost Holds the incremental cost since last AoC interaction for the ongoing session
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.13 AoC-Cost-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template AoC_Cost_Information_AVP mw_aoc_Cost_Information_AVP(
                                                                          template Accumulated_Cost_AVP  p_accumulated_Cost := *,
                                                                          template Incremental_Cost_AVP  p_incremental_Cost := *
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_aoc_Cost_Information_AVP_Code, ?, c_vendId3gpp),
                accumulated_Cost    := p_accumulated_Cost,
                incremental_Cost    := { 
                    p_incremental_Cost 
                },
                currency_Code       := * // Not used in 3GPP
            } // End of template mw_aoc_Cost_Information_AVP
            
            /**
             * @desc The AoC-Request-Type receive template
             * @param p_aoc_Request_Type Tags if the client is looking for AoCI in conjunction to the Request-Type and Request-Action AVPs
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.16  AoC-Request-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) AoC_Request_Type_AVP mw_aoc_Request_Type_AVP(
                                                                            template (present) AoC_Request_Type p_aoc_Request_Type := ?
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_aoc_Request_Type_AVP_Code, 4, c_vendId3gpp),
                aoc_Request_Type    := p_aoc_Request_Type
            } // End of template mw_aoc_Request_Type_AVP
            
            /**
             * @desc The Current-Tariff receive template
             * @param p_scale_Factor     Holds simple multiplication factor in the same format as Unit-Value
             * @param p_rate_Element     Holds simple rate element of one dimension
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.47 Current-Tariff AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template Current_Tariff_AVP mw_current_Tariff_AVP(
                                                              template Scale_Factor_AVP p_scale_Factor := *,
                                                              template Rate_Element_AVP p_rate_Element := *
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_current_Tariff_AVP_Code, ?, c_vendId3gpp),
                currency_Code   := *, // Not used in 3GPP
                scale_Factor    := p_scale_Factor,
                rate_Element    := { 
                    p_rate_Element
                }
            } // End of template mw_current_Tariff_AVP
            
            /**
             * @desc The Next-Tariff receive template
             * @param p_scale_Factor     Holds simple multiplication factor in the same format as Unit-Value
             * @param p_rate_Element     Holds simple rate element of one dimension
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.112 Next-Tariff AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template Next_Tariff_AVP mw_next_Tariff_AVP(
                                                        template Scale_Factor_AVP p_scale_Factor := *,
                                                        template Rate_Element_AVP p_rate_Element := *
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_next_Tariff_AVP_Code, ?, c_vendId3gpp),
                currency_Code   := *, // Not used in 3GPP
                scale_Factor    := p_scale_Factor,
                rate_Element    := { 
                    p_rate_Element
                }
            } // End of template mw_next_Tariff_AVP
            
            /**
             * @desc The Rate-Element AVP receive template 
             * @param p_cc_Unit_Type_AVP     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.161 Rate-Element AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Rate_Element_AVP mw_rate_Element_AVP(
                                                                    template (present) CC_Unit_Type_AVP p_cc_Unit_Type_AVP := ?
            ) := {
                aVP_Header              := mw_aVP_HeaderVid_Mbit1(c_rate_Element_AVP_Code, ?, c_vendId3gpp),
                cc_Unit_Type_AVP        := p_cc_Unit_Type_AVP,
                charge_Reason_Code      := *,
                unit_Value              := *,
                unit_Cost               := *,
                unit_Quota_Threshold    := *
            } // End of template mw_rate_Element_AVP
            
            /**
             * @desc The Scale-Factor AVP receive template 
             * @param p_value_Digits TODO
             * @param p_exponent     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.178 Scale-Factor AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Scale_Factor_AVP mw_scale_Factor_AVP(
                                                                    template (present) Value_Digits_AVP   p_value_Digits := ?,
                                                                    template Exponent_AVP                 p_exponent := *
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_scale_Factor_AVP_Code, ?, c_vendId3gpp),
                value_Digits    := p_value_Digits,
                exponent        := p_exponent
            } // End of template mw_scale_Factor_AVP
            
            /**
             * @desc The Tariff-Information send template 
             * @param p_current_Tariff       Holds tariff information
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.223 Tariff-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Tariff_Information_AVP mw_tariff_Information_AVP(
                                                                                template (present) Current_Tariff_AVP p_current_Tariff := ?
            ) := { 
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_tariff_Information_AVP_Code, ?, c_vendId3gpp),
                current_Tariff      := p_current_Tariff,
                tariff_Time_Change  := *,
                next_Tariff         := *
            } // End of template mw_tariff_Information_AVP 
            
            /**
             * @desc The Unit-Cost receive template 
             * @param p_value_Digits TODO
             * @param p_exponent     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.239 Unit-Cost AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Unit_Cost_AVP mw_unit_Cost_AVP(
                                                              template (present) Value_Digits_AVP   p_value_Digits := ?,
                                                              template Exponent_AVP                 p_exponent := *
            ) := { 
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_unit_Cost_AVP_Code, ?, c_vendId3gpp),
                value_Digits    := p_value_Digits,
                exponent        := p_exponent
            } // End of template mw_unit_Cost_AVP
            
            /**
             * @desc The Local-Sequence-Number receive template
             * @param p_seq_number   Holds the service data container sequence number
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.93  Local-Sequence-Number AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present)  Local_Sequence_Number_AVP mw_local_Sequence_Number_AVP(
                                                                                       template (present) UInt32 p_seq_number := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_local_Sequence_Number_AVP_Code, 4, c_vendId3gpp),
                seq_number  := p_seq_number
            } // End of template mw_local_Sequence_Number_AVP
            
            /**
             * @desc The Incremental-Cost receive template
             * @param p_value_Digits TODO
             * @param p_exponent     TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.70 Incremental-Cost AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Incremental_Cost_AVP mw_incremental_Cost_AVP(
                                                                            template (present) Value_Digits_AVP p_value_Digits := ?,
                                                                            template Exponent_AVP               p_exponent := *
            ) := { 
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_incremental_Cost_AVP_Code, ?, c_vendId3gpp),
                value_Digits    := p_value_Digits,
                exponent        := p_exponent
            } // End of template mw_incremental_Cost_AVP
            
            /**
             * @desc The SGW-Change AVP receive template
             * @param p_data_AVP     Accounting Request type
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.200 SGW-Change AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SGW_Change_AVP mw_sgw_Change_AVP(
                                                                template (present) SGW_Change p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sgw_Change_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_sgw_Change_AVP
            
            /**
             * @desc The Charging-Characteristics-Selection-Mode receive template
             * @param p_data_AVP     Indicates how the applied Charging-Characteristics was selected
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.39A     Charging-Characteristics-Selection-Mode AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Charging_Characteristics_Selection_Mode_AVP mw_charging_Characteristics_Selection_Mode_AVP(
                                                                                                                          template (present) Charging_Characteristics_Selection_Mode p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_charging_Characteristics_Selection_Mode_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_charging_Characteristics_Selection_Mode_AVP
            
            /**
             * @desc The SGW-Address receive template
             * @param p_address_AVP  Holds the IP-address of the S-GW Node
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.199A SGW-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SGW_Address_AVP mw_sgw_Address_AVP(
                                                                  template (present) Address p_address_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sgw_Address_AVP_Code, ?, c_vendId3gpp),
                address_AVP := p_address_AVP
            } // End of template mw_sgw_Address_AVP
            
            /**
             * @desc The Dynamic-Address-Flag receive template 
             * @param p_pdpAllocation    Indicates whether the PDP context/PDN address is statically or dynamically allocated
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.57 Dynamic-Address-Flag AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Dynamic_Address_Flag_AVP mw_dynamic_Address_Flag_AVP(
                                                                                    template (present) Dynamic_Address_Flag p_pdpAllocation := ?
            ) := { 
                aVP_Header    := m_aVP_HeaderVid_Mbit1(c_dynamic_Address_Flag_AVP_Code, 4, c_vendId3gpp),
                pdpAllocation := p_pdpAllocation
            } // End of template mw_dynamic_Address_Flag_AVP
            
            /**
             * @desc The Dynamic-Address-Flag-Extension receive template 
             * @param pdpAddressAllocation    indicates that the IPv4 PDN address has been dynamically allocated for that particular IP CAN bearer (PDN connection) of PDN type IPv4v6, and the dynamic IPv6 address is indicated in Dynamic Address Flag
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.57A Dynamic-Address-Flag-Extension AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Dynamic_Address_Flag_Extension_AVP mw_dynamic_Address_Flag_Extension_AVP(
                                                                                                        template (present) Dynamic_Address_Flag_Extension p_pdpAddressAllocation := ?
            ) := { 
                aVP_Header              := m_aVP_HeaderVid_Mbit1(c_dynamic_Address_Flag_Extension_AVP_Code, 4, c_vendId3gpp),
                pdpAddressAllocation    := p_pdpAddressAllocation
            } // End of template mw_dynamic_Address_Flag_Extension_AVP
            
             * @desc The SIP-Request-Timestamp-Fraction receive template 
             * @param p_data_AVP     Holds the miliseconds fraction in relation to SIP-Request-Timestamp
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.203 SIP-Request-Timestamp-Fraction AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) SIP_Request_Timestamp_Fraction_AVP mw_sip_Request_Timestamp_Fraction_AVP(
                                                                                                        template (present) UInt32 p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sip_Request_Timestamp_Fraction_AVP_Code, 4, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_sip_Request_Timestamp_Fraction_AVP
            
            /**
             * @desc The SIP-Response-Timestamp-Fraction receive template 
             * @param p_data_AVP     Holds the miliseconds fraction in relation to SIP-Response-Timestamp
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.205 SIP-Response-Timestamp-Fraction AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) SIP_Response_Timestamp_Fraction_AVP mw_sip_Response_Timestamp_Fraction_AVP(
                                                                                                          template (present) UInt32 p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sip_Response_Timestamp_Fraction_AVP_Code, 4, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_sip_Response_Timestamp_Fraction_AVP
            
            /**
             * @desc The Online-Charging-Flag receive template 
             * @param p_data_AVP     Indicates the Online Charging Request was sent based on the provided ECF address from the SIP P-header "P-Charging-Function-Addresses"
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.122 Online-Charging-Flag AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Online_Charging_Flag_AVP mw_online_Charging_Flag_AVP(
                                                                                    template (present) Online_Charging_Flag p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_online_Charging_Flag_AVP_Code, 4, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_online_Charging_Flag_AVP
            
            /**
             * @desc The IMSI-Unauthenticated-Flag receive template 
             * @param p_data_AVP        Enumerated value
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.78  IMSI-Unauthenticated-Flag AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) IMSI_Unauthenticated_Flag_AVP mw_imsi_Unauthenticated_Flag_AVP(
                                                                                              template (present) IMSI_Unauthenticated_Flag p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_imsi_Unauthenticated_Flag_AVP_Code, 4, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_imsi_Unauthenticated_Flag_AVP
            
            /**
             * @desc The Account-Expiration receive template 
             * @param p_data_AVP     Indicates the subscriber account expiration date and time of day
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.2   Account-Expiration AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Account_Expiration_AVP mw_account_Expiration_AVP(
                                                                                template (present) Time p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_aoc_Format_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_account_Expiration_AVP
            
            /**
             * @desc The AoC-Format receive template 
             * @param p_data_AVP     Holds the format on how the AoC information shall be sent to the UE
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.14  AoC-Format AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) AoC_Format_AVP mw_aoc_Format_AVP(
                                                                template (present) AoC_Format p_data_AVP := ?
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_aoc_Format_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_aoc_Format_AVP
            
            /**
             * @desc The AoC-Service receive template 
             * @param p_aVP_Header                   Header AVP
             * @param p_aoc_Service_Obligatory_Type  AoC Service type 
             * @param p_aoc_Service_Type             AoC Service obligatory type
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.17  AoC-Service AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template AoC_Service_AVP mw_aoc_Service_AVP(
                                                        template AoC_Service_Obligatory_Type_AVP   p_aoc_Service_Obligatory_Type := *,
                                                        template AoC_Service_Type_AVP              p_aoc_Service_Type := *
             ) := { 
                aVP_Header                  := mw_aVP_HeaderVid_Mbit1(c_aoc_Service_Obligatory_Type_AVP_Code, ?, c_vendId3gpp),
                aoc_Service_Obligatory_Type := p_aoc_Service_Obligatory_Type,
                aoc_Service_Type            := p_aoc_Service_Type
            } // End of template mw_aoc_Service_AVP
            
            /**
             * @desc The AoC-Service-Obligatory-Type receive template 
             * @param p_aVP_Header   Header AVP
             * @param p_data_AVP     Holds the information if the AoC information is binding or not
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.18  AoC-Service-Obligatory-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) AoC_Service_Obligatory_Type_AVP mw_aoc_Service_Obligatory_Type_AVP(
                                                                                                  template (present) AoC_Service_Obligatory_Type p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_aoc_Service_Obligatory_Type_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_aoc_Service_Obligatory_Type_AVP
            
            /**
             * @desc The AoC-Service-Type AVP receive template 
             * @param p_aVP_Header   Header AVP
             * @param p_data_AVP     Defines the type of AoC information to be provided to the subscriber
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.19  AoC-Service-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) AoC_Service_Type_AVP mw_aoc_Service_Type_AVP(
                                                                            template (present) AoC_Service_Type p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_aoc_Service_Type_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_aoc_Service_Type_AVP
            
            /**
             * @desc The AoC-Subscription-Information receive template 
             * @param p_aoc_Service              TODO
             * @param p_aoc_Format               TODO
             * @param p_preferred_AoC_Currency   TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.20  AoC-Subscription-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template AoC_Subscription_Information_AVP mw_aoc_Subscription_Information_AVP(
                                                                                          template AoC_Service_AVP             p_aoc_Service := *,
                                                                                          template AoC_Format_AVP              p_aoc_Format := *,
                                                                                          template Preferred_AoC_Currency_AVP  p_preferred_AoC_Currency := *
            ) := {
                aVP_Header              := mw_aVP_HeaderVid_Mbit1(c_aoc_Subscription_Information_AVP_Code, ?, c_vendId3gpp),
                aoc_Service             := { p_aoc_Service },
                aoc_Format              := p_aoc_Format,
                preferred_AoC_Currency  := p_preferred_AoC_Currency
            } // End of template mw_aoc_Subscription_Information_AVP 
            
            /**
             * @desc The Preferred-AoC-Currency receive template 
             * @param p_data_AVP     Indicates the preferred currency code that the AoC function would like to get the AoC information
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.153 Preferred-AoC-Currency AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Preferred_AoC_Currency_AVP mw_preferred_AoC_Currency_AVP(
                                                                                        template (present) UInt32 p_data_AVP := ?
            ) := { 
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_preferred_AoC_Currency_AVP_Code, 4, c_vendId3gpp),
                data_AVP    := p_data_AVP
            } // End of template mw_preferred_AoC_Currency_AVP
            /**
             * @desc The Initial-IMS-Charging-Identifier receive template 
             * @param p_data_AVP     Indicates the IMS session is an IMS emergency session or IMS registration
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.76A IMS-Emergency-Indicator AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) IMS_Emergency_Indicator_AVP mw_ims_Emergency_Indicator_AVP(
                                                                                          template (present) IMS_Emergency_Indicator p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_initial_IMS_Charging_Identifier_AVP_Code, 2, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_ims_Emergency_Indicator_AVP
            
            /**
             * @desc The Initial-IMS-Charging-Identifier receive template 
             * @param p_data_AVP     Holds the Initial IMS Charging Identifier (ICID) as generated by a IMS node for the initial SIP session created for IMS service continuity
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.79A Initial-IMS-Charging-Identifier AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Initial_IMS_Charging_Identifier_AVP mw_initial_IMS_Charging_Identifier_AVP(
                                                                                                          template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_initial_IMS_Charging_Identifier_AVP_Code, ?, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_initial_IMS_Charging_Identifier_AVP
            
            /**
             * @desc The Outgoing-Session-Id receive template 
             * @param p_data_AVP     Contains the SIP Call ID of the outgoing leg, as defined in RFC 3261
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.128A    Outgoing-Session-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Outgoing_Session_Id_AVP mw_outgoing_Session_Id_AVP(
                                                                                  template (present) UTF8String p_data_AVP := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_outgoing_Session_Id_AVP_Code, ?, c_vendId3gpp),
                data_AVP := p_data_AVP
            } // End of template mw_outgoing_Session_Id_AVP
            
            /**
             * @desc The Low-Priority-Indicator receive template 
             * @param p_priority     Indicates if the PDN connection has a low priority, i.e. for Machine Type Communications
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.97A Low-Priority-Indicator AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Low_Priority_Indicator_AVP mw_low_Priority_Indicator_AVP(
                                                                                        template (present) Low_Priority_Indicator p_priority := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_low_Priority_Indicator_AVP_Code, 4, c_vendId3gpp),
                priority    := p_priority
            } // End of template mw_low_Priority_Indicator_AVP
            
            /**
             * @desc The PDP-Address-Prefix-Length receive template 
             * @param p_prefix    the prefix length of an IPv6 typed PDP-Address AVP
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.137a PDP-Address-Prefix-Length AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) PDP_Address_Prefix_Length_AVP mw_pdp_Address_Prefix_Length_AVP(
                                                                                              template (present) UInt32 p_prefix := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_pdp_Address_Prefix_Length_AVP_Code, 4, c_vendId3gpp),
                prefix      := p_prefix
            } // End of template mw_pdp_Address_Prefix_Length_AVP
            
        } // End of group Rf_avps_templates_receive 
        
    } // End of group Rf_avps_templates 
    
    group RFC3588_AVPS { 
        
        group RFC3588_message_templates_send { 
            
            /**
             * @desc The Event_Timestamp Attribute send template
             * @param p_time     The time that the reported event occurred, in seconds (since January 1, 1900 00:00 UTC)
             * 
             * @see RFC3588 Clause 8.21.  Event-Timestamp AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (value) Event_Timestamp_AVP m_event_Timestamp(
                                                                   in template (value) Time p_time
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit1(c_event_Timestamp_AVP_Code, 4, omit),
                aVP_Data    := p_time
            } // End of template m_event_Timestamp
            
            /**
             * @desc The Acct_Application_Id send template
             * @param p_avpData     UInt32
             */
            template (value) Acct_Application_Id_AVP m_acct_Application_Id(
                                                                      template (value) UInt32 p_aVP_Data
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit1(c_acct_Application_Id_AVP_Code, 4, omit),
                aVP_Data    := p_aVP_Data
            } // End of template m_acct_Application_Id
            
        } // End of group RFC3588_message_templates_send 
        
        group RFC3588_message_templates_receive { 
            
            /**
             * @desc The Event_Timestamp Attribute receive template
             * @param p_time     The time that the reported event occurred, in seconds (since January 1, 1900 00:00 UTC)
             * 
             * @see RFC3588 Clause 8.21.  Event-Timestamp AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Event_Timestamp_AVP mw_event_Timestamp(
                                                                      template (present) Time p_time := ?
            ) := {
                aVP_Header  := mw_aVP_Header_Vbit0Mbit1(c_event_Timestamp_AVP_Code),
                aVP_Data    := p_time
            } // End of template mw_event_Timestamp 
            
            /**
             * @desc The Acct_Application_Id receive template
             * @param p_avpData     UInt32
             */
            template (present) Acct_Application_Id_AVP mw_acct_Application_Id(
                                                                      template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_Header_Vbit0Mbit1(c_acct_Application_Id_AVP_Code),
                aVP_Data    := p_aVP_Data
            } // End of template mw_acct_Application_Id
            
        } // End of group RFC3588_message_templates_receive 
        
    } // End of group RFC3588_AVPS 
    
    group RFC5580_AVPS { // FIXME To be moved in TTCN-3 module LibDiameter_Types_GiSGi_AVPs 
        
        group RFC5580_message_templates_send { 
            
            /**
             * @desc The Operator-Name Attribute send template
             * @param p_namespace_Id      Namespace ID
             * @param p_operator_Name     Contains the operator namespace identifier AND an Access Network Operator Name
             * 
             * @see RFC5580 Clause 4.1. Operator-Name Attribute
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (value) Operator_Name_AVP m_operator_Name_AVP(
                                                                   in template (value) UInt8        p_namespace_Id,
                                                                   in template (value) UTF8String   p_operator_Name
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit0(c_operator_Name_AVP_Code, 1 + f_getUTF8StringLength(valueof(p_operator_Name)), omit),
                namespace_Id := p_namespace_Id,
                operator_Name := p_operator_Name
            } // End of template m_operator_Name_AVP
            
            /**
             * @desc The Operator-Name Attribute send template
             * @param p_index            Allows this attribute to provide information relating to the information included in the Location- Data Attribute to which it refers (via the Index)
             * @param p_code             Indicates the content of the location profile carried in the Location-Data Attribute
             * @param p_entity           Refers to as an unsigned 8-bit integer value
             * @param p_sighting_Time    Indicates when the location information was accurate
             * @param p_time_to_Live     Gives a hint regarding for how long location information should be considered current
             * @param p_method           Describes the way that the location information was determined
             * 
             * @see RFC5580 Clause 4.2. Location-Information Attribute
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (value) Location_Information_AVP m_location_Information_AVP(
                                                                                 in template (value) UInt16     p_index,
                                                                                 in template (value) UInt16     p_code,
                                                                                 in template (value) UInt16     p_entity,
                                                                                 in template (value) UInt64     p_sighting_Time,
                                                                                 in template (value) UInt64     p_time_to_Live,
                                                                                 in template (value) UTF8String p_method
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit0(c_location_Information_AVP_Code, 20 + f_getUTF8StringLength(valueof(p_method)), omit),
                index           := p_index,
                code            := p_code,
                entity          := p_entity,
                sighting_Time   := p_sighting_Time,
                time_to_Live    := p_time_to_Live,
                method          := p_method
            } // End of template m_location_Information_AVP
            
            /**
             * @desc The Location-Data Attribute send template
             * @param p_index        TODO
             * @param p_data_AVP     TODO
             * 
             * @see RFC5580 Clause 4.3. Location-Data Attribute
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (value) Location_Data_AVP m_location_Data_AVP(
                                                                   in template (value) UInt16     p_index,
                                                                   in template (value) UTF8String p_data_AVP
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit0(c_location_Data_AVP_Code, f_getUTF8StringLength(valueof(p_data_AVP)), omit),
                index := p_index,
                data_AVP := p_data_AVP
            } // End of template m_location_Data_AVP
            
        } // End of group RFC5580_message_templates_send
        
        group RFC5580_message_templates_receive { 
            
            /**
             * @desc The Operator-Name Attribute send template
             * @param p_namespace_Id      Namespace ID
             * @param p_operator_Name     Contains the operator namespace identifier AND an Access Network Operator Name
             * 
             * @see RFC5580 Clause 4.1. Operator-Name Attribute
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Operator_Name_AVP mw_operator_Name_AVP(
                                                                      template (present) UInt8        p_namespace_Id := ?,
                                                                      template (present) UTF8String   p_operator_Name := ?
            ) := {
                aVP_Header  := mw_aVP_Header_Vbit0Mbit0(c_operator_Name_AVP_Code),
                namespace_Id := p_namespace_Id,
                operator_Name := p_operator_Name
            } // End of template mw_operator_Name_AVP
            
            /**
             * @desc The Operator-Name Attribute send template
             * @param p_index            Allows this attribute to provide information relating to the information included in the Location- Data Attribute to which it refers (via the Index)
             * @param p_code             Indicates the content of the location profile carried in the Location-Data Attribute
             * @param p_entity           Refers to as an unsigned 8-bit integer value
             * @param p_sighting_Time    Indicates when the location information was accurate
             * @param p_time_to_Live     Gives a hint regarding for how long location information should be considered current
             * @param p_method           Describes the way that the location information was determined
             * 
             * @see RFC5580 Clause 4.2. Location-Information Attribute
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Location_Information_AVP mw_location_Information_AVP(
                                                                                    template (present) UInt16     p_index := ?,
                                                                                    template (present) UInt16     p_code := ?,
                                                                                    template (present) UInt16     p_entity := ?,
                                                                                    template (present) UInt64     p_sighting_Time := ?,
                                                                                    template (present) UInt64     p_time_to_Live := ?,
                                                                                    template (present) UTF8String p_method := ?
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_location_Information_AVP_Code, ?, c_vendId3gpp),
                index           := p_index,
                code            := p_code,
                entity          := p_entity,
                sighting_Time   := p_sighting_Time,
                time_to_Live    := p_time_to_Live,
                method          := p_method
            } // End of template mw_location_Information_AVP
            
            /**
             * @desc The Location-Data Attribute send template
             * @param p_index        TODO