;; ;; %CopyrightBegin% ;; ;; Transcribed from RFC 5777 by Pau Espin Pedrol ;; ;; 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 ;; ;; https://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 5777, Traffic Classification and Quality of Service (QoS) Attributes for Diameter ;; @id 1 @inherits diameter_gen_base_rfc6733 ;;@inherits diameter_rfc4004 ;; =========================================================================== @avp_types QoS-Resources 508 Grouped - ;; 3.1 Filter-Rule 509 Grouped - ;; 3.2 Filter-Rule-Precedence 510 Unsigned32 - ;; 3.3 Classifier 511 Grouped - ;; 4.1.1 Classifier-ID 512 OctetString - ;; 4.1.2 Protocol 513 Enumerated - ;; 4.1.3 Direction 514 Enumerated - ;; 4.1.4 From-Spec 515 Grouped - ;; 4.1.5 To-Spec 516 Grouped - ;; 4.1.6 Negated 517 Enumerated - ;; 4.1.7.1 IP-Address 518 Address - ;; 4.1.7.2 IP-Address-Range 519 Grouped - ;; 4.1.7.3 IP-Address-Start 520 Address - ;; 4.1.7.4 IP-Address-End 521 Address - ;; 4.1.7.5 IP-Address-Mask 522 Grouped - ;; 4.1.7.6 IP-Mask-Bit-Mask-Width 523 Unsigned32 - ;; 4.1.7.7 MAC-Address 524 OctetString - ;; 4.1.7.8 MAC-Address-Mask 525 Grouped - ;; 4.1.7.9 MAC-Address-Mask-Pattern 526 OctetString - ;; 4.1.7.10 EUI64-Address 527 OctetString - ;; 4.1.7.11 EUI64-Address-Mask 528 Grouped - ;; 4.1.7.12 EUI64-Address-Mask-Pattern 529 OctetString - ;; 4.1.7.13 Port 530 Integer32 - ;; 4.1.7.14 Port-Range 531 Grouped - ;; 4.1.7.15 Port-Start 532 Integer32 - ;; 4.1.7.16 Port-End 533 Integer32 - ;; 4.1.7.17 Use-Assigned-Address 534 Enumerated - ;; 4.1.7.18 Diffserv-Code-Point 535 Enumerated - ;; 4.1.8.1 Fragmentation-Flag 536 Enumerated - ;; 4.1.8.2 IP-Option 537 Grouped - ;; 4.1.8.3 IP-Option-Type 538 Enumerated - ;; 4.1.8.4 IP-Option-Value 539 OctetString - ;; 4.1.8.5 TCP-Option 540 Grouped - ;; 4.1.8.6 TCP-Option-Type 541 Enumerated - ;; 4.1.8.7 TCP-Option-Value 542 OctetString - ;; 4.1.8.8 TCP-Flags 543 Grouped - ;; 4.1.8.9 TCP-Flag-Type 544 Unsigned32 - ;; 4.1.8.10 ICMP-Type 545 Grouped - ;; 4.1.8.11 ICMP-Type-Number 546 Enumerated - ;; 4.1.8.12 ICMP-Code 547 Enumerated - ;; 4.1.8.13 ETH-Option 548 Grouped - ;; 4.1.8.14 ETH-Proto-Type 549 Grouped - ;; 4.1.8.15 ETH-Ether-Type 550 OctetString - ;; 4.1.8.16 ETH-SAP 551 OctetString - ;; 4.1.8.17 VLAN-ID-Range 552 Grouped - ;; 4.1.8.18 S-VID-Start 553 Unsigned32 - ;; 4.1.8.19 S-VID-End 554 Unsigned32 - ;; 4.1.8.20 C-VID-Start 555 Unsigned32 - ;; 4.1.8.21 C-VID-End 556 Unsigned32 - ;; 4.1.8.22 User-Priority-Range 557 Grouped - ;; 4.1.8.23 Low-User-Priority 558 Unsigned32 - ;; 4.1.8.24 High-User-Priority 559 Unsigned32 - ;; 4.1.8.25 Time-Of-Day-Condition 560 Grouped - ;; 4.2.1 Time-Of-Day-Start 561 Unsigned32 - ;; 4.2.2 Time-Of-Day-End 562 Unsigned32 - ;; 4.2.3 Day-Of-Week-Mask 563 Unsigned32 - ;; 4.2.4 Day-Of-Month-Mask 564 Unsigned32 - ;; 4.2.5 Month-Of-Year-Mask 565 Unsigned32 - ;; 4.2.6 Absolute-Start-Time 566 Time - ;; 4.2.7 Absolute-Start-Fractional-Seconds 567 Unsigned32 - ;; 4.2.8 Absolute-End-Time 568 Time - ;; 4.2.9 Absolute-End-Fractional-Seconds 569 Unsigned32 - ;; 4.2.10 Timezone-Flag 570 Enumerated - ;; 4.2.11 Timezone-Offset 571 Integer32 - ;; 4.2.12 Treatment-Action 572 Enumerated - ;; 5.1, wrongly defined as Grouped in RFC table QoS-Profile-Id 573 Unsigned32 - ;; 5.2 QoS-Profile-Template 574 Grouped - ;; 5.3 QoS-Semantics 575 Enumerated - ;; 5.4 QoS-Parameters 576 Grouped - ;; 5.5 Excess-Treatment 577 Grouped - ;; 5.6 QoS-Capability 578 Grouped - ;; 6 ;; =========================================================================== @grouped ;; 3.1 QoS-Resources ::= < AVP Header: 508 > 1*{ Filter-Rule } *[ AVP ] ;; 3.2 Filter-Rule ::= < AVP Header: 509 > [ Filter-Rule-Precedence ] ;; Condition part of a Rule ;; ------------------------ [ Classifier ] *[ Time-Of-Day-Condition ] ;; Action and Meta-Data ;; -------------------- [ Treatment-Action ] ;; Info about QoS related Actions ;; ------------------------------ [ QoS-Semantics ] [ QoS-Profile-Template ] [ QoS-Parameters ] [ Excess-Treatment ] ;; Extension Point ;; --------------- *[ AVP ] ;; 4.1.1. Classifier ::= < AVP Header: 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 ] ;; 4.1.5. From-Spec ::= < AVP Header: 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 ] ;; 4.1.6 To-Spec ::= < AVP Header: 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 ] ;; 4.1.7.3. IP-Address-Range ::= < AVP Header: 519 > [ IP-Address-Start ] [ IP-Address-End ] *[ AVP ] ;; 4.1.7.6 IP-Address-Mask ::= < AVP Header: 522 > { IP-Address } { IP-Mask-Bit-Mask-Width } *[ AVP ] ;; 4.1.7.9. MAC-Address-Mask ::= < AVP Header: 525 > { MAC-Address } { MAC-Address-Mask-Pattern } *[ AVP ] ;; 4.1.7.12. EUI64-Address-Mask ::= < AVP Header: 528 > { EUI64-Address } { EUI64-Address-Mask-Pattern } *[ AVP ] ;; 4.1.7.15. Port-Range ::= < AVP Header: 531 > [ Port-Start ] [ Port-End ] *[ AVP ] ;; 4.1.8.3. IP-Option ::= < AVP Header: 537 > { IP-Option-Type } *[ IP-Option-Value ] [ Negated ] *[ AVP ] ;; 4.1.8.6. TCP-Option ::= < AVP Header: 540 > { TCP-Option-Type } *[ TCP-Option-Value ] [ Negated ] *[ AVP ] ;; 4.1.8.9. TCP-Flags ::= < AVP Header: 543 > { TCP-Flag-Type } [ Negated ] *[ AVP ] ;; 4.1.8.11 ICMP-Type ::= < AVP Header: 545 > { ICMP-Type-Number } *[ ICMP-Code ] [ Negated ] *[ AVP ] ;; 4.1.8.14 ETH-Option ::= < AVP Header: 548 > { ETH-Proto-Type } *[ VLAN-ID-Range ] *[ User-Priority-Range ] *[ AVP ] ;; 4.1.8.15 ETH-Proto-Type ::= < AVP Header: 549 > *[ ETH-Ether-Type ] *[ ETH-SAP ] *[ AVP ] ;; 4.1.8.18 VLAN-ID-Range ::= < AVP Header: 552 > [ S-VID-Start ] [ S-VID-End ] [ C-VID-Start ] [ C-VID-End ] *[ AVP ] ;; 4.1.8.23 User-Priority-Range ::= < AVP Header: 557 > *[ Low-User-Priority ] *[ High-User-Priority ] *[ AVP ] ;; 4.2.1 Time-Of-Day-Condition ::= < AVP Header: 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 ] ;; 5.3 QoS-Profile-Template ::= < AVP Header: 574 > { Vendor-Id } { QoS-Profile-Id } *[ AVP ] ;; 5.5 QoS-Parameters ::= < AVP Header: 576 > *[ AVP ] ;; 5.6 Excess-Treatment ::= < AVP Header: 577 > { Treatment-Action } [ QoS-Profile-Template ] [ QoS-Parameters ] *[ AVP ] ;; 6. QoS-Capability ::= < AVP Header: 578 > 1*{ QoS-Profile-Template } *[ AVP ] ;; =========================================================================== ;; 4.1.3. @enum Protocol PROTOCOL_TODO_CHECK_RFC2780 0 ;; 4.1.4. @enum Direction DIRECTION_IN 0 DIRECTION_OUT 1 DIRECTION_BOTH 2 ;; 4.1.7.1. @enum Negated NEGATED_FALSE 0 NEGATED_TRUE 1 ;; 4.1.7.18 @enum Use-Assigned-Address USE_ASSIGNED_ADDRESS_FALSE 0 USE_ASSIGNED_ADDRESS_TRUE 1 ;; 4.1.8.1. @enum Diffserv-Code-Point DIFFSERV_CODE_POINT_TODO_CHECK_RFC2474 0 ;; 4.1.8.2. @enum Fragmentation-Flag FRAGMENTATION_FLAG_DF 0 FRAGMENTATION_FLAG_MF 1 ;; 4.1.8.4 @enum IP-Option-Type IP_OPTION_TYPE_TODO_CHECK_RFC2780 0 ;; 4.1.8.7. @enum TCP-Option-Type TCP_OPTION_TYPE_TODO_CHECK_RFC2780 0 ;; 4.1.8.12. @enum ICMP-Type-Number ICMP_TYPE_NUMBER_TODO_CHECK_RFC2780 0 ;; 4.1.8.13. @enum ICMP-Code ICMP_CODE_TODO_CHECK_RFC2780 0 ;; 4.2.11. @enum Timezone-Flag TIMEZOME_FLAG_UTC 0 TIMEZOME_FLAG_LOCAL 1 TIMEZOME_FLAG_OFFSET 2 ;; 5.1. @enum Treatment-Action TREATMENT_ACTION_DROP 0 TREATMENT_ACTION_SHAPE 1 TREATMENT_ACTION_MARK 2 TREATMENT_ACTION_PERMIT 3 ;; 5.4. @enum QoS-Semantics QOS_SEMANTICS_DESIRED 0 QOS_SEMANTICS_AVAILABLE 1 QOS_SEMANTICS_DELIVERED 2 QOS_SEMANTICS_MINIMUM 3 QOS_SEMANTICS_AUTHORIZE 4