fixup own

This commit is contained in:
Harald Welte 2019-08-10 22:08:54 +02:00
parent 8fb759da80
commit c83d2fe056
8 changed files with 893 additions and 22 deletions

View File

@ -0,0 +1,20 @@
@name diameter_3gpp_break_circles
@vendor 10415 3GPP
@inherits diameter_rfc5447
@avp_types
;; 29.272 depends on 29.273 (3GPP-AAA-Server), but 273 depends on Emergency-Info from 273
Emergency-Info 1687 Grouped V
;; 29.273 depends on 29.272 (APN-OI-Replacement), ...
APN-OI-Replacement 1427 UTF8String MV
GMLC-Number 1474 OctetString MV
SGSN-Number 1489 OctetString MV ;; from 29.272
@grouped
Emergency-Info ::= <AVP Header: 1687 10415>
[ MIP6-Agent-Info ]
*[ AVP ]

View File

@ -39,6 +39,7 @@
;; @inherits diameter_3gpp_ts29_214
@inherits diameter_3gpp_ts29_229
@inherits diameter_3gpp_ts29_329
@inherits diameter_3gpp_break_circles
;;@inherits diameter_rfc5447
;;@inherits diameter_rfc5778
@ -47,8 +48,6 @@
@avp_types
3GPP-AAA-Server-Name 318 DiameterIdentity MV ;; from 29.273
SGSN-Number 1489 OctetString MV ;; from 29.272
GMLC-Number 1474 OctetString MV ;; from 29.272
LMSI 2400 OctetString MV
Serving-Node 2401 Grouped MV

View File

@ -31,14 +31,13 @@
@vendor 10415 3GPP
@inherits diameter_gen_base_rfc6733
;; @inherits diameter_rfc4005_nasreq
;; @inherits diameter_rfc4006_cc
@inherits diameter_3gpp_base
;; @inherits diameter_etsi_es283_034
;; @inherits diameter_3gpp_ts29_061_gmb
;; @inherits diameter_3gpp_ts29_214
@inherits diameter_3gpp_ts29_214
@inherits diameter_3gpp_ts29_229
@inherits diameter_3gpp_ts29_329
@inherits diameter_3gpp_ts29_173
@inherits diameter_3gpp_ts32_299
@inherits diameter_3gpp_break_circles
@inherits diameter_rfc5447
@inherits diameter_rfc5778
@ -72,8 +71,8 @@
Context-Identifier 1423 Unsigned32 MV
Subscriber-Status 1424 Enumerated MV
Operator-Determined-Barring 1425 Unsigned32 MV
Access-Restriction-data 1426 Unsigned32 MV
APN-OI-Replacement 1427 UTF8String MV
Access-Restriction-Data 1426 Unsigned32 MV
;;APN-OI-Replacement 1427 UTF8String MV
All-APN-Configurations-Included-Indicator 1428 Enumerated MV
APN-Configuration-Profile 1429 Grouped MV
APN-Configuration 1430 Grouped MV
@ -116,7 +115,7 @@
3GPP2-MEID 1471 OctetString MV
Specific-APN-Info 1472 Grouped MV
LCS-Info 1473 Grouped MV
GMLC-Number 1474 OctetString MV
;;GMLC-Number 1474 OctetString MV
LCS-PrivacyException 1475 Grouped MV
SS-Code 1476 OctetString MV
SS-Status 1477 OctetString MV
@ -131,7 +130,7 @@
Teleservice-List 1486 Grouped MV
TS-Code 1487 OctetString MV
Call-Barring-Info 1488 Grouped MV
SGSN-Number 1489 OctetString MV
;;SGSN-Number 1489 OctetString MV
IDR-Flags 1490 Unsigned32 MV
ICS-Indicator 1491 Enumerated V
IMS-Voice-Over-PS-Sessions-Supported 1492 Enumerated V
@ -161,7 +160,7 @@
MPS-Priority 1616 Unsigned32 V
VPLMN-LIPA-Allowed 1617 Enumerated V
LIPA-Permission 1618 Enumerated V
Subscribed-Periodic-PRAU-TAU-Timer 1619 Unsigned32 V
Subscribed-Periodic-RAU-TAU-Timer 1619 Unsigned32 V
Ext-PDP-Type 1620 OctetString V
SIPTO-Permission 1613 Enumerated V
MDT-Configuration 1622 Grouped V
@ -169,7 +168,7 @@
Area-Scope 1624 Grouped V
List-Of-Measurements 1625 Unsigned32 V
Reporting-Trigger 1626 Unsigned32 V
Report-Inteerval 1627 Enumerated V
Report-Interval 1627 Enumerated V
Report-Amount 1628 Enumerated V
Event-Threshold-RSRP 1629 Unsigned32 V
Event-Threshold-RSRQ 1630 Unsigned32 V
@ -199,7 +198,7 @@
Measurement-Quantity 1660 OctetString V
Event-Threshold-Event-1F 1661 Integer32 V
Event-Threshold-Event-1I 1662 Integer32 V
Restoration-Policy 1663 Unsigned32 V
Restoration-Priority 1663 Unsigned32 V
@messages
@ -223,8 +222,7 @@
[ GMLC-Address ]
[ Equivalent-PLMN-List ]
[ MME-Number-for-MT-SMS ]
[ SMS-Only ]
[ SMS-Reqister-Request ]
[ SMS-Register-Request ]
*[ Supported-Features ]
*[ Active-APN ]
*[ Proxy-Info ]
@ -701,13 +699,20 @@ Terminal-Information ::= <AVP Header: 1401 10415>
[Software-Version]
*[AVP]
;; 7.3.12
;; 7.3.11
Requested-EUTRAN-Authentication-Info ::= <AVP Header: 1408 10415>
[ Number-Of-Requested-Vectors]
[ Immediate-Response-Preferred ]
[ Re-Synchronization-Info ]
*[AVP]
;; 7.3.12
Requested-UTRAN-GERAN-Authentication-Info ::= <AVP Header: 1409 10415>
[ Number-Of-Requested-Vectors]
[ Immediate-Response-Preferred ]
[ Re-Synchronization-Info ]
*[AVP]
;; 7.3.17
Authentication-Info ::= <AVP Header: 1413 10415>
*[ E-UTRAN-Vector ]
@ -958,8 +963,8 @@ MDT-Configuration ::= <AVP Header: 1622 10415>
[ Logging-Duration ]
[ Measurement-Period-LTE ]
[ Measurement-Period-UMTS ]
[ Collection-Period-RMM-LTE ]
[ Collection-Period-RRM-UMTS ]
;; [ Collection-Period-RMM-LTE ]
;; [ Collection-Period-RRM-UMTS ]
[ Positioning-Method ]
[ Measurement-Quantity]
[Event-Threshold-Event-1F]

View File

@ -42,6 +42,10 @@
@inherits diameter_rfc7944
@inherits diameter_rfc7683
@inherits diameter_rfc6942
@inherits diameter_rfc4072
@inherits diameter_rfc6734
@inherits diameter_3gpp_break_circles
;;@inherits diameter_rfc5778
;;@inherits diameter_3gpp_ts29_212
@ -55,7 +59,7 @@
APN-Configuration 1430 Grouped MV
ANID 1504 UTF8String MV
Trace-Info 1505 Grouped V
AN-Truested 1503 Enumerated MV
AN-Trusted 1503 Enumerated MV
MIP-FA-RK 1506 OctetString MV
MIP-FA-RK-SPI 1507 Unsigned32 MV
PPR-Flags 1508 Unsigned32 V
@ -145,7 +149,7 @@
*[ Redirect-Host ]
[ AN-Trusted ]
[ Trace-Info ]
[ Subscription-ID ]
[ Subscription-Id ]
[ OC-Supported-Features ]
[ OC-OLR ]
;;*[ Load ]
@ -269,7 +273,7 @@
*[ APN-Configuration ]
[ 3GPP-Charging-Characteristics ]
[ Trace-Info ]
[ Subscription-ID ]
[ Subscription-Id ]
[ OC-Supported-Features ]
[ OC-OLR ]
[ UE-Usage-Type ]
@ -280,6 +284,10 @@
@enum Transport-Acess-Type
BBF 0
@enum AN-Trusted
TRUSTED 0
UNTRUSTED 1
@grouped
WLAN-Identifier ::= < AVP Header: 1509 10415 >
@ -306,3 +314,8 @@ TWAN-Connectivity-Parameters ::= < AVP Header: 1528 10415 >
[ TWAN-S2a-Failure-Cause ]
[ SM-Back-Off-Timer ]
*[ AVP ]
TWAN-Access-Info::= < AVP Header: 1510 10415 >
[ Access-Authorization-Flags ]
[ WLAN-Identifier ]
*[ AVP ]

149
dia/diameter_rfc4072.dia Normal file
View File

@ -0,0 +1,149 @@
;;
;; %CopyrightBegin%
;;
;; Transcribed from RFC 4072 by Harald Welte <laforge@gnumonks.org>
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; You may obtain a copy of the License at
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;
;; %CopyrightEnd%
;;
;;
;; RFC 4072, Diameter Extensible Authentication Protocol (EAP) Application
;;
@id 1
@inherits diameter_gen_base_rfc6733
@inherits diameter_rfc4005_nasreq
;; ===========================================================================
@avp_types
EAP-Payload 462 OctetString -
EAP-Reissued-Payload 463 OctetString -
EAP-Master-Session-Key 464 OctetString -
EAP-Key-Name 102 OctetString -
Accounting-EAP-Auth-Method 465 Unsigned64 -
;; ===========================================================================
@messages
;; 3.1 Diameter-EAP-Request
DER ::= < Diameter Header: 268, REQ, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
{ Auth-Request-Type }
{ EAP-Payload }
[ Destination-Host ]
[ NAS-Identifier ]
[ NAS-IP-Address ]
[ NAS-IPv6-Address ]
[ NAS-Port ]
[ NAS-Port-Id ]
[ NAS-Port-Type ]
[ Origin-State-Id ]
[ Port-Limit ]
[ User-Name ]
[ EAP-Key-Name ]
[ Service-Type ]
[ State ]
[ Authorization-Lifetime ]
[ Auth-Grace-Period ]
[ Auth-Session-State ]
[ Callback-Number ]
[ Called-Station-Id ]
[ Calling-Station-Id ]
[ Originating-Line-Info ]
[ Connect-Info ]
* [ Framed-Compression ]
[ Framed-Interface-Id ]
[ Framed-IP-Address ]
* [ Framed-IPv6-Prefix ]
[ Framed-IP-Netmask ]
[ Framed-MTU ]
[ Framed-Protocol ]
* [ Tunneling ]
* [ Proxy-Info ]
* [ Route-Record ]
* [ AVP ]
DEA ::= < Diameter Header: 268, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Auth-Request-Type }
{ Result-Code }
{ Origin-Host }
{ Origin-Realm }
[ User-Name ]
[ EAP-Payload ]
[ EAP-Reissued-Payload ]
[ EAP-Master-Session-Key ]
[ EAP-Key-Name ]
[ Multi-Round-Time-Out ]
[ Accounting-EAP-Auth-Method ]
[ Service-Type ]
* [ Class ]
* [ Configuration-Token ]
[ Acct-Interim-Interval ]
[ Error-Message ]
[ Error-Reporting-Host ]
* [ Failed-AVP ]
[ Idle-Timeout ]
[ Authorization-Lifetime ]
[ Auth-Grace-Period ]
[ Auth-Session-State ]
[ Re-Auth-Request-Type ]
[ Session-Timeout ]
[ State ]
* [ Reply-Message ]
[ Origin-State-Id ]
* [ Filter-Id ]
[ Port-Limit ]
[ Callback-Id ]
[ Callback-Number ]
[ Framed-AppleTalk-Link ]
* [ Framed-AppleTalk-Network ]
[ Framed-AppleTalk-Zone ]
* [ Framed-Compression ]
[ Framed-Interface-Id ]
[ Framed-IP-Address ]
* [ Framed-IPv6-Prefix ]
[ Framed-IPv6-Pool ]
* [ Framed-IPv6-Route ]
[ Framed-IP-Netmask ]
* [ Framed-Route ]
[ Framed-Pool ]
[ Framed-IPX-Network ]
[ Framed-MTU ]
[ Framed-Protocol ]
[ Framed-Routing ]
* [ NAS-Filter-Rule ]
* [ QoS-Filter-Rule ]
* [ Tunneling ]
* [ Redirect-Host ]
[ Redirect-Host-Usage ]
[ Redirect-Max-Cache-Time ]
* [ Proxy-Info ]
* [ AVP ]
;; ===========================================================================
@grouped

61
dia/diameter_rfc6734.dia Normal file
View File

@ -0,0 +1,61 @@
;;
;; %CopyrightBegin%
;;
;; Transcribed from RFC 6734 by Harald Welte <laforge@gnumonks.org>
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; You may obtain a copy of the License at
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;
;; %CopyrightEnd%
;;
;;
;; RFC 6734, Diameter Attribute-Value Pairs for Cryptographic Key Transport
;;
@id 1
@inherits diameter_gen_base_rfc6733
;; ===========================================================================
@avp_types
Key 581 Grouped -
Key-Type 582 Enumerated -
Key-Name 586 OctetString -
Keying-Material 583 OctetString -
Key-Lifetime 584 Unsigned32 -
Key-SPI 585 Unsigned32 -
;; ===========================================================================
@messages
;; ===========================================================================
@enum Key-Type
DSRK 0
RRK 1
RMSK 2
;; ===========================================================================
@grouped
Key ::= < AVP Header: 581 >
< Key-Type >
{ Keying-Material }
[ Key-Lifetime ]
[ Key-Name ]
[ Key-SPI ]
* [ AVP ]

42
dia/diameter_rfc6942.dia Normal file
View File

@ -0,0 +1,42 @@
;;
;; %CopyrightBegin%
;;
;; Transcribed from RFC 6942 by Harald Welte <laforge@gnumonks.org>
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; You may obtain a copy of the License at
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;
;; %CopyrightEnd%
;;
;;
;; RFC 6942, Diameter Support for the EAP Re-authentication Protocol (ERP)
;;
@id 1
@inherits diameter_gen_base_rfc6733
;; ===========================================================================
@avp_types
ERP-RK-Request 618 Grouped -
ERP-Realm 619 DiameterIdentity -
;; ===========================================================================
@grouped
ERP-RK-Request ::= < AVP Header: 618 >
{ ERP-Realm }
* [ AVP ]

582
dia/diameter_rfc6942.erl Normal file
View File

@ -0,0 +1,582 @@
%% -------------------------------------------------------------------
%% This is a generated file.
%% -------------------------------------------------------------------
-module(diameter_rfc6942).
-compile({parse_transform, diameter_exprecs}).
-compile(nowarn_unused_function).
-export_records(['ERP-RK-Request', 'Proxy-Info',
'Failed-AVP', 'Experimental-Result',
'Vendor-Specific-Application-Id']).
-record('ERP-RK-Request', {'ERP-Realm', 'AVP' = []}).
-record('Proxy-Info',
{'Proxy-Host', 'Proxy-State', 'AVP' = []}).
-record('Failed-AVP', {'AVP' = []}).
-record('Experimental-Result',
{'Vendor-Id', 'Experimental-Result-Code'}).
-record('Vendor-Specific-Application-Id',
{'Vendor-Id', 'Auth-Application-Id' = [],
'Acct-Application-Id' = []}).
-export([name/0, id/0, vendor_id/0, vendor_name/0,
decode_avps/3, encode_avps/3, grouped_avp/4, msg_name/2,
msg_header/1, rec2msg/1, msg2rec/1, name2rec/1,
avp_name/2, avp_arity/1, avp_arity/2, avp_header/1,
avp/4, enumerated_avp/3, empty_value/2, dict/0]).
-include_lib("diameter/include/diameter.hrl").
-include_lib("diameter/include/diameter_gen.hrl").
name() -> diameter_rfc6942.
id() -> 1.
vendor_id() -> erlang:error(undefined).
vendor_name() -> erlang:error(undefined).
msg_name(_, _) -> ''.
msg_header(_) -> erlang:error(badarg).
rec2msg(_) -> erlang:error(badarg).
msg2rec(_) -> erlang:error(badarg).
name2rec('ERP-RK-Request') -> 'ERP-RK-Request';
name2rec('Proxy-Info') -> 'Proxy-Info';
name2rec('Failed-AVP') -> 'Failed-AVP';
name2rec('Experimental-Result') ->
'Experimental-Result';
name2rec('Vendor-Specific-Application-Id') ->
'Vendor-Specific-Application-Id';
name2rec(T) -> msg2rec(T).
avp_name(618, undefined) ->
{'ERP-RK-Request', 'Grouped'};
avp_name(619, undefined) ->
{'ERP-Realm', 'DiameterIdentity'};
avp_name(483, undefined) ->
{'Accounting-Realtime-Required', 'Enumerated'};
avp_name(485, undefined) ->
{'Accounting-Record-Number', 'Unsigned32'};
avp_name(480, undefined) ->
{'Accounting-Record-Type', 'Enumerated'};
avp_name(287, undefined) ->
{'Accounting-Sub-Session-Id', 'Unsigned64'};
avp_name(259, undefined) ->
{'Acct-Application-Id', 'Unsigned32'};
avp_name(85, undefined) ->
{'Acct-Interim-Interval', 'Unsigned32'};
avp_name(50, undefined) ->
{'Acct-Multi-Session-Id', 'UTF8String'};
avp_name(44, undefined) ->
{'Acct-Session-Id', 'OctetString'};
avp_name(258, undefined) ->
{'Auth-Application-Id', 'Unsigned32'};
avp_name(276, undefined) ->
{'Auth-Grace-Period', 'Unsigned32'};
avp_name(274, undefined) ->
{'Auth-Request-Type', 'Enumerated'};
avp_name(277, undefined) ->
{'Auth-Session-State', 'Enumerated'};
avp_name(291, undefined) ->
{'Authorization-Lifetime', 'Unsigned32'};
avp_name(25, undefined) -> {'Class', 'OctetString'};
avp_name(293, undefined) ->
{'Destination-Host', 'DiameterIdentity'};
avp_name(283, undefined) ->
{'Destination-Realm', 'DiameterIdentity'};
avp_name(273, undefined) ->
{'Disconnect-Cause', 'Enumerated'};
avp_name(281, undefined) ->
{'Error-Message', 'UTF8String'};
avp_name(294, undefined) ->
{'Error-Reporting-Host', 'DiameterIdentity'};
avp_name(55, undefined) -> {'Event-Timestamp', 'Time'};
avp_name(297, undefined) ->
{'Experimental-Result', 'Grouped'};
avp_name(298, undefined) ->
{'Experimental-Result-Code', 'Unsigned32'};
avp_name(279, undefined) -> {'Failed-AVP', 'Grouped'};
avp_name(267, undefined) ->
{'Firmware-Revision', 'Unsigned32'};
avp_name(257, undefined) ->
{'Host-IP-Address', 'Address'};
avp_name(299, undefined) ->
{'Inband-Security-Id', 'Unsigned32'};
avp_name(272, undefined) ->
{'Multi-Round-Time-Out', 'Unsigned32'};
avp_name(264, undefined) ->
{'Origin-Host', 'DiameterIdentity'};
avp_name(296, undefined) ->
{'Origin-Realm', 'DiameterIdentity'};
avp_name(278, undefined) ->
{'Origin-State-Id', 'Unsigned32'};
avp_name(269, undefined) ->
{'Product-Name', 'UTF8String'};
avp_name(280, undefined) ->
{'Proxy-Host', 'DiameterIdentity'};
avp_name(284, undefined) -> {'Proxy-Info', 'Grouped'};
avp_name(33, undefined) ->
{'Proxy-State', 'OctetString'};
avp_name(285, undefined) ->
{'Re-Auth-Request-Type', 'Enumerated'};
avp_name(292, undefined) ->
{'Redirect-Host', 'DiameterURI'};
avp_name(261, undefined) ->
{'Redirect-Host-Usage', 'Enumerated'};
avp_name(262, undefined) ->
{'Redirect-Max-Cache-Time', 'Unsigned32'};
avp_name(268, undefined) ->
{'Result-Code', 'Unsigned32'};
avp_name(282, undefined) ->
{'Route-Record', 'DiameterIdentity'};
avp_name(270, undefined) ->
{'Session-Binding', 'Unsigned32'};
avp_name(263, undefined) ->
{'Session-Id', 'UTF8String'};
avp_name(271, undefined) ->
{'Session-Server-Failover', 'Enumerated'};
avp_name(27, undefined) ->
{'Session-Timeout', 'Unsigned32'};
avp_name(265, undefined) ->
{'Supported-Vendor-Id', 'Unsigned32'};
avp_name(295, undefined) ->
{'Termination-Cause', 'Enumerated'};
avp_name(1, undefined) -> {'User-Name', 'UTF8String'};
avp_name(266, undefined) -> {'Vendor-Id', 'Unsigned32'};
avp_name(260, undefined) ->
{'Vendor-Specific-Application-Id', 'Grouped'};
avp_name(_, _) -> 'AVP'.
avp_arity('ERP-RK-Request') ->
[{'ERP-Realm', 1}, {'AVP', {0, '*'}}];
avp_arity('Proxy-Info') ->
[{'Proxy-Host', 1}, {'Proxy-State', 1},
{'AVP', {0, '*'}}];
avp_arity('Failed-AVP') -> [{'AVP', {1, '*'}}];
avp_arity('Experimental-Result') ->
[{'Vendor-Id', 1}, {'Experimental-Result-Code', 1}];
avp_arity('Vendor-Specific-Application-Id') ->
[{'Vendor-Id', 1}, {'Auth-Application-Id', {0, 1}},
{'Acct-Application-Id', {0, 1}}];
avp_arity(_) -> erlang:error(badarg).
avp_arity('ERP-RK-Request', 'ERP-Realm') -> 1;
avp_arity('ERP-RK-Request', 'AVP') -> {0, '*'};
avp_arity('Proxy-Info', 'Proxy-Host') -> 1;
avp_arity('Proxy-Info', 'Proxy-State') -> 1;
avp_arity('Proxy-Info', 'AVP') -> {0, '*'};
avp_arity('Failed-AVP', 'AVP') -> {1, '*'};
avp_arity('Experimental-Result', 'Vendor-Id') -> 1;
avp_arity('Experimental-Result',
'Experimental-Result-Code') ->
1;
avp_arity('Vendor-Specific-Application-Id',
'Vendor-Id') ->
1;
avp_arity('Vendor-Specific-Application-Id',
'Auth-Application-Id') ->
{0, 1};
avp_arity('Vendor-Specific-Application-Id',
'Acct-Application-Id') ->
{0, 1};
avp_arity(_, _) -> 0.
avp_header('ERP-RK-Request') -> {618, 0, undefined};
avp_header('ERP-Realm') -> {619, 0, undefined};
avp_header('Accounting-Realtime-Required') ->
diameter_gen_base_rfc6733:avp_header('Accounting-Realtime-Required');
avp_header('Accounting-Record-Number') ->
diameter_gen_base_rfc6733:avp_header('Accounting-Record-Number');
avp_header('Accounting-Record-Type') ->
diameter_gen_base_rfc6733:avp_header('Accounting-Record-Type');
avp_header('Accounting-Sub-Session-Id') ->
diameter_gen_base_rfc6733:avp_header('Accounting-Sub-Session-Id');
avp_header('Acct-Application-Id') ->
diameter_gen_base_rfc6733:avp_header('Acct-Application-Id');
avp_header('Acct-Interim-Interval') ->
diameter_gen_base_rfc6733:avp_header('Acct-Interim-Interval');
avp_header('Acct-Multi-Session-Id') ->
diameter_gen_base_rfc6733:avp_header('Acct-Multi-Session-Id');
avp_header('Acct-Session-Id') ->
diameter_gen_base_rfc6733:avp_header('Acct-Session-Id');
avp_header('Auth-Application-Id') ->
diameter_gen_base_rfc6733:avp_header('Auth-Application-Id');
avp_header('Auth-Grace-Period') ->
diameter_gen_base_rfc6733:avp_header('Auth-Grace-Period');
avp_header('Auth-Request-Type') ->
diameter_gen_base_rfc6733:avp_header('Auth-Request-Type');
avp_header('Auth-Session-State') ->
diameter_gen_base_rfc6733:avp_header('Auth-Session-State');
avp_header('Authorization-Lifetime') ->
diameter_gen_base_rfc6733:avp_header('Authorization-Lifetime');
avp_header('Class') ->
diameter_gen_base_rfc6733:avp_header('Class');
avp_header('Destination-Host') ->
diameter_gen_base_rfc6733:avp_header('Destination-Host');
avp_header('Destination-Realm') ->
diameter_gen_base_rfc6733:avp_header('Destination-Realm');
avp_header('Disconnect-Cause') ->
diameter_gen_base_rfc6733:avp_header('Disconnect-Cause');
avp_header('Error-Message') ->
diameter_gen_base_rfc6733:avp_header('Error-Message');
avp_header('Error-Reporting-Host') ->
diameter_gen_base_rfc6733:avp_header('Error-Reporting-Host');
avp_header('Event-Timestamp') ->
diameter_gen_base_rfc6733:avp_header('Event-Timestamp');
avp_header('Experimental-Result') ->
diameter_gen_base_rfc6733:avp_header('Experimental-Result');
avp_header('Experimental-Result-Code') ->
diameter_gen_base_rfc6733:avp_header('Experimental-Result-Code');
avp_header('Failed-AVP') ->
diameter_gen_base_rfc6733:avp_header('Failed-AVP');
avp_header('Firmware-Revision') ->
diameter_gen_base_rfc6733:avp_header('Firmware-Revision');
avp_header('Host-IP-Address') ->
diameter_gen_base_rfc6733:avp_header('Host-IP-Address');
avp_header('Inband-Security-Id') ->
diameter_gen_base_rfc6733:avp_header('Inband-Security-Id');
avp_header('Multi-Round-Time-Out') ->
diameter_gen_base_rfc6733:avp_header('Multi-Round-Time-Out');
avp_header('Origin-Host') ->
diameter_gen_base_rfc6733:avp_header('Origin-Host');
avp_header('Origin-Realm') ->
diameter_gen_base_rfc6733:avp_header('Origin-Realm');
avp_header('Origin-State-Id') ->
diameter_gen_base_rfc6733:avp_header('Origin-State-Id');
avp_header('Product-Name') ->
diameter_gen_base_rfc6733:avp_header('Product-Name');
avp_header('Proxy-Host') ->
diameter_gen_base_rfc6733:avp_header('Proxy-Host');
avp_header('Proxy-Info') ->
diameter_gen_base_rfc6733:avp_header('Proxy-Info');
avp_header('Proxy-State') ->
diameter_gen_base_rfc6733:avp_header('Proxy-State');
avp_header('Re-Auth-Request-Type') ->
diameter_gen_base_rfc6733:avp_header('Re-Auth-Request-Type');
avp_header('Redirect-Host') ->
diameter_gen_base_rfc6733:avp_header('Redirect-Host');
avp_header('Redirect-Host-Usage') ->
diameter_gen_base_rfc6733:avp_header('Redirect-Host-Usage');
avp_header('Redirect-Max-Cache-Time') ->
diameter_gen_base_rfc6733:avp_header('Redirect-Max-Cache-Time');
avp_header('Result-Code') ->
diameter_gen_base_rfc6733:avp_header('Result-Code');
avp_header('Route-Record') ->
diameter_gen_base_rfc6733:avp_header('Route-Record');
avp_header('Session-Binding') ->
diameter_gen_base_rfc6733:avp_header('Session-Binding');
avp_header('Session-Id') ->
diameter_gen_base_rfc6733:avp_header('Session-Id');
avp_header('Session-Server-Failover') ->
diameter_gen_base_rfc6733:avp_header('Session-Server-Failover');
avp_header('Session-Timeout') ->
diameter_gen_base_rfc6733:avp_header('Session-Timeout');
avp_header('Supported-Vendor-Id') ->
diameter_gen_base_rfc6733:avp_header('Supported-Vendor-Id');
avp_header('Termination-Cause') ->
diameter_gen_base_rfc6733:avp_header('Termination-Cause');
avp_header('User-Name') ->
diameter_gen_base_rfc6733:avp_header('User-Name');
avp_header('Vendor-Id') ->
diameter_gen_base_rfc6733:avp_header('Vendor-Id');
avp_header('Vendor-Specific-Application-Id') ->
diameter_gen_base_rfc6733:avp_header('Vendor-Specific-Application-Id');
avp_header(_) -> erlang:error(badarg).
avp(T, Data, 'ERP-RK-Request', Opts) ->
grouped_avp(T, 'ERP-RK-Request', Data, Opts);
avp(T, Data, 'ERP-Realm', Opts) ->
diameter_types:'DiameterIdentity'(T, Data, Opts);
avp(T, Data, 'Accounting-Realtime-Required', Opts) ->
avp(T, Data, 'Accounting-Realtime-Required', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Accounting-Record-Number', Opts) ->
avp(T, Data, 'Accounting-Record-Number', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Accounting-Record-Type', Opts) ->
avp(T, Data, 'Accounting-Record-Type', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Accounting-Sub-Session-Id', Opts) ->
avp(T, Data, 'Accounting-Sub-Session-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Acct-Application-Id', Opts) ->
avp(T, Data, 'Acct-Application-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Acct-Interim-Interval', Opts) ->
avp(T, Data, 'Acct-Interim-Interval', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Acct-Multi-Session-Id', Opts) ->
avp(T, Data, 'Acct-Multi-Session-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Acct-Session-Id', Opts) ->
avp(T, Data, 'Acct-Session-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Auth-Application-Id', Opts) ->
avp(T, Data, 'Auth-Application-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Auth-Grace-Period', Opts) ->
avp(T, Data, 'Auth-Grace-Period', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Auth-Request-Type', Opts) ->
avp(T, Data, 'Auth-Request-Type', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Auth-Session-State', Opts) ->
avp(T, Data, 'Auth-Session-State', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Authorization-Lifetime', Opts) ->
avp(T, Data, 'Authorization-Lifetime', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Class', Opts) ->
avp(T, Data, 'Class', Opts, diameter_gen_base_rfc6733);
avp(T, Data, 'Destination-Host', Opts) ->
avp(T, Data, 'Destination-Host', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Destination-Realm', Opts) ->
avp(T, Data, 'Destination-Realm', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Disconnect-Cause', Opts) ->
avp(T, Data, 'Disconnect-Cause', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Error-Message', Opts) ->
avp(T, Data, 'Error-Message', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Error-Reporting-Host', Opts) ->
avp(T, Data, 'Error-Reporting-Host', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Event-Timestamp', Opts) ->
avp(T, Data, 'Event-Timestamp', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Experimental-Result', Opts) ->
grouped_avp(T, 'Experimental-Result', Data, Opts);
avp(T, Data, 'Experimental-Result-Code', Opts) ->
avp(T, Data, 'Experimental-Result-Code', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Failed-AVP', Opts) ->
grouped_avp(T, 'Failed-AVP', Data, Opts);
avp(T, Data, 'Firmware-Revision', Opts) ->
avp(T, Data, 'Firmware-Revision', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Host-IP-Address', Opts) ->
avp(T, Data, 'Host-IP-Address', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Inband-Security-Id', Opts) ->
avp(T, Data, 'Inband-Security-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Multi-Round-Time-Out', Opts) ->
avp(T, Data, 'Multi-Round-Time-Out', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Origin-Host', Opts) ->
avp(T, Data, 'Origin-Host', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Origin-Realm', Opts) ->
avp(T, Data, 'Origin-Realm', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Origin-State-Id', Opts) ->
avp(T, Data, 'Origin-State-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Product-Name', Opts) ->
avp(T, Data, 'Product-Name', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Proxy-Host', Opts) ->
avp(T, Data, 'Proxy-Host', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Proxy-Info', Opts) ->
grouped_avp(T, 'Proxy-Info', Data, Opts);
avp(T, Data, 'Proxy-State', Opts) ->
avp(T, Data, 'Proxy-State', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Re-Auth-Request-Type', Opts) ->
avp(T, Data, 'Re-Auth-Request-Type', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Redirect-Host', Opts) ->
avp(T, Data, 'Redirect-Host', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Redirect-Host-Usage', Opts) ->
avp(T, Data, 'Redirect-Host-Usage', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Redirect-Max-Cache-Time', Opts) ->
avp(T, Data, 'Redirect-Max-Cache-Time', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Result-Code', Opts) ->
avp(T, Data, 'Result-Code', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Route-Record', Opts) ->
avp(T, Data, 'Route-Record', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Session-Binding', Opts) ->
avp(T, Data, 'Session-Binding', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Session-Id', Opts) ->
avp(T, Data, 'Session-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Session-Server-Failover', Opts) ->
avp(T, Data, 'Session-Server-Failover', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Session-Timeout', Opts) ->
avp(T, Data, 'Session-Timeout', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Supported-Vendor-Id', Opts) ->
avp(T, Data, 'Supported-Vendor-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Termination-Cause', Opts) ->
avp(T, Data, 'Termination-Cause', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'User-Name', Opts) ->
avp(T, Data, 'User-Name', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Vendor-Id', Opts) ->
avp(T, Data, 'Vendor-Id', Opts,
diameter_gen_base_rfc6733);
avp(T, Data, 'Vendor-Specific-Application-Id', Opts) ->
grouped_avp(T, 'Vendor-Specific-Application-Id', Data,
Opts);
avp(_, _, _, _) -> erlang:error(badarg).
enumerated_avp(_, _, _) -> erlang:error(badarg).
empty_value('ERP-RK-Request', Opts) ->
empty_group('ERP-RK-Request', Opts);
empty_value('Proxy-Info', Opts) ->
empty_group('Proxy-Info', Opts);
empty_value('Failed-AVP', Opts) ->
empty_group('Failed-AVP', Opts);
empty_value('Experimental-Result', Opts) ->
empty_group('Experimental-Result', Opts);
empty_value('Vendor-Specific-Application-Id', Opts) ->
empty_group('Vendor-Specific-Application-Id', Opts);
empty_value('Disconnect-Cause', _) -> <<0, 0, 0, 0>>;
empty_value('Redirect-Host-Usage', _) -> <<0, 0, 0, 0>>;
empty_value('Auth-Request-Type', _) -> <<0, 0, 0, 0>>;
empty_value('Auth-Session-State', _) -> <<0, 0, 0, 0>>;
empty_value('Re-Auth-Request-Type', _) ->
<<0, 0, 0, 0>>;
empty_value('Termination-Cause', _) -> <<0, 0, 0, 0>>;
empty_value('Session-Server-Failover', _) ->
<<0, 0, 0, 0>>;
empty_value('Accounting-Record-Type', _) ->
<<0, 0, 0, 0>>;
empty_value('Accounting-Realtime-Required', _) ->
<<0, 0, 0, 0>>;
empty_value(Name, Opts) -> empty(Name, Opts).
dict() ->
[1,
{avp_types,
[{"ERP-RK-Request", 618, "Grouped", []},
{"ERP-Realm", 619, "DiameterIdentity", []}]},
{avp_vendor_id, []}, {codecs, []}, {command_codes, []},
{custom_types, []}, {define, []}, {enum, []},
{grouped,
[{"ERP-RK-Request", 618, [],
[{"ERP-Realm"}, {'*', ["AVP"]}]}]},
{id, 1},
{import_avps,
[{diameter_gen_base_rfc6733,
[{"Accounting-Realtime-Required", 483, "Enumerated",
"M"},
{"Accounting-Record-Number", 485, "Unsigned32", "M"},
{"Accounting-Record-Type", 480, "Enumerated", "M"},
{"Accounting-Sub-Session-Id", 287, "Unsigned64", "M"},
{"Acct-Application-Id", 259, "Unsigned32", "M"},
{"Acct-Interim-Interval", 85, "Unsigned32", "M"},
{"Acct-Multi-Session-Id", 50, "UTF8String", "M"},
{"Acct-Session-Id", 44, "OctetString", "M"},
{"Auth-Application-Id", 258, "Unsigned32", "M"},
{"Auth-Grace-Period", 276, "Unsigned32", "M"},
{"Auth-Request-Type", 274, "Enumerated", "M"},
{"Auth-Session-State", 277, "Enumerated", "M"},
{"Authorization-Lifetime", 291, "Unsigned32", "M"},
{"Class", 25, "OctetString", "M"},
{"Destination-Host", 293, "DiameterIdentity", "M"},
{"Destination-Realm", 283, "DiameterIdentity", "M"},
{"Disconnect-Cause", 273, "Enumerated", "M"},
{"Error-Message", 281, "UTF8String", []},
{"Error-Reporting-Host", 294, "DiameterIdentity", []},
{"Event-Timestamp", 55, "Time", "M"},
{"Experimental-Result", 297, "Grouped", "M"},
{"Experimental-Result-Code", 298, "Unsigned32", "M"},
{"Failed-AVP", 279, "Grouped", "M"},
{"Firmware-Revision", 267, "Unsigned32", []},
{"Host-IP-Address", 257, "Address", "M"},
{"Inband-Security-Id", 299, "Unsigned32", "M"},
{"Multi-Round-Time-Out", 272, "Unsigned32", "M"},
{"Origin-Host", 264, "DiameterIdentity", "M"},
{"Origin-Realm", 296, "DiameterIdentity", "M"},
{"Origin-State-Id", 278, "Unsigned32", "M"},
{"Product-Name", 269, "UTF8String", []},
{"Proxy-Host", 280, "DiameterIdentity", "M"},
{"Proxy-Info", 284, "Grouped", "M"},
{"Proxy-State", 33, "OctetString", "M"},
{"Re-Auth-Request-Type", 285, "Enumerated", "M"},
{"Redirect-Host", 292, "DiameterURI", "M"},
{"Redirect-Host-Usage", 261, "Enumerated", "M"},
{"Redirect-Max-Cache-Time", 262, "Unsigned32", "M"},
{"Result-Code", 268, "Unsigned32", "M"},
{"Route-Record", 282, "DiameterIdentity", "M"},
{"Session-Binding", 270, "Unsigned32", "M"},
{"Session-Id", 263, "UTF8String", "M"},
{"Session-Server-Failover", 271, "Enumerated", "M"},
{"Session-Timeout", 27, "Unsigned32", "M"},
{"Supported-Vendor-Id", 265, "Unsigned32", "M"},
{"Termination-Cause", 295, "Enumerated", "M"},
{"User-Name", 1, "UTF8String", "M"},
{"Vendor-Id", 266, "Unsigned32", "M"},
{"Vendor-Specific-Application-Id", 260, "Grouped",
"M"}]}]},
{import_enums,
[{diameter_gen_base_rfc6733,
[{"Disconnect-Cause",
[{"REBOOTING", 0}, {"BUSY", 1},
{"DO_NOT_WANT_TO_TALK_TO_YOU", 2}]},
{"Redirect-Host-Usage",
[{"DONT_CACHE", 0}, {"ALL_SESSION", 1},
{"ALL_REALM", 2}, {"REALM_AND_APPLICATION", 3},
{"ALL_APPLICATION", 4}, {"ALL_HOST", 5},
{"ALL_USER", 6}]},
{"Auth-Request-Type",
[{"AUTHENTICATE_ONLY", 1}, {"AUTHORIZE_ONLY", 2},
{"AUTHORIZE_AUTHENTICATE", 3}]},
{"Auth-Session-State",
[{"STATE_MAINTAINED", 0}, {"NO_STATE_MAINTAINED", 1}]},
{"Re-Auth-Request-Type",
[{"AUTHORIZE_ONLY", 0}, {"AUTHORIZE_AUTHENTICATE", 1}]},
{"Termination-Cause",
[{"LOGOUT", 1}, {"SERVICE_NOT_PROVIDED", 2},
{"BAD_ANSWER", 3}, {"ADMINISTRATIVE", 4},
{"LINK_BROKEN", 5}, {"AUTH_EXPIRED", 6},
{"USER_MOVED", 7}, {"SESSION_TIMEOUT", 8}]},
{"Session-Server-Failover",
[{"REFUSE_SERVICE", 0}, {"TRY_AGAIN", 1},
{"ALLOW_SERVICE", 2}, {"TRY_AGAIN_ALLOW_SERVICE", 3}]},
{"Accounting-Record-Type",
[{"EVENT_RECORD", 1}, {"START_RECORD", 2},
{"INTERIM_RECORD", 3}, {"STOP_RECORD", 4}]},
{"Accounting-Realtime-Required",
[{"DELIVER_AND_GRANT", 1}, {"GRANT_AND_STORE", 2},
{"GRANT_AND_LOSE", 3}]}]}]},
{import_groups,
[{diameter_gen_base_rfc6733,
[{"Proxy-Info", 284, [],
[{"Proxy-Host"}, {"Proxy-State"}, {'*', ["AVP"]}]},
{"Failed-AVP", 279, [], [{'*', {"AVP"}}]},
{"Experimental-Result", 297, [],
[{"Vendor-Id"}, {"Experimental-Result-Code"}]},
{"Vendor-Specific-Application-Id", 260, [],
[{"Vendor-Id"}, ["Auth-Application-Id"],
["Acct-Application-Id"]]}]}]},
{inherits, [{"diameter_gen_base_rfc6733", []}]},
{messages, []}].