%% ------------------------------------------------------------------- %% This is a generated file. %% ------------------------------------------------------------------- -module(diameter_rfc5777). -compile({parse_transform, diameter_exprecs}). -compile(nowarn_unused_function). -dialyzer(no_return). -export_records(['QoS-Resources', 'Filter-Rule', 'Classifier', 'From-Spec', 'To-Spec', 'IP-Address-Range', 'IP-Address-Mask', 'MAC-Address-Mask', 'EUI64-Address-Mask', 'Port-Range', 'IP-Option', 'TCP-Option', 'TCP-Flags', 'ICMP-Type', 'ETH-Option', 'ETH-Proto-Type', 'VLAN-ID-Range', 'User-Priority-Range', 'Time-Of-Day-Condition', 'QoS-Profile-Template', 'QoS-Parameters', 'Excess-Treatment', 'QoS-Capability', 'Proxy-Info', 'Failed-AVP', 'Experimental-Result', 'Vendor-Specific-Application-Id']). -record('QoS-Resources', {'Filter-Rule' = [], 'AVP' = []}). -record('Filter-Rule', {'Filter-Rule-Precedence' = [], 'Classifier' = [], 'Time-Of-Day-Condition' = [], 'Treatment-Action' = [], 'QoS-Semantics' = [], 'QoS-Profile-Template' = [], 'QoS-Parameters' = [], 'Excess-Treatment' = [], 'AVP' = []}). -record('Classifier', {'Classifier-ID', 'Protocol' = [], 'Direction' = [], 'From-Spec' = [], 'To-Spec' = [], 'Diffserv-Code-Point' = [], 'Fragmentation-Flag' = [], 'IP-Option' = [], 'TCP-Option' = [], 'TCP-Flags' = [], 'ICMP-Type' = [], 'ETH-Option' = [], 'AVP' = []}). -record('From-Spec', {'IP-Address' = [], 'IP-Address-Range' = [], 'IP-Address-Mask' = [], 'MAC-Address' = [], 'MAC-Address-Mask' = [], 'EUI64-Address' = [], 'EUI64-Address-Mask' = [], 'Port' = [], 'Port-Range' = [], 'Negated' = [], 'Use-Assigned-Address' = [], 'AVP' = []}). -record('To-Spec', {'IP-Address' = [], 'IP-Address-Range' = [], 'IP-Address-Mask' = [], 'MAC-Address' = [], 'MAC-Address-Mask' = [], 'EUI64-Address' = [], 'EUI64-Address-Mask' = [], 'Port' = [], 'Port-Range' = [], 'Negated' = [], 'Use-Assigned-Address' = [], 'AVP' = []}). -record('IP-Address-Range', {'IP-Address-Start' = [], 'IP-Address-End' = [], 'AVP' = []}). -record('IP-Address-Mask', {'IP-Address', 'IP-Mask-Bit-Mask-Width', 'AVP' = []}). -record('MAC-Address-Mask', {'MAC-Address', 'MAC-Address-Mask-Pattern', 'AVP' = []}). -record('EUI64-Address-Mask', {'EUI64-Address', 'EUI64-Address-Mask-Pattern', 'AVP' = []}). -record('Port-Range', {'Port-Start' = [], 'Port-End' = [], 'AVP' = []}). -record('IP-Option', {'IP-Option-Type', 'IP-Option-Value' = [], 'Negated' = [], 'AVP' = []}). -record('TCP-Option', {'TCP-Option-Type', 'TCP-Option-Value' = [], 'Negated' = [], 'AVP' = []}). -record('TCP-Flags', {'TCP-Flag-Type', 'Negated' = [], 'AVP' = []}). -record('ICMP-Type', {'ICMP-Type-Number', 'ICMP-Code' = [], 'Negated' = [], 'AVP' = []}). -record('ETH-Option', {'ETH-Proto-Type', 'VLAN-ID-Range' = [], 'User-Priority-Range' = [], 'AVP' = []}). -record('ETH-Proto-Type', {'ETH-Ether-Type' = [], 'ETH-SAP' = [], 'AVP' = []}). -record('VLAN-ID-Range', {'S-VID-Start' = [], 'S-VID-End' = [], 'C-VID-Start' = [], 'C-VID-End' = [], 'AVP' = []}). -record('User-Priority-Range', {'Low-User-Priority' = [], 'High-User-Priority' = [], 'AVP' = []}). -record('Time-Of-Day-Condition', {'Time-Of-Day-Start' = [], 'Time-Of-Day-End' = [], 'Day-Of-Week-Mask' = [], 'Day-Of-Month-Mask' = [], 'Month-Of-Year-Mask' = [], 'Absolute-Start-Time' = [], 'Absolute-End-Time' = [], 'Timezone-Flag' = [], 'AVP' = []}). -record('QoS-Profile-Template', {'Vendor-Id', 'QoS-Profile-Id', 'AVP' = []}). -record('QoS-Parameters', {'AVP' = []}). -record('Excess-Treatment', {'Treatment-Action', 'QoS-Profile-Template' = [], 'QoS-Parameters' = [], 'AVP' = []}). -record('QoS-Capability', {'QoS-Profile-Template' = [], '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_rfc5777. 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('QoS-Resources') -> 'QoS-Resources'; name2rec('Filter-Rule') -> 'Filter-Rule'; name2rec('Classifier') -> 'Classifier'; name2rec('From-Spec') -> 'From-Spec'; name2rec('To-Spec') -> 'To-Spec'; name2rec('IP-Address-Range') -> 'IP-Address-Range'; name2rec('IP-Address-Mask') -> 'IP-Address-Mask'; name2rec('MAC-Address-Mask') -> 'MAC-Address-Mask'; name2rec('EUI64-Address-Mask') -> 'EUI64-Address-Mask'; name2rec('Port-Range') -> 'Port-Range'; name2rec('IP-Option') -> 'IP-Option'; name2rec('TCP-Option') -> 'TCP-Option'; name2rec('TCP-Flags') -> 'TCP-Flags'; name2rec('ICMP-Type') -> 'ICMP-Type'; name2rec('ETH-Option') -> 'ETH-Option'; name2rec('ETH-Proto-Type') -> 'ETH-Proto-Type'; name2rec('VLAN-ID-Range') -> 'VLAN-ID-Range'; name2rec('User-Priority-Range') -> 'User-Priority-Range'; name2rec('Time-Of-Day-Condition') -> 'Time-Of-Day-Condition'; name2rec('QoS-Profile-Template') -> 'QoS-Profile-Template'; name2rec('QoS-Parameters') -> 'QoS-Parameters'; name2rec('Excess-Treatment') -> 'Excess-Treatment'; name2rec('QoS-Capability') -> 'QoS-Capability'; 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(569, undefined) -> {'Absolute-End-Fractional-Seconds', 'Unsigned32'}; avp_name(568, undefined) -> {'Absolute-End-Time', 'Time'}; avp_name(567, undefined) -> {'Absolute-Start-Fractional-Seconds', 'Unsigned32'}; avp_name(566, undefined) -> {'Absolute-Start-Time', 'Time'}; avp_name(556, undefined) -> {'C-VID-End', 'Unsigned32'}; avp_name(555, undefined) -> {'C-VID-Start', 'Unsigned32'}; avp_name(511, undefined) -> {'Classifier', 'Grouped'}; avp_name(512, undefined) -> {'Classifier-ID', 'OctetString'}; avp_name(564, undefined) -> {'Day-Of-Month-Mask', 'Unsigned32'}; avp_name(563, undefined) -> {'Day-Of-Week-Mask', 'Unsigned32'}; avp_name(535, undefined) -> {'Diffserv-Code-Point', 'Enumerated'}; avp_name(514, undefined) -> {'Direction', 'Enumerated'}; avp_name(550, undefined) -> {'ETH-Ether-Type', 'OctetString'}; avp_name(548, undefined) -> {'ETH-Option', 'Grouped'}; avp_name(549, undefined) -> {'ETH-Proto-Type', 'Grouped'}; avp_name(551, undefined) -> {'ETH-SAP', 'OctetString'}; avp_name(527, undefined) -> {'EUI64-Address', 'OctetString'}; avp_name(528, undefined) -> {'EUI64-Address-Mask', 'Grouped'}; avp_name(529, undefined) -> {'EUI64-Address-Mask-Pattern', 'OctetString'}; avp_name(577, undefined) -> {'Excess-Treatment', 'Grouped'}; avp_name(509, undefined) -> {'Filter-Rule', 'Grouped'}; avp_name(510, undefined) -> {'Filter-Rule-Precedence', 'Unsigned32'}; avp_name(536, undefined) -> {'Fragmentation-Flag', 'Enumerated'}; avp_name(515, undefined) -> {'From-Spec', 'Grouped'}; avp_name(559, undefined) -> {'High-User-Priority', 'Unsigned32'}; avp_name(547, undefined) -> {'ICMP-Code', 'Enumerated'}; avp_name(545, undefined) -> {'ICMP-Type', 'Grouped'}; avp_name(546, undefined) -> {'ICMP-Type-Number', 'Enumerated'}; avp_name(518, undefined) -> {'IP-Address', 'Address'}; avp_name(521, undefined) -> {'IP-Address-End', 'Address'}; avp_name(522, undefined) -> {'IP-Address-Mask', 'Grouped'}; avp_name(519, undefined) -> {'IP-Address-Range', 'Grouped'}; avp_name(520, undefined) -> {'IP-Address-Start', 'Address'}; avp_name(523, undefined) -> {'IP-Mask-Bit-Mask-Width', 'Unsigned32'}; avp_name(537, undefined) -> {'IP-Option', 'Grouped'}; avp_name(538, undefined) -> {'IP-Option-Type', 'Enumerated'}; avp_name(539, undefined) -> {'IP-Option-Value', 'OctetString'}; avp_name(558, undefined) -> {'Low-User-Priority', 'Unsigned32'}; avp_name(524, undefined) -> {'MAC-Address', 'OctetString'}; avp_name(525, undefined) -> {'MAC-Address-Mask', 'Grouped'}; avp_name(526, undefined) -> {'MAC-Address-Mask-Pattern', 'OctetString'}; avp_name(565, undefined) -> {'Month-Of-Year-Mask', 'Unsigned32'}; avp_name(517, undefined) -> {'Negated', 'Enumerated'}; avp_name(530, undefined) -> {'Port', 'Integer32'}; avp_name(533, undefined) -> {'Port-End', 'Integer32'}; avp_name(531, undefined) -> {'Port-Range', 'Grouped'}; avp_name(532, undefined) -> {'Port-Start', 'Integer32'}; avp_name(513, undefined) -> {'Protocol', 'Enumerated'}; avp_name(578, undefined) -> {'QoS-Capability', 'Grouped'}; avp_name(576, undefined) -> {'QoS-Parameters', 'Grouped'}; avp_name(573, undefined) -> {'QoS-Profile-Id', 'Unsigned32'}; avp_name(574, undefined) -> {'QoS-Profile-Template', 'Grouped'}; avp_name(508, undefined) -> {'QoS-Resources', 'Grouped'}; avp_name(575, undefined) -> {'QoS-Semantics', 'Enumerated'}; avp_name(554, undefined) -> {'S-VID-End', 'Unsigned32'}; avp_name(553, undefined) -> {'S-VID-Start', 'Unsigned32'}; avp_name(544, undefined) -> {'TCP-Flag-Type', 'Unsigned32'}; avp_name(543, undefined) -> {'TCP-Flags', 'Grouped'}; avp_name(540, undefined) -> {'TCP-Option', 'Grouped'}; avp_name(541, undefined) -> {'TCP-Option-Type', 'Enumerated'}; avp_name(542, undefined) -> {'TCP-Option-Value', 'OctetString'}; avp_name(560, undefined) -> {'Time-Of-Day-Condition', 'Grouped'}; avp_name(562, undefined) -> {'Time-Of-Day-End', 'Unsigned32'}; avp_name(561, undefined) -> {'Time-Of-Day-Start', 'Unsigned32'}; avp_name(570, undefined) -> {'Timezone-Flag', 'Enumerated'}; avp_name(571, undefined) -> {'Timezone-Offset', 'Integer32'}; avp_name(516, undefined) -> {'To-Spec', 'Grouped'}; avp_name(572, undefined) -> {'Treatment-Action', 'Enumerated'}; avp_name(534, undefined) -> {'Use-Assigned-Address', 'Enumerated'}; avp_name(557, undefined) -> {'User-Priority-Range', 'Grouped'}; avp_name(552, undefined) -> {'VLAN-ID-Range', 'Grouped'}; 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('QoS-Resources') -> [{'Filter-Rule', {1, '*'}}, {'AVP', {0, '*'}}]; avp_arity('Filter-Rule') -> [{'Filter-Rule-Precedence', {0, 1}}, {'Classifier', {0, 1}}, {'Time-Of-Day-Condition', {0, '*'}}, {'Treatment-Action', {0, 1}}, {'QoS-Semantics', {0, 1}}, {'QoS-Profile-Template', {0, 1}}, {'QoS-Parameters', {0, 1}}, {'Excess-Treatment', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('Classifier') -> [{'Classifier-ID', 1}, {'Protocol', {0, 1}}, {'Direction', {0, 1}}, {'From-Spec', {0, '*'}}, {'To-Spec', {0, '*'}}, {'Diffserv-Code-Point', {0, '*'}}, {'Fragmentation-Flag', {0, 1}}, {'IP-Option', {0, '*'}}, {'TCP-Option', {0, '*'}}, {'TCP-Flags', {0, 1}}, {'ICMP-Type', {0, '*'}}, {'ETH-Option', {0, '*'}}, {'AVP', {0, '*'}}]; avp_arity('From-Spec') -> [{'IP-Address', {0, '*'}}, {'IP-Address-Range', {0, '*'}}, {'IP-Address-Mask', {0, '*'}}, {'MAC-Address', {0, '*'}}, {'MAC-Address-Mask', {0, '*'}}, {'EUI64-Address', {0, '*'}}, {'EUI64-Address-Mask', {0, '*'}}, {'Port', {0, '*'}}, {'Port-Range', {0, '*'}}, {'Negated', {0, 1}}, {'Use-Assigned-Address', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('To-Spec') -> [{'IP-Address', {0, '*'}}, {'IP-Address-Range', {0, '*'}}, {'IP-Address-Mask', {0, '*'}}, {'MAC-Address', {0, '*'}}, {'MAC-Address-Mask', {0, '*'}}, {'EUI64-Address', {0, '*'}}, {'EUI64-Address-Mask', {0, '*'}}, {'Port', {0, '*'}}, {'Port-Range', {0, '*'}}, {'Negated', {0, 1}}, {'Use-Assigned-Address', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('IP-Address-Range') -> [{'IP-Address-Start', {0, 1}}, {'IP-Address-End', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('IP-Address-Mask') -> [{'IP-Address', 1}, {'IP-Mask-Bit-Mask-Width', 1}, {'AVP', {0, '*'}}]; avp_arity('MAC-Address-Mask') -> [{'MAC-Address', 1}, {'MAC-Address-Mask-Pattern', 1}, {'AVP', {0, '*'}}]; avp_arity('EUI64-Address-Mask') -> [{'EUI64-Address', 1}, {'EUI64-Address-Mask-Pattern', 1}, {'AVP', {0, '*'}}]; avp_arity('Port-Range') -> [{'Port-Start', {0, 1}}, {'Port-End', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('IP-Option') -> [{'IP-Option-Type', 1}, {'IP-Option-Value', {0, '*'}}, {'Negated', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('TCP-Option') -> [{'TCP-Option-Type', 1}, {'TCP-Option-Value', {0, '*'}}, {'Negated', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('TCP-Flags') -> [{'TCP-Flag-Type', 1}, {'Negated', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('ICMP-Type') -> [{'ICMP-Type-Number', 1}, {'ICMP-Code', {0, '*'}}, {'Negated', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('ETH-Option') -> [{'ETH-Proto-Type', 1}, {'VLAN-ID-Range', {0, '*'}}, {'User-Priority-Range', {0, '*'}}, {'AVP', {0, '*'}}]; avp_arity('ETH-Proto-Type') -> [{'ETH-Ether-Type', {0, '*'}}, {'ETH-SAP', {0, '*'}}, {'AVP', {0, '*'}}]; avp_arity('VLAN-ID-Range') -> [{'S-VID-Start', {0, 1}}, {'S-VID-End', {0, 1}}, {'C-VID-Start', {0, 1}}, {'C-VID-End', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('User-Priority-Range') -> [{'Low-User-Priority', {0, '*'}}, {'High-User-Priority', {0, '*'}}, {'AVP', {0, '*'}}]; avp_arity('Time-Of-Day-Condition') -> [{'Time-Of-Day-Start', {0, 1}}, {'Time-Of-Day-End', {0, 1}}, {'Day-Of-Week-Mask', {0, 1}}, {'Day-Of-Month-Mask', {0, 1}}, {'Month-Of-Year-Mask', {0, 1}}, {'Absolute-Start-Time', {0, 1}}, {'Absolute-End-Time', {0, 1}}, {'Timezone-Flag', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('QoS-Profile-Template') -> [{'Vendor-Id', 1}, {'QoS-Profile-Id', 1}, {'AVP', {0, '*'}}]; avp_arity('QoS-Parameters') -> [{'AVP', {0, '*'}}]; avp_arity('Excess-Treatment') -> [{'Treatment-Action', 1}, {'QoS-Profile-Template', {0, 1}}, {'QoS-Parameters', {0, 1}}, {'AVP', {0, '*'}}]; avp_arity('QoS-Capability') -> [{'QoS-Profile-Template', {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('QoS-Resources', 'Filter-Rule') -> {1, '*'}; avp_arity('QoS-Resources', 'AVP') -> {0, '*'}; avp_arity('Filter-Rule', 'Filter-Rule-Precedence') -> {0, 1}; avp_arity('Filter-Rule', 'Classifier') -> {0, 1}; avp_arity('Filter-Rule', 'Time-Of-Day-Condition') -> {0, '*'}; avp_arity('Filter-Rule', 'Treatment-Action') -> {0, 1}; avp_arity('Filter-Rule', 'QoS-Semantics') -> {0, 1}; avp_arity('Filter-Rule', 'QoS-Profile-Template') -> {0, 1}; avp_arity('Filter-Rule', 'QoS-Parameters') -> {0, 1}; avp_arity('Filter-Rule', 'Excess-Treatment') -> {0, 1}; avp_arity('Filter-Rule', 'AVP') -> {0, '*'}; avp_arity('Classifier', 'Classifier-ID') -> 1; avp_arity('Classifier', 'Protocol') -> {0, 1}; avp_arity('Classifier', 'Direction') -> {0, 1}; avp_arity('Classifier', 'From-Spec') -> {0, '*'}; avp_arity('Classifier', 'To-Spec') -> {0, '*'}; avp_arity('Classifier', 'Diffserv-Code-Point') -> {0, '*'}; avp_arity('Classifier', 'Fragmentation-Flag') -> {0, 1}; avp_arity('Classifier', 'IP-Option') -> {0, '*'}; avp_arity('Classifier', 'TCP-Option') -> {0, '*'}; avp_arity('Classifier', 'TCP-Flags') -> {0, 1}; avp_arity('Classifier', 'ICMP-Type') -> {0, '*'}; avp_arity('Classifier', 'ETH-Option') -> {0, '*'}; avp_arity('Classifier', 'AVP') -> {0, '*'}; avp_arity('From-Spec', 'IP-Address') -> {0, '*'}; avp_arity('From-Spec', 'IP-Address-Range') -> {0, '*'}; avp_arity('From-Spec', 'IP-Address-Mask') -> {0, '*'}; avp_arity('From-Spec', 'MAC-Address') -> {0, '*'}; avp_arity('From-Spec', 'MAC-Address-Mask') -> {0, '*'}; avp_arity('From-Spec', 'EUI64-Address') -> {0, '*'}; avp_arity('From-Spec', 'EUI64-Address-Mask') -> {0, '*'}; avp_arity('From-Spec', 'Port') -> {0, '*'}; avp_arity('From-Spec', 'Port-Range') -> {0, '*'}; avp_arity('From-Spec', 'Negated') -> {0, 1}; avp_arity('From-Spec', 'Use-Assigned-Address') -> {0, 1}; avp_arity('From-Spec', 'AVP') -> {0, '*'}; avp_arity('To-Spec', 'IP-Address') -> {0, '*'}; avp_arity('To-Spec', 'IP-Address-Range') -> {0, '*'}; avp_arity('To-Spec', 'IP-Address-Mask') -> {0, '*'}; avp_arity('To-Spec', 'MAC-Address') -> {0, '*'}; avp_arity('To-Spec', 'MAC-Address-Mask') -> {0, '*'}; avp_arity('To-Spec', 'EUI64-Address') -> {0, '*'}; avp_arity('To-Spec', 'EUI64-Address-Mask') -> {0, '*'}; avp_arity('To-Spec', 'Port') -> {0, '*'}; avp_arity('To-Spec', 'Port-Range') -> {0, '*'}; avp_arity('To-Spec', 'Negated') -> {0, 1}; avp_arity('To-Spec', 'Use-Assigned-Address') -> {0, 1}; avp_arity('To-Spec', 'AVP') -> {0, '*'}; avp_arity('IP-Address-Range', 'IP-Address-Start') -> {0, 1}; avp_arity('IP-Address-Range', 'IP-Address-End') -> {0, 1}; avp_arity('IP-Address-Range', 'AVP') -> {0, '*'}; avp_arity('IP-Address-Mask', 'IP-Address') -> 1; avp_arity('IP-Address-Mask', 'IP-Mask-Bit-Mask-Width') -> 1; avp_arity('IP-Address-Mask', 'AVP') -> {0, '*'}; avp_arity('MAC-Address-Mask', 'MAC-Address') -> 1; avp_arity('MAC-Address-Mask', 'MAC-Address-Mask-Pattern') -> 1; avp_arity('MAC-Address-Mask', 'AVP') -> {0, '*'}; avp_arity('EUI64-Address-Mask', 'EUI64-Address') -> 1; avp_arity('EUI64-Address-Mask', 'EUI64-Address-Mask-Pattern') -> 1; avp_arity('EUI64-Address-Mask', 'AVP') -> {0, '*'}; avp_arity('Port-Range', 'Port-Start') -> {0, 1}; avp_arity('Port-Range', 'Port-End') -> {0, 1}; avp_arity('Port-Range', 'AVP') -> {0, '*'}; avp_arity('IP-Option', 'IP-Option-Type') -> 1; avp_arity('IP-Option', 'IP-Option-Value') -> {0, '*'}; avp_arity('IP-Option', 'Negated') -> {0, 1}; avp_arity('IP-Option', 'AVP') -> {0, '*'}; avp_arity('TCP-Option', 'TCP-Option-Type') -> 1; avp_arity('TCP-Option', 'TCP-Option-Value') -> {0, '*'}; avp_arity('TCP-Option', 'Negated') -> {0, 1}; avp_arity('TCP-Option', 'AVP') -> {0, '*'}; avp_arity('TCP-Flags', 'TCP-Flag-Type') -> 1; avp_arity('TCP-Flags', 'Negated') -> {0, 1}; avp_arity('TCP-Flags', 'AVP') -> {0, '*'}; avp_arity('ICMP-Type', 'ICMP-Type-Number') -> 1; avp_arity('ICMP-Type', 'ICMP-Code') -> {0, '*'}; avp_arity('ICMP-Type', 'Negated') -> {0, 1}; avp_arity('ICMP-Type', 'AVP') -> {0, '*'}; avp_arity('ETH-Option', 'ETH-Proto-Type') -> 1; avp_arity('ETH-Option', 'VLAN-ID-Range') -> {0, '*'}; avp_arity('ETH-Option', 'User-Priority-Range') -> {0, '*'}; avp_arity('ETH-Option', 'AVP') -> {0, '*'}; avp_arity('ETH-Proto-Type', 'ETH-Ether-Type') -> {0, '*'}; avp_arity('ETH-Proto-Type', 'ETH-SAP') -> {0, '*'}; avp_arity('ETH-Proto-Type', 'AVP') -> {0, '*'}; avp_arity('VLAN-ID-Range', 'S-VID-Start') -> {0, 1}; avp_arity('VLAN-ID-Range', 'S-VID-End') -> {0, 1}; avp_arity('VLAN-ID-Range', 'C-VID-Start') -> {0, 1}; avp_arity('VLAN-ID-Range', 'C-VID-End') -> {0, 1}; avp_arity('VLAN-ID-Range', 'AVP') -> {0, '*'}; avp_arity('User-Priority-Range', 'Low-User-Priority') -> {0, '*'}; avp_arity('User-Priority-Range', 'High-User-Priority') -> {0, '*'}; avp_arity('User-Priority-Range', 'AVP') -> {0, '*'}; avp_arity('Time-Of-Day-Condition', 'Time-Of-Day-Start') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Time-Of-Day-End') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Day-Of-Week-Mask') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Day-Of-Month-Mask') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Month-Of-Year-Mask') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Absolute-Start-Time') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Absolute-End-Time') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'Timezone-Flag') -> {0, 1}; avp_arity('Time-Of-Day-Condition', 'AVP') -> {0, '*'}; avp_arity('QoS-Profile-Template', 'Vendor-Id') -> 1; avp_arity('QoS-Profile-Template', 'QoS-Profile-Id') -> 1; avp_arity('QoS-Profile-Template', 'AVP') -> {0, '*'}; avp_arity('QoS-Parameters', 'AVP') -> {0, '*'}; avp_arity('Excess-Treatment', 'Treatment-Action') -> 1; avp_arity('Excess-Treatment', 'QoS-Profile-Template') -> {0, 1}; avp_arity('Excess-Treatment', 'QoS-Parameters') -> {0, 1}; avp_arity('Excess-Treatment', 'AVP') -> {0, '*'}; avp_arity('QoS-Capability', 'QoS-Profile-Template') -> {1, '*'}; avp_arity('QoS-Capability', '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('Absolute-End-Fractional-Seconds') -> {569, 0, undefined}; avp_header('Absolute-End-Time') -> {568, 0, undefined}; avp_header('Absolute-Start-Fractional-Seconds') -> {567, 0, undefined}; avp_header('Absolute-Start-Time') -> {566, 0, undefined}; avp_header('C-VID-End') -> {556, 0, undefined}; avp_header('C-VID-Start') -> {555, 0, undefined}; avp_header('Classifier') -> {511, 0, undefined}; avp_header('Classifier-ID') -> {512, 0, undefined}; avp_header('Day-Of-Month-Mask') -> {564, 0, undefined}; avp_header('Day-Of-Week-Mask') -> {563, 0, undefined}; avp_header('Diffserv-Code-Point') -> {535, 0, undefined}; avp_header('Direction') -> {514, 0, undefined}; avp_header('ETH-Ether-Type') -> {550, 0, undefined}; avp_header('ETH-Option') -> {548, 0, undefined}; avp_header('ETH-Proto-Type') -> {549, 0, undefined}; avp_header('ETH-SAP') -> {551, 0, undefined}; avp_header('EUI64-Address') -> {527, 0, undefined}; avp_header('EUI64-Address-Mask') -> {528, 0, undefined}; avp_header('EUI64-Address-Mask-Pattern') -> {529, 0, undefined}; avp_header('Excess-Treatment') -> {577, 0, undefined}; avp_header('Filter-Rule') -> {509, 0, undefined}; avp_header('Filter-Rule-Precedence') -> {510, 0, undefined}; avp_header('Fragmentation-Flag') -> {536, 0, undefined}; avp_header('From-Spec') -> {515, 0, undefined}; avp_header('High-User-Priority') -> {559, 0, undefined}; avp_header('ICMP-Code') -> {547, 0, undefined}; avp_header('ICMP-Type') -> {545, 0, undefined}; avp_header('ICMP-Type-Number') -> {546, 0, undefined}; avp_header('IP-Address') -> {518, 0, undefined}; avp_header('IP-Address-End') -> {521, 0, undefined}; avp_header('IP-Address-Mask') -> {522, 0, undefined}; avp_header('IP-Address-Range') -> {519, 0, undefined}; avp_header('IP-Address-Start') -> {520, 0, undefined}; avp_header('IP-Mask-Bit-Mask-Width') -> {523, 0, undefined}; avp_header('IP-Option') -> {537, 0, undefined}; avp_header('IP-Option-Type') -> {538, 0, undefined}; avp_header('IP-Option-Value') -> {539, 0, undefined}; avp_header('Low-User-Priority') -> {558, 0, undefined}; avp_header('MAC-Address') -> {524, 0, undefined}; avp_header('MAC-Address-Mask') -> {525, 0, undefined}; avp_header('MAC-Address-Mask-Pattern') -> {526, 0, undefined}; avp_header('Month-Of-Year-Mask') -> {565, 0, undefined}; avp_header('Negated') -> {517, 0, undefined}; avp_header('Port') -> {530, 0, undefined}; avp_header('Port-End') -> {533, 0, undefined}; avp_header('Port-Range') -> {531, 0, undefined}; avp_header('Port-Start') -> {532, 0, undefined}; avp_header('Protocol') -> {513, 0, undefined}; avp_header('QoS-Capability') -> {578, 0, undefined}; avp_header('QoS-Parameters') -> {576, 0, undefined}; avp_header('QoS-Profile-Id') -> {573, 0, undefined}; avp_header('QoS-Profile-Template') -> {574, 0, undefined}; avp_header('QoS-Resources') -> {508, 0, undefined}; avp_header('QoS-Semantics') -> {575, 0, undefined}; avp_header('S-VID-End') -> {554, 0, undefined}; avp_header('S-VID-Start') -> {553, 0, undefined}; avp_header('TCP-Flag-Type') -> {544, 0, undefined}; avp_header('TCP-Flags') -> {543, 0, undefined}; avp_header('TCP-Option') -> {540, 0, undefined}; avp_header('TCP-Option-Type') -> {541, 0, undefined}; avp_header('TCP-Option-Value') -> {542, 0, undefined}; avp_header('Time-Of-Day-Condition') -> {560, 0, undefined}; avp_header('Time-Of-Day-End') -> {562, 0, undefined}; avp_header('Time-Of-Day-Start') -> {561, 0, undefined}; avp_header('Timezone-Flag') -> {570, 0, undefined}; avp_header('Timezone-Offset') -> {571, 0, undefined}; avp_header('To-Spec') -> {516, 0, undefined}; avp_header('Treatment-Action') -> {572, 0, undefined}; avp_header('Use-Assigned-Address') -> {534, 0, undefined}; avp_header('User-Priority-Range') -> {557, 0, undefined}; avp_header('VLAN-ID-Range') -> {552, 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, 'Absolute-End-Fractional-Seconds', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Absolute-End-Time', Opts) -> diameter_types:'Time'(T, Data, Opts); avp(T, Data, 'Absolute-Start-Fractional-Seconds', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Absolute-Start-Time', Opts) -> diameter_types:'Time'(T, Data, Opts); avp(T, Data, 'C-VID-End', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'C-VID-Start', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Classifier', Opts) -> grouped_avp(T, 'Classifier', Data, Opts); avp(T, Data, 'Classifier-ID', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'Day-Of-Month-Mask', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Day-Of-Week-Mask', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Diffserv-Code-Point', _) -> enumerated_avp(T, 'Diffserv-Code-Point', Data); avp(T, Data, 'Direction', _) -> enumerated_avp(T, 'Direction', Data); avp(T, Data, 'ETH-Ether-Type', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'ETH-Option', Opts) -> grouped_avp(T, 'ETH-Option', Data, Opts); avp(T, Data, 'ETH-Proto-Type', Opts) -> grouped_avp(T, 'ETH-Proto-Type', Data, Opts); avp(T, Data, 'ETH-SAP', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'EUI64-Address', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'EUI64-Address-Mask', Opts) -> grouped_avp(T, 'EUI64-Address-Mask', Data, Opts); avp(T, Data, 'EUI64-Address-Mask-Pattern', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'Excess-Treatment', Opts) -> grouped_avp(T, 'Excess-Treatment', Data, Opts); avp(T, Data, 'Filter-Rule', Opts) -> grouped_avp(T, 'Filter-Rule', Data, Opts); avp(T, Data, 'Filter-Rule-Precedence', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Fragmentation-Flag', _) -> enumerated_avp(T, 'Fragmentation-Flag', Data); avp(T, Data, 'From-Spec', Opts) -> grouped_avp(T, 'From-Spec', Data, Opts); avp(T, Data, 'High-User-Priority', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'ICMP-Code', _) -> enumerated_avp(T, 'ICMP-Code', Data); avp(T, Data, 'ICMP-Type', Opts) -> grouped_avp(T, 'ICMP-Type', Data, Opts); avp(T, Data, 'ICMP-Type-Number', _) -> enumerated_avp(T, 'ICMP-Type-Number', Data); avp(T, Data, 'IP-Address', Opts) -> diameter_types:'Address'(T, Data, Opts); avp(T, Data, 'IP-Address-End', Opts) -> diameter_types:'Address'(T, Data, Opts); avp(T, Data, 'IP-Address-Mask', Opts) -> grouped_avp(T, 'IP-Address-Mask', Data, Opts); avp(T, Data, 'IP-Address-Range', Opts) -> grouped_avp(T, 'IP-Address-Range', Data, Opts); avp(T, Data, 'IP-Address-Start', Opts) -> diameter_types:'Address'(T, Data, Opts); avp(T, Data, 'IP-Mask-Bit-Mask-Width', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'IP-Option', Opts) -> grouped_avp(T, 'IP-Option', Data, Opts); avp(T, Data, 'IP-Option-Type', _) -> enumerated_avp(T, 'IP-Option-Type', Data); avp(T, Data, 'IP-Option-Value', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'Low-User-Priority', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'MAC-Address', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'MAC-Address-Mask', Opts) -> grouped_avp(T, 'MAC-Address-Mask', Data, Opts); avp(T, Data, 'MAC-Address-Mask-Pattern', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'Month-Of-Year-Mask', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Negated', _) -> enumerated_avp(T, 'Negated', Data); avp(T, Data, 'Port', Opts) -> diameter_types:'Integer32'(T, Data, Opts); avp(T, Data, 'Port-End', Opts) -> diameter_types:'Integer32'(T, Data, Opts); avp(T, Data, 'Port-Range', Opts) -> grouped_avp(T, 'Port-Range', Data, Opts); avp(T, Data, 'Port-Start', Opts) -> diameter_types:'Integer32'(T, Data, Opts); avp(T, Data, 'Protocol', _) -> enumerated_avp(T, 'Protocol', Data); avp(T, Data, 'QoS-Capability', Opts) -> grouped_avp(T, 'QoS-Capability', Data, Opts); avp(T, Data, 'QoS-Parameters', Opts) -> grouped_avp(T, 'QoS-Parameters', Data, Opts); avp(T, Data, 'QoS-Profile-Id', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'QoS-Profile-Template', Opts) -> grouped_avp(T, 'QoS-Profile-Template', Data, Opts); avp(T, Data, 'QoS-Resources', Opts) -> grouped_avp(T, 'QoS-Resources', Data, Opts); avp(T, Data, 'QoS-Semantics', _) -> enumerated_avp(T, 'QoS-Semantics', Data); avp(T, Data, 'S-VID-End', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'S-VID-Start', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'TCP-Flag-Type', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'TCP-Flags', Opts) -> grouped_avp(T, 'TCP-Flags', Data, Opts); avp(T, Data, 'TCP-Option', Opts) -> grouped_avp(T, 'TCP-Option', Data, Opts); avp(T, Data, 'TCP-Option-Type', _) -> enumerated_avp(T, 'TCP-Option-Type', Data); avp(T, Data, 'TCP-Option-Value', Opts) -> diameter_types:'OctetString'(T, Data, Opts); avp(T, Data, 'Time-Of-Day-Condition', Opts) -> grouped_avp(T, 'Time-Of-Day-Condition', Data, Opts); avp(T, Data, 'Time-Of-Day-End', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Time-Of-Day-Start', Opts) -> diameter_types:'Unsigned32'(T, Data, Opts); avp(T, Data, 'Timezone-Flag', _) -> enumerated_avp(T, 'Timezone-Flag', Data); avp(T, Data, 'Timezone-Offset', Opts) -> diameter_types:'Integer32'(T, Data, Opts); avp(T, Data, 'To-Spec', Opts) -> grouped_avp(T, 'To-Spec', Data, Opts); avp(T, Data, 'Treatment-Action', _) -> enumerated_avp(T, 'Treatment-Action', Data); avp(T, Data, 'Use-Assigned-Address', _) -> enumerated_avp(T, 'Use-Assigned-Address', Data); avp(T, Data, 'User-Priority-Range', Opts) -> grouped_avp(T, 'User-Priority-Range', Data, Opts); avp(T, Data, 'VLAN-ID-Range', Opts) -> grouped_avp(T, 'VLAN-ID-Range', 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(decode, 'Protocol', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Protocol', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Direction', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Direction', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Direction', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Direction', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'Direction', <<0, 0, 0, 2>>) -> 2; enumerated_avp(encode, 'Direction', 2) -> <<0, 0, 0, 2>>; enumerated_avp(decode, 'Negated', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Negated', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Negated', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Negated', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'Use-Assigned-Address', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Use-Assigned-Address', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Use-Assigned-Address', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Use-Assigned-Address', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'Diffserv-Code-Point', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Diffserv-Code-Point', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Fragmentation-Flag', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Fragmentation-Flag', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Fragmentation-Flag', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Fragmentation-Flag', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'IP-Option-Type', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'IP-Option-Type', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'TCP-Option-Type', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'TCP-Option-Type', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'ICMP-Type-Number', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'ICMP-Type-Number', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'ICMP-Code', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'ICMP-Code', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Timezone-Flag', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Timezone-Flag', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Timezone-Flag', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Timezone-Flag', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'Timezone-Flag', <<0, 0, 0, 2>>) -> 2; enumerated_avp(encode, 'Timezone-Flag', 2) -> <<0, 0, 0, 2>>; enumerated_avp(decode, 'Treatment-Action', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'Treatment-Action', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'Treatment-Action', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'Treatment-Action', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'Treatment-Action', <<0, 0, 0, 2>>) -> 2; enumerated_avp(encode, 'Treatment-Action', 2) -> <<0, 0, 0, 2>>; enumerated_avp(decode, 'Treatment-Action', <<0, 0, 0, 3>>) -> 3; enumerated_avp(encode, 'Treatment-Action', 3) -> <<0, 0, 0, 3>>; enumerated_avp(decode, 'QoS-Semantics', <<0, 0, 0, 0>>) -> 0; enumerated_avp(encode, 'QoS-Semantics', 0) -> <<0, 0, 0, 0>>; enumerated_avp(decode, 'QoS-Semantics', <<0, 0, 0, 1>>) -> 1; enumerated_avp(encode, 'QoS-Semantics', 1) -> <<0, 0, 0, 1>>; enumerated_avp(decode, 'QoS-Semantics', <<0, 0, 0, 2>>) -> 2; enumerated_avp(encode, 'QoS-Semantics', 2) -> <<0, 0, 0, 2>>; enumerated_avp(decode, 'QoS-Semantics', <<0, 0, 0, 3>>) -> 3; enumerated_avp(encode, 'QoS-Semantics', 3) -> <<0, 0, 0, 3>>; enumerated_avp(decode, 'QoS-Semantics', <<0, 0, 0, 4>>) -> 4; enumerated_avp(encode, 'QoS-Semantics', 4) -> <<0, 0, 0, 4>>; enumerated_avp(_, _, _) -> erlang:error(badarg). empty_value('QoS-Resources', Opts) -> empty_group('QoS-Resources', Opts); empty_value('Filter-Rule', Opts) -> empty_group('Filter-Rule', Opts); empty_value('Classifier', Opts) -> empty_group('Classifier', Opts); empty_value('From-Spec', Opts) -> empty_group('From-Spec', Opts); empty_value('To-Spec', Opts) -> empty_group('To-Spec', Opts); empty_value('IP-Address-Range', Opts) -> empty_group('IP-Address-Range', Opts); empty_value('IP-Address-Mask', Opts) -> empty_group('IP-Address-Mask', Opts); empty_value('MAC-Address-Mask', Opts) -> empty_group('MAC-Address-Mask', Opts); empty_value('EUI64-Address-Mask', Opts) -> empty_group('EUI64-Address-Mask', Opts); empty_value('Port-Range', Opts) -> empty_group('Port-Range', Opts); empty_value('IP-Option', Opts) -> empty_group('IP-Option', Opts); empty_value('TCP-Option', Opts) -> empty_group('TCP-Option', Opts); empty_value('TCP-Flags', Opts) -> empty_group('TCP-Flags', Opts); empty_value('ICMP-Type', Opts) -> empty_group('ICMP-Type', Opts); empty_value('ETH-Option', Opts) -> empty_group('ETH-Option', Opts); empty_value('ETH-Proto-Type', Opts) -> empty_group('ETH-Proto-Type', Opts); empty_value('VLAN-ID-Range', Opts) -> empty_group('VLAN-ID-Range', Opts); empty_value('User-Priority-Range', Opts) -> empty_group('User-Priority-Range', Opts); empty_value('Time-Of-Day-Condition', Opts) -> empty_group('Time-Of-Day-Condition', Opts); empty_value('QoS-Profile-Template', Opts) -> empty_group('QoS-Profile-Template', Opts); empty_value('QoS-Parameters', Opts) -> empty_group('QoS-Parameters', Opts); empty_value('Excess-Treatment', Opts) -> empty_group('Excess-Treatment', Opts); empty_value('QoS-Capability', Opts) -> empty_group('QoS-Capability', 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('Protocol', _) -> <<0, 0, 0, 0>>; empty_value('Direction', _) -> <<0, 0, 0, 0>>; empty_value('Negated', _) -> <<0, 0, 0, 0>>; empty_value('Use-Assigned-Address', _) -> <<0, 0, 0, 0>>; empty_value('Diffserv-Code-Point', _) -> <<0, 0, 0, 0>>; empty_value('Fragmentation-Flag', _) -> <<0, 0, 0, 0>>; empty_value('IP-Option-Type', _) -> <<0, 0, 0, 0>>; empty_value('TCP-Option-Type', _) -> <<0, 0, 0, 0>>; empty_value('ICMP-Type-Number', _) -> <<0, 0, 0, 0>>; empty_value('ICMP-Code', _) -> <<0, 0, 0, 0>>; empty_value('Timezone-Flag', _) -> <<0, 0, 0, 0>>; empty_value('Treatment-Action', _) -> <<0, 0, 0, 0>>; empty_value('QoS-Semantics', _) -> <<0, 0, 0, 0>>; 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, [{"Absolute-End-Fractional-Seconds", 569, "Unsigned32", []}, {"Absolute-End-Time", 568, "Time", []}, {"Absolute-Start-Fractional-Seconds", 567, "Unsigned32", []}, {"Absolute-Start-Time", 566, "Time", []}, {"C-VID-End", 556, "Unsigned32", []}, {"C-VID-Start", 555, "Unsigned32", []}, {"Classifier", 511, "Grouped", []}, {"Classifier-ID", 512, "OctetString", []}, {"Day-Of-Month-Mask", 564, "Unsigned32", []}, {"Day-Of-Week-Mask", 563, "Unsigned32", []}, {"Diffserv-Code-Point", 535, "Enumerated", []}, {"Direction", 514, "Enumerated", []}, {"ETH-Ether-Type", 550, "OctetString", []}, {"ETH-Option", 548, "Grouped", []}, {"ETH-Proto-Type", 549, "Grouped", []}, {"ETH-SAP", 551, "OctetString", []}, {"EUI64-Address", 527, "OctetString", []}, {"EUI64-Address-Mask", 528, "Grouped", []}, {"EUI64-Address-Mask-Pattern", 529, "OctetString", []}, {"Excess-Treatment", 577, "Grouped", []}, {"Filter-Rule", 509, "Grouped", []}, {"Filter-Rule-Precedence", 510, "Unsigned32", []}, {"Fragmentation-Flag", 536, "Enumerated", []}, {"From-Spec", 515, "Grouped", []}, {"High-User-Priority", 559, "Unsigned32", []}, {"ICMP-Code", 547, "Enumerated", []}, {"ICMP-Type", 545, "Grouped", []}, {"ICMP-Type-Number", 546, "Enumerated", []}, {"IP-Address", 518, "Address", []}, {"IP-Address-End", 521, "Address", []}, {"IP-Address-Mask", 522, "Grouped", []}, {"IP-Address-Range", 519, "Grouped", []}, {"IP-Address-Start", 520, "Address", []}, {"IP-Mask-Bit-Mask-Width", 523, "Unsigned32", []}, {"IP-Option", 537, "Grouped", []}, {"IP-Option-Type", 538, "Enumerated", []}, {"IP-Option-Value", 539, "OctetString", []}, {"Low-User-Priority", 558, "Unsigned32", []}, {"MAC-Address", 524, "OctetString", []}, {"MAC-Address-Mask", 525, "Grouped", []}, {"MAC-Address-Mask-Pattern", 526, "OctetString", []}, {"Month-Of-Year-Mask", 565, "Unsigned32", []}, {"Negated", 517, "Enumerated", []}, {"Port", 530, "Integer32", []}, {"Port-End", 533, "Integer32", []}, {"Port-Range", 531, "Grouped", []}, {"Port-Start", 532, "Integer32", []}, {"Protocol", 513, "Enumerated", []}, {"QoS-Capability", 578, "Grouped", []}, {"QoS-Parameters", 576, "Grouped", []}, {"QoS-Profile-Id", 573, "Unsigned32", []}, {"QoS-Profile-Template", 574, "Grouped", []}, {"QoS-Resources", 508, "Grouped", []}, {"QoS-Semantics", 575, "Enumerated", []}, {"S-VID-End", 554, "Unsigned32", []}, {"S-VID-Start", 553, "Unsigned32", []}, {"TCP-Flag-Type", 544, "Unsigned32", []}, {"TCP-Flags", 543, "Grouped", []}, {"TCP-Option", 540, "Grouped", []}, {"TCP-Option-Type", 541, "Enumerated", []}, {"TCP-Option-Value", 542, "OctetString", []}, {"Time-Of-Day-Condition", 560, "Grouped", []}, {"Time-Of-Day-End", 562, "Unsigned32", []}, {"Time-Of-Day-Start", 561, "Unsigned32", []}, {"Timezone-Flag", 570, "Enumerated", []}, {"Timezone-Offset", 571, "Integer32", []}, {"To-Spec", 516, "Grouped", []}, {"Treatment-Action", 572, "Enumerated", []}, {"Use-Assigned-Address", 534, "Enumerated", []}, {"User-Priority-Range", 557, "Grouped", []}, {"VLAN-ID-Range", 552, "Grouped", []}]}, {avp_vendor_id, []}, {codecs, []}, {command_codes, []}, {custom_types, []}, {define, []}, {enum, [{"Protocol", [{"PROTOCOL_TODO_CHECK_RFC2780", 0}]}, {"Direction", [{"DIRECTION_IN", 0}, {"DIRECTION_OUT", 1}, {"DIRECTION_BOTH", 2}]}, {"Negated", [{"NEGATED_FALSE", 0}, {"NEGATED_TRUE", 1}]}, {"Use-Assigned-Address", [{"USE_ASSIGNED_ADDRESS_FALSE", 0}, {"USE_ASSIGNED_ADDRESS_TRUE", 1}]}, {"Diffserv-Code-Point", [{"DIFFSERV_CODE_POINT_TODO_CHECK_RFC2474", 0}]}, {"Fragmentation-Flag", [{"FRAGMENTATION_FLAG_DF", 0}, {"FRAGMENTATION_FLAG_MF", 1}]}, {"IP-Option-Type", [{"IP_OPTION_TYPE_TODO_CHECK_RFC2780", 0}]}, {"TCP-Option-Type", [{"TCP_OPTION_TYPE_TODO_CHECK_RFC2780", 0}]}, {"ICMP-Type-Number", [{"ICMP_TYPE_NUMBER_TODO_CHECK_RFC2780", 0}]}, {"ICMP-Code", [{"ICMP_CODE_TODO_CHECK_RFC2780", 0}]}, {"Timezone-Flag", [{"TIMEZOME_FLAG_UTC", 0}, {"TIMEZOME_FLAG_LOCAL", 1}, {"TIMEZOME_FLAG_OFFSET", 2}]}, {"Treatment-Action", [{"TREATMENT_ACTION_DROP", 0}, {"TREATMENT_ACTION_SHAPE", 1}, {"TREATMENT_ACTION_MARK", 2}, {"TREATMENT_ACTION_PERMIT", 3}]}, {"QoS-Semantics", [{"QOS_SEMANTICS_DESIRED", 0}, {"QOS_SEMANTICS_AVAILABLE", 1}, {"QOS_SEMANTICS_DELIVERED", 2}, {"QOS_SEMANTICS_MINIMUM", 3}, {"QOS_SEMANTICS_AUTHORIZE", 4}]}]}, {grouped, [{"QoS-Resources", 508, [], [{'*', {"Filter-Rule"}}, {'*', ["AVP"]}]}, {"Filter-Rule", 509, [], [["Filter-Rule-Precedence"], ["Classifier"], {'*', ["Time-Of-Day-Condition"]}, ["Treatment-Action"], ["QoS-Semantics"], ["QoS-Profile-Template"], ["QoS-Parameters"], ["Excess-Treatment"], {'*', ["AVP"]}]}, {"Classifier", 511, [], [{"Classifier-ID"}, ["Protocol"], ["Direction"], {'*', ["From-Spec"]}, {'*', ["To-Spec"]}, {'*', ["Diffserv-Code-Point"]}, ["Fragmentation-Flag"], {'*', ["IP-Option"]}, {'*', ["TCP-Option"]}, ["TCP-Flags"], {'*', ["ICMP-Type"]}, {'*', ["ETH-Option"]}, {'*', ["AVP"]}]}, {"From-Spec", 515, [], [{'*', ["IP-Address"]}, {'*', ["IP-Address-Range"]}, {'*', ["IP-Address-Mask"]}, {'*', ["MAC-Address"]}, {'*', ["MAC-Address-Mask"]}, {'*', ["EUI64-Address"]}, {'*', ["EUI64-Address-Mask"]}, {'*', ["Port"]}, {'*', ["Port-Range"]}, ["Negated"], ["Use-Assigned-Address"], {'*', ["AVP"]}]}, {"To-Spec", 516, [], [{'*', ["IP-Address"]}, {'*', ["IP-Address-Range"]}, {'*', ["IP-Address-Mask"]}, {'*', ["MAC-Address"]}, {'*', ["MAC-Address-Mask"]}, {'*', ["EUI64-Address"]}, {'*', ["EUI64-Address-Mask"]}, {'*', ["Port"]}, {'*', ["Port-Range"]}, ["Negated"], ["Use-Assigned-Address"], {'*', ["AVP"]}]}, {"IP-Address-Range", 519, [], [["IP-Address-Start"], ["IP-Address-End"], {'*', ["AVP"]}]}, {"IP-Address-Mask", 522, [], [{"IP-Address"}, {"IP-Mask-Bit-Mask-Width"}, {'*', ["AVP"]}]}, {"MAC-Address-Mask", 525, [], [{"MAC-Address"}, {"MAC-Address-Mask-Pattern"}, {'*', ["AVP"]}]}, {"EUI64-Address-Mask", 528, [], [{"EUI64-Address"}, {"EUI64-Address-Mask-Pattern"}, {'*', ["AVP"]}]}, {"Port-Range", 531, [], [["Port-Start"], ["Port-End"], {'*', ["AVP"]}]}, {"IP-Option", 537, [], [{"IP-Option-Type"}, {'*', ["IP-Option-Value"]}, ["Negated"], {'*', ["AVP"]}]}, {"TCP-Option", 540, [], [{"TCP-Option-Type"}, {'*', ["TCP-Option-Value"]}, ["Negated"], {'*', ["AVP"]}]}, {"TCP-Flags", 543, [], [{"TCP-Flag-Type"}, ["Negated"], {'*', ["AVP"]}]}, {"ICMP-Type", 545, [], [{"ICMP-Type-Number"}, {'*', ["ICMP-Code"]}, ["Negated"], {'*', ["AVP"]}]}, {"ETH-Option", 548, [], [{"ETH-Proto-Type"}, {'*', ["VLAN-ID-Range"]}, {'*', ["User-Priority-Range"]}, {'*', ["AVP"]}]}, {"ETH-Proto-Type", 549, [], [{'*', ["ETH-Ether-Type"]}, {'*', ["ETH-SAP"]}, {'*', ["AVP"]}]}, {"VLAN-ID-Range", 552, [], [["S-VID-Start"], ["S-VID-End"], ["C-VID-Start"], ["C-VID-End"], {'*', ["AVP"]}]}, {"User-Priority-Range", 557, [], [{'*', ["Low-User-Priority"]}, {'*', ["High-User-Priority"]}, {'*', ["AVP"]}]}, {"Time-Of-Day-Condition", 560, [], [["Time-Of-Day-Start"], ["Time-Of-Day-End"], ["Day-Of-Week-Mask"], ["Day-Of-Month-Mask"], ["Month-Of-Year-Mask"], ["Absolute-Start-Time"], ["Absolute-End-Time"], ["Timezone-Flag"], {'*', ["AVP"]}]}, {"QoS-Profile-Template", 574, [], [{"Vendor-Id"}, {"QoS-Profile-Id"}, {'*', ["AVP"]}]}, {"QoS-Parameters", 576, [], [{'*', ["AVP"]}]}, {"Excess-Treatment", 577, [], [{"Treatment-Action"}, ["QoS-Profile-Template"], ["QoS-Parameters"], {'*', ["AVP"]}]}, {"QoS-Capability", 578, [], [{'*', {"QoS-Profile-Template"}}, {'*', ["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, []}].