Quality of Service [RFC5777] AVPs
Traffic Classification and Quality of Service (QoS) Attributes for Diameter (RFC5777)
This interface defines a set of Diameter attribute-value pairs (AVPs) for traffic classification that include filtering actions and Quality of Service (QoS) treatment.
Purpose of the Traffic Classification and QoS Attributes Interface
- Uniform Traffic Classification: The interface revises the earlier IPFilterRule and QoSFilterRule AVPs, which relied on free-text syntax inspired by the FreeBSD ipfw tool. It introduces a native Diameter syntax for traffic classification, ensuring consistency and extensibility.
- Enhanced QoS Treatment: An extensible set of actions is provided that supports both filtering and QoS treatment. This updated functionality meets the needs of modern networking environments by allowing granular control over traffic handling.
Key Elements
The QoS-Resources AVP represents a complete rule set. Each rule within this set is encapsulated by a Filter-Rule AVP that comprises:
- Guidelines for handling rule conflicts.
- A detailed set of criteria that may match all or a subset of data traffic.
- Specifies the type of traffic treatment and further QoS-related actions to be executed when conditions are met.
Flexible Matching Capabilities:
- The condition AVPs enable matching based on various criteria, including Ethernet-specific attributes that were not supported by previous specifications.
- Service differentiation can be achieved using attributes such as Ethernet priority bits, single or stacked VLAN IDs, Logical Link Control (LLC) attributes, MAC addresses, or any combination of these.
- Time-based conditions can also be expressed, allowing policies to apply based on specific temporal criteria (see Section 4.2).
Standards and Encoding:
- All QoS policy rules are defined as Diameter-encoded AVPs using a modified version of the Augmented Backus-Naur Form (ABNF) as specified in [RFC3588].
The AVP data types used are also derived from [RFC3588], ensuring compatibility and standardization across Diameter implementations.
For complete technical specification for Traffic Classification and Quality of Service (QoS) Attributes for Diameter please refer to: [RFC5777]
package com.mobius.software.telco.protocols.diameter.primitives.rfc5777
Name |
AVP Code |
Data Type |
Vendor |
Absolute-End-Fractional-Seconds |
569 |
Unsigned32 |
IETF |
Specifies the fractional seconds component added to the Absolute-End-Time value to determine the precise end time of a time window. If this AVP is absent from the Time-Of-Day-Condition AVP, the fractional seconds are assumed to be zero. Must be 0 ≤ value ≤ 999999999 (nanosecond precision). Example: 500000000 represents 0.5 seconds. |
|||
Absolute-End-Time |
568 |
Time |
IETF |
Defines the end time of a time window in seconds since January 1, 1900, 00:00 UTC. It is used to specify when the time-based condition associated with a policy, session, or metering rule expires. If this AVP is absent from the Time-Of-Day-Condition, the time window is treated as open-ended, implying no expiration. |
|||
Absolute-Start-Fractional-Seconds |
567 |
Unsigned32 |
IETF |
Defines the fractional seconds component that is added to the Absolute-Start-Time AVP (566) to determine the precise start time of a time window. If this AVP is absent, the fractional seconds default to zero. Encodes the fractional second part of the start time as an integer value in microseconds (1/1,000,000 seconds). Must be used in compliance with the Time-Of-Day-Condition AVP, ensuring synchronization between absolute time and fractional precision. |
|||
Absolute-Start-Time |
566 |
Time |
IETF |
Defines the absolute time at which a time window starts. It represents the time in seconds since January 1, 1900, 00:00 UTC. If this AVP is absent from the Time-Of-Day-Condition AVP, the time window defaults to January 1, 1900, 00:00 UTC as the start time. Can be extended with Absolute-Start-Fractional-Seconds (567) for sub-second precision when required. |
|||
Classifier |
511 |
Grouped |
IETF |
Specifies packet-matching rules based on various protocol parameters. This AVP supports defining packet characteristics like protocol type, direction, source, destination, and options associated with different network layers (IP, TCP, ICMP, etc.). The AVP structure is defined as follows: Classifier-ID (Mandatory, OctetString): Unique identifier for the classifier instance. Protocol (Optional, Enumerated): Specifies the protocol to match (e.g., TCP, UDP). Direction (Optional, Enumerated): Indicates traffic direction (e.g., inbound, outbound). From-Spec (Optional, Multiple, Grouped): Specifies source criteria (e.g., IP address, port). To-Spec (Optional, Multiple, Grouped): Specifies destination criteria. Diffserv-Code-Point (Optional, Enumerated): Matches traffic based on DiffServ Code Points (DSCP). Fragmentation-Flag (Optional, Enumerated): Specifies rules based on fragmentation status. IP-Option (Optional, Multiple, Grouped): Matches packets based on specific IP options. TCP-Option (Optional, Multiple, Grouped): Matches packets based on TCP options. TCP-Flags (Optional, Enumerated): Matches packets using TCP control flags (e.g., SYN, ACK). ICMP-Type (Optional, Enumerated): Matches ICMP message types. ETH-Option (Optional, Multiple, Grouped): Matches packets based on Ethernet layer attributes. |
|||
Classifier-ID |
512 |
OctetString |
IETF |
Serves as a unique identifier for a classifier within the Classifier AVP. Its primary purpose is to distinguish between different classifiers, enabling precise definition and identification of traffic-matching rules. The scope of uniqueness for this identifier is application-specific—it can be unique per terminal, globally unique, or constrained within a local deployment based on the application requirements. This AVP MUST always be included within a Classifier AVP and cannot appear outside of it. |
|||
C-VID-End |
556 |
Unsigned32 |
IETF |
Specifies the end value of a range of VLAN IDs (C-VID) to be matched within a classifier. This AVP is used in traffic filtering or policy enforcement rules based on VLAN tagging in Ethernet networks. It represents the highest VLAN ID in a range that is subject to matching criteria, allowing definition of inclusive ranges between a start and end VLAN ID. This AVP is particularly useful in scenarios where grouped VLAN filtering is required rather than individual VLAN matching. The value MUST be in the range 0 to 4095, as defined by the 12-bit VLAN ID field in IEEE 802.1Q standards. Typically used alongside the C-VID-Start AVP (555) to define a range of VLAN IDs. The C-VID-Start must always be less than or equal to C-VID-End for a valid range definition. Multiple instances of this AVP can be included in a Classifier AVP when defining multiple VLAN ranges for matching. If this AVP is absent, implementations MUST default to matching a single VLAN ID defined by the C-VID-Start AVP. |
|||
C-VID-Start |
555 |
Unsigned32 |
IETF |
Specifies the start value of a range of VLAN IDs (C-VID) to be matched within a classifier. It is used in traffic filtering or policy enforcement rules based on VLAN tagging in Ethernet networks. This AVP defines the lower bound of VLAN IDs in the specified range and is often paired with C-VID-End AVP (AVP Code 556) to create inclusive ranges for VLAN matching. The value MUST be in the range 0 to 4095, complying with the 12-bit VLAN ID field in IEEE 802.1Q standards. Typically used together with the C-VID-End AVP (556) to define a range of VLAN IDs. C-VID-Start must always be less than or equal to C-VID-End for a valid range definition. Multiple instances of this AVP can be included in a Classifier AVP when defining multiple VLAN ranges for matching. If C-VID-End is absent, the range is limited to a single VLAN ID defined by the C-VID-Start value. |
|||
Day-Of-Month-Mask |
564 |
Unsigned32 (Bitmask32) |
IETF |
Defines a bitmask representing specific days of the month for which a time window condition should match. Each bit position corresponds to a day of the month, starting with bit 0 for the 1st day and ending with bit 30 for the 31st day. Unused bits MUST be set to 0. Bits set outside the 31-day range are invalid and should raise an error. If this AVP is absent, the time window condition applies to all days of the month. Only one instance of this AVP can be used in a Time-Of-Day-Condition grouping. |
|||
Day-Of-Week-Mask |
563 |
Unsigned32 (Bitmask) |
IETF |
Used to specify a bitmask that defines the days of the week for which a time window is valid or applicable. Each bit in the bitmask corresponds to a specific day, starting from Sunday (Bit 0) to Saturday (Bit 6). The set bits indicate the days when the rule or condition applies, while unset bits are ignored. If this AVP is absent, the time window defaults to all days of the week. Bit Mapping: 0: Sunday 1: Monday 2: Tuesday 3: Wednesday 4: Thursday 5: Friday 6: Saturday Only Bits 0–6 are valid; invalid values (e.g., setting bits outside the range 0–6) MUST generate an error. Can select single or multiple days by setting multiple bits in the mask. If the AVP is absent, the condition applies to all days by default. |
|||
Diffserv-Code-Point |
535 |
Enumerated |
IETF |
Specifies the Differentiated Services Codepoints (DSCP) used to classify and prioritize IP packets in Differentiated Services (DiffServ) networks, as defined in [RFC 2474]. It maps to the DS field in the IP header, allowing routers and switches to handle packets with specific quality-of-service (QoS) policies. This AVP is particularly useful for traffic classification, prioritization, and bandwidth management in IP-based networks, enabling per-hop behavior (PHB) decisions. Values must comply with IANA’s Differentiated Services Field Codepoints registry. Defined Codepoints: Class Selectors (CS): Used for priority handling in legacy environments. Assured Forwarding (AF): Provides four classes (AF1–AF4) with three drop precedences each. Expedited Forwarding (EF): Offers low-loss, low-latency, and low-jitter services. VOICE-ADMIT: Reserved for admitted voice traffic requiring high reliability. If this AVP is absent, all traffic is treated as CS0 (Default Forwarding). Enumerated Values (IANA Defined): 0: CS0: Default Forwarding (Best Effort) 8: CS1: Priority Handling, Low Precedence 16: CS2: Priority Handling, Medium Precedence 24: CS3: Priority Handling, High Precedence 32: CS4: Critical Applications 40: CS5: Signaling Traffic 48: CS6: Network Control 56: CS7: Reserved for Highest Priority 10: AF11: Assured Forwarding, Low Drop (Class 1) 12: AF12: Assured Forwarding, Medium Drop (C1) 14: AF13: Assured Forwarding, High Drop (C1) 18: AF21: Assured Forwarding, Low Drop (Class 2) 20: AF22: Assured Forwarding, Medium Drop (C2) 22: AF23: Assured Forwarding, High Drop (C2) 26: AF31: Assured Forwarding, Low Drop (Class 3) 28: AF32: Assured Forwarding, Medium Drop (C3) 30: AF33: Assured Forwarding, High Drop (C3) 34: AF41: Assured Forwarding, Low Drop (Class 4) 36: AF42: Assured Forwarding, Medium Drop (C4) 38: AF43: Assured Forwarding, High Drop (C4) 46: EF: Expedited Forwarding (Low Latency) 44: VOICE_ADMIT: Reserved for Admitted Voice Traffic |
|||
Direction |
514 |
Enumerated |
IETF |
Specifies the flow direction for applying a classifier. It determines whether the traffic filtering rules are enforced on incoming, outgoing, or both directions of network flows related to a managed terminal. This AVP provides flexibility for defining classifiers based on the direction of data flow in traffic management and policy enforcement. If the Direction AVP is absent, the classifier is applied to both directions by default. Enumerated Values: 0 IN: The classifier applies to flows from the managed terminal (outbound traffic). 1 OUT: The classifier applies to flows to the managed terminal (inbound traffic). 2 BOTH: The classifier applies to flows in both directions—to and from the managed terminal. IN and BOTH:
OUT:
|
|||
ETH-Ether-Type |
550 |
OctetString |
IETF |
Represents the EtherType field in Ethernet frames, which identifies the protocol encapsulated within the frame. This AVP is used for packet classification and traffic filtering in Diameter-based policy management systems. The value is a 2-byte (16-bit) identifier stored as an OctetString, and it may indicate standard protocols such as IPv4 (0x0800), IPv6 (0x86DD), ARP (0x0806), and others. Compliant with IEEE 802.3 Ethernet frame definitions. Supports both DIX Ethernet II and SNAP encapsulation. Mutual Exclusivity with ETH-SAP AVP: ETH-SAP AVP must NOT be present if ETH-Ether-Type is specified, ensuring compatibility with different Ethernet encapsulation types. If absent, the AVP matches all EtherTypes in traffic. |
|||
ETH-Option |
548 |
Grouped |
IETF |
Used to specify Ethernet-specific attributes in the Diameter protocol, as defined in [RFC 5777]. It is designed to support network policies related to Ethernet flows, enabling detailed classification and handling of Ethernet traffic. The AVP structure is defined as follows: ETH-Proto-Type (Mandatory): Specifies the Ethernet Protocol Type to identify the protocol in use within the Ethernet frame (e.g., IPv4, IPv6, ARP). This field is mandatory and must be included to determine the protocol characteristics of the Ethernet traffic. VLAN-ID-Range (Optional, Multiple): Represents a list of VLAN ID ranges used for traffic classification and filtering based on VLAN tagging. Each entry defines a range of VLAN IDs, enabling policies for specific VLAN segments. Useful in network slicing and virtualized network environments for differentiated services. User-Priority-Range (Optional, Multiple): Defines priority ranges based on user-defined priority levels for Ethernet traffic. These priorities are aligned with IEEE 802.1Q standards, supporting traffic prioritization and QoS mechanisms. Allows classification of traffic for prioritization within Ethernet frames. Allows inclusion of additional attributes defined as AVPs, enabling extensibility for future enhancements or vendor-specific attributes. |
|||
ETH-Proto-Type |
549 |
Grouped |
IETF |
Used to specify the encapsulated protocol type for Ethernet traffic, as defined in [RFC 5777]. It is employed in Diameter-based network policies to identify protocol types within Ethernet frames, supporting traffic classification and enforcement. This AVP allows the definition of protocol type attributes through two mutually exclusive parameters — ETH-Ether-Type and ETH-SAP — enabling flexibility in handling protocol identification mechanisms. The AVP structure is defined as follows: ETH-Ether-Type (Optional, Multiple): Represents one or more 16-bit EtherType values as defined in the IEEE 802.3 standard. Used to indicate the protocol encapsulated in the Ethernet frame, such as IPv4 (0x0800), IPv6 (0x86DD), or ARP (0x0806). Enables classification based on specific protocol types for packet handling and QoS policies. ETH-SAP (Optional, Multiple): Specifies one or more 8-bit Service Access Point (SAP) identifiers, compliant with IEEE 802.2 LLC standards. Provides an alternative method to identify the protocol type, particularly for environments that use SAP addressing instead of EtherType. Useful in scenarios where protocols operate within logical link control layers. Allows for extensibility by including additional AVPs to support future enhancements or vendor-specific needs. |
|||
ETH-SAP |
551 |
OctetString |
IETF |
Used to specify the Service Access Point (SAP) identifiers in accordance with the IEEE 802.2 LLC standard. This AVP facilitates protocol identification and traffic classification in Ethernet-based networks using Logical Link Control (LLC) addressing. The value of this AVP is a double-octet representation of SAP addresses: First Octet: Destination Service Access Point (DSAP): Encoded in the first octet, it identifies the protocol or service that the Ethernet frame is intended for. Used for routing and filtering traffic within Ethernet frames based on the logical endpoint. Second Octet: Source Service Access Point (SSAP): Encoded in the second octet, it specifies the origin protocol or service within the Ethernet frame. Enables source identification for protocol-level communication. |
|||
EUI64-Address |
527 |
OctetString |
IETF |
Used to specify a single Layer 2 address in the EUI-64 (Extended Unique Identifier-64) format. This AVP provides a standardized method for identifying devices at the data link layer in Ethernet or other IEEE 802 networks. The value of this AVP is an 8-octet binary encoding of the address, represented exactly as it appears in the frame header. It is primarily used for identifying network interfaces in scenarios requiring unique and globally addressable identifiers. |
|||
EUI64-Address-Mask |
528 |
Grouped |
IETF |
Used to specify a range of EUI-64 addresses by applying a bit mask to match specific address patterns. This AVP is essential for classifying Ethernet traffic based on address ranges and supports policy enforcement and traffic filtering in networks utilizing EUI-64 addressing. The AVP enables flexible address matching by defining a base address and a corresponding mask pattern. The mask determines which bits in the base address must match, allowing for specification of address groups rather than individual addresses. The AVP structure is defined as follows: EUI64-Address (Mandatory): Encodes the base EUI-64 address in an 8-octet binary format. Serves as the starting point for address matching, defined as the address range's lower boundary. Typically derived from IEEE 802 identifiers to ensure uniqueness. EUI64-Address-Mask-Pattern (Mandatory): Encodes the mask pattern in an 8-octet binary format. Determines which bits in the base EUI-64 address must match. Bits set to '1' in the mask require an exact match, while bits set to '0' allow variation. Enables matching of address ranges rather than single addresses. Allows inclusion of additional attributes for extensibility or vendor-specific enhancements. |
|||
EUI64-Address-Mask-Pattern |
529 |
OctetString |
IETF |
Specifies an 8-octet bitmask used to define which bit positions in an EUI-64 address must match for classification or filtering purposes. This AVP is typically used in conjunction with the EUI64-Address-Mask AVP (528) to enable flexible and scalable address matching, allowing network policies to target ranges of Ethernet addresses rather than specific individual addresses. Mask Pattern (8 octets): Encodes the bitmask used for address matching. Each bit set to '1' specifies that the corresponding bit in the EUI64-Address AVP must match exactly. Each bit set to '0' allows variability at that position, enabling address range matching. Example: EUI64-Address: 00-10-A4-FF-FE-23-00-00 EUI64-Address-Mask-Pattern: FF-FF-FF-FF-FF-FF-00-00 Matches all addresses from 00-10-A4-FF-FE-23-00-00 to 00-10-A4-FF-FE-23-FF-FF. |
|||
Excess-Treatment |
577 |
Grouped |
IETF |
Specifies how out-of-profile traffic — traffic that exceeds the limits defined in the original QoS-Profile-Template and QoS-Parameters AVPs — should be treated. This AVP provides network nodes with explicit instructions for handling excess traffic by including information about treatment actions, alternative quality of service (QoS) profiles, and associated parameters. If this AVP is absent, the treatment of excess traffic is left to the discretion of the node applying QoS enforcement. The AVP structure is defined as follows: Treatment-Action (Mandatory): Specifies the action to be applied to out-of-profile traffic. Actions may include dropping packets, marking them for lower priority, or re-routing to specific queues. Ensures consistent handling of excess traffic in accordance with QoS policies. QoS-Profile-Template (Optional): Defines an alternative QoS profile to be applied to excess traffic. Allows administrators to specify different treatment parameters, ensuring flexibility in managing bursts of traffic that exceed initial allocations. QoS-Parameters (Optional): Provides additional details about QoS settings, such as bandwidth limits, latency thresholds, or jitter constraints, for excess traffic. Enables fine-grained control over traffic characteristics and policy enforcement. Allows for extensibility to include vendor-specific attributes or future enhancements to handle excess traffic. |
|||
Filter-Rule |
509 |
Grouped |
IETF |
Specifies a combination of conditions and actions used to enforce traffic filtering and Quality of Service (QoS) policies within Diameter-based networks. This AVP provides a flexible framework to define filtering rules for classifying packets based on specific criteria and applying associated QoS treatments. The AVP structure is defined as follows: Filter-Rule-Precedence (Optional): Indicates the precedence of this filter rule relative to other rules. Lower values represent higher precedence, ensuring prioritization when multiple rules are evaluated. Condition Parameters (Optional): Classifier: Defines criteria for identifying packets based on attributes such as source/destination IP address, port number, or protocol type. Used to classify traffic flows for QoS enforcement. Time-Of-Day-Condition (Optional, Multiple): Specifies time-based conditions for activating the filter rule. Allows time-dependent enforcement of QoS policies, e.g., peak-hour prioritization. Action Parameters (Optional): Treatment-Action: Specifies the action to be taken, such as marking, shaping, or dropping packets that meet the defined conditions. Supports traffic management and policy enforcement based on predefined rules. QoS Parameters (Optional): QoS-Semantics: Defines semantics associated with QoS policies, ensuring consistency across different QoS profiles. QoS-Profile-Template: Provides a template for QoS settings, specifying default or custom profiles for traffic treatment. Ensures consistency in QoS enforcement across network nodes. QoS-Parameters: Contains additional QoS details such as bandwidth allocation, latency thresholds, and jitter limits. Allows fine-tuning of QoS policies to meet service-level agreements (SLAs). Excess-Treatment: Defines handling instructions for traffic exceeding the defined QoS limits. Supports actions such as rerouting, dropping, or reprioritizing excess traffic. Extension Point (Optional, Multiple): Allows for extensibility to include vendor-specific attributes or custom parameters for advanced policy management. |
|||
Filter-Rule-Precedence |
510 |
Unsigned32 |
IETF |
Specifies the execution order of rules within the QoS-Resources AVP. This precedence value determines the priority of filter rules, where lower numerical values represent higher precedence. Rules with higher precedence are evaluated and executed before those with lower precedence, ensuring strict ordering of policies for traffic filtering and Quality of Service (QoS) enforcement. If the Filter-Rule-Precedence AVP is absent from the Filter-Rule AVP, rules should be executed in the order of appearance within the QoS-Resources AVP. |
|||
Fragmentation-Flag |
536 |
Enumerated |
IETF |
Specifies the fragmentation flags present in the IP header of packets, enabling Diameter-based systems to filter and classify traffic based on packet fragmentation attributes. This AVP is primarily used for traffic management, filtering, and Quality of Service (QoS) enforcement in IP-based networks, especially in scenarios where packet fragmentation affects routing, reassembly, or processing. Enumerated Values: 0: Don't Fragment (DF): Matches packets with the DF (Don't Fragment) flag set in the IP header. Indicates that the packet cannot be fragmented during transmission. Used to enforce strict handling of packets requiring end-to-end integrity without fragmentation. 1: More Fragments (MF): Matches packets with the MF (More Fragments) flag set in the IP header. Indicates that the packet is fragmented and additional fragments follow. Useful for handling scenarios where fragmented packets require special processing or reassembly. |
|||
From-Spec |
515 |
Grouped |
IETF |
Specifies the source specification for matching packets based on criteria such as IP address, MAC address, EUI-64 address, and port numbers. This AVP is used in classifiers to define filtering rules for packets originating from specific sources. If the From-Spec AVP is absent, all packets match regardless of the source address. When multiple instances of this AVP are present, a packet source can match any of the specified rules. When multiple criteria (e.g., IP address, MAC address, and port) are defined within a single From-Spec, the packet must match all specified parameters simultaneously to be considered a match. The AVP structure is defined as follows: IP-Address (Optional, Multiple): Specifies one or more source IP addresses. Packets must match one of the listed addresses. IP-Address-Range (Optional, Multiple): Defines ranges of source IP addresses. Allows packets within the specified range to match. IP-Address-Mask (Optional, Multiple): Specifies IP address ranges using masks. Matches packets based on network and subnet masks. MAC-Address (Optional, Multiple): Matches one or more source MAC addresses at Layer 2. Enables filtering based on physical device identifiers. MAC-Address-Mask (Optional, Multiple): Allows filtering of MAC address ranges using masks. EUI64-Address (Optional, Multiple): Matches source EUI-64 addresses. Typically used in Ethernet-based networks with globally unique identifiers. EUI64-Address-Mask (Optional, Multiple): Allows filtering of EUI-64 address ranges with masks. Port (Optional, Multiple): Matches specific source port numbers at Layer 4. Useful for application-specific filtering. Port-Range (Optional, Multiple): Allows filtering of packets within port ranges. Supports matching a series of contiguous port numbers. Negated (Optional): If set, specifies that the rule applies to packets not matching the listed parameters. Enables exclusion-based filtering. Use-Assigned-Address (Optional): Specifies that dynamically assigned addresses should be matched instead of statically defined addresses. Allows extensibility for future enhancements or vendor-specific attributes. |
|||
High-User-Priority |
559 |
Unsigned32 |
IETF |
Specifies the priority level assigned to a user in traffic classification and Quality of Service (QoS) enforcement scenarios. This AVP is used to determine the precedence of user traffic within a network, enabling prioritization based on defined policies. The value must be in the range 0 to 7. Lower values correspond to higher priorities, ensuring more favorable treatment for traffic associated with users having higher priority levels. |
|||
ICMP-Code |
547 |
Enumerated |
IETF |
Specifies ICMP (Internet Control Message Protocol) error codes used to classify and handle ICMP messages for network diagnostics, error reporting, and policy enforcement. The values for this AVP are managed by IANA under the ICMP Type Numbers registry as defined in [RFC 2780]. These codes provide granular filtering and treatment options based on ICMP error types and codes. Enumerated Values: 0: NET_UNREACHABLE: Network is unreachable. 1: HOST_UNREACHABLE: Host is unreachable. 2: PROTOCOL_UNREACHABLE: Protocol is unreachable. 3: PORT_UNREACHABLE: Port is unreachable. 4: FRAGMENTATION_NEEDED_AND_DONT_FRAGMENT_SET: Fragmentation is required, but the 'Don't Fragment' flag is set. 5: SOURCE_ROUTE_FAILED: Source route failed. 6: DESTINATION_NETWORK_UNKNOWN: Destination network is unknown. 7: DESTINATION_HOST_UNKNOWN: Destination host is unknown. 8: SOURCE_HOST_ISOLATED: Source host is isolated. 9: COMMUNICATION_WITH_DESTINATION_NETWORK_IS_ADMINISTRATIVELY_PROHIBITED: Communication with the destination network is administratively prohibited. 10: COMMUNICATION_WITH_DESTINATION_HOST_IS_ADMINISTRATIVELY_PROHIBITED: Communication with the destination host is administratively prohibited. 11: DESTINATION_NETWORK_UNREACHABLE_FOR_TYPE_OF_SERVICE: Destination network is unreachable for the specified type of service. 12: DESTINATION_HOST_UNREACHABLE_FOR_TYPE_OF_SERVICE: Destination host is unreachable for the specified type of service. 13: COMMUNICATION_ADMINISTRATIVELY_PROHIBITED: Communication is administratively prohibited. 14: HOST_PRECEDENCE_VIOLATION: Host precedence violation occurred. 15: PRECEDENCE_CUTOFF_IN_EFFECT: Precedence cutoff is in effect. |
|||
ICMP-Type |
545 |
Grouped |
IETF |
Specifies an ICMP (Internet Control Message Protocol) message type that must be matched for filtering, classification, or Quality of Service (QoS) enforcement. This AVP provides granular control over traffic by allowing filtering based on ICMP types and codes as defined in the IANA registry for ICMP message types. It also supports negation, enabling exclusion-based rules for enhanced traffic management. The AVP structure is defined as follows: ICMP-Type-Number (Required): Specifies the ICMP message type number that must be matched in the packet header. Values correspond to IANA-defined ICMP message types. ICMP-Code (Optional, Multiple): Specifies the ICMP code values associated with the ICMP-Type. Matches specific error conditions or variations for the defined ICMP type. Negated (Optional): Indicates that the rule applies to packets not matching the specified ICMP-Type or ICMP-Code. When ICMP-Code is present, negation applies to the specified code. When ICMP-Code is absent, negation applies to the ICMP-Type. Allows for extensibility by including additional attributes or vendor-specific enhancements. |
|||
ICMP-Type-Number |
546 |
Enumerated |
IETF |
Specifies the ICMP message type number for filtering, classification, and Quality of Service (QoS) enforcement. The values for this AVP are managed by IANA under the ICMP Type Numbers registry as defined in [RFC 2780]. Each type corresponds to a specific ICMP function, such as error reporting or network diagnostics. Enumerated Values: 0: ECHO_REPLY: ICMP Echo Reply (response to a ping). 3: DESTINATION_UNREACHABLE: Indicates that the destination is unreachable. 4: SOURCE_QUENCH: Congestion control; requests sender to slow down transmission. 5: REDIRECT: Redirects traffic to another route. 6: ALTERNATE_HOST_ADDRESS: Specifies an alternate host address. 8: ECHO: ICMP Echo Request (ping). 9: ROUTER_ADVERTISEMENT: Advertises the presence of a router. 10: ROUTER_SOLICITATIONS: Requests router advertisement messages. 11: TIME_EXCEEDED: Packet TTL (time-to-live) expired in transit. 12: PARAMETER_PROBLEM: Issues with invalid header fields in the packet. 13: TIMESTAMP: Requests a timestamp for time synchronization. 14: TIMESTAMP_REPLY: Response with a timestamp. 15: INFORMATION_REQUEST: Requests information from a router. 16: INFORMATION_REPLY: Replies with requested information. 17: ADDRESS_MASK_REQUEST: Requests subnet mask from a router. 18: ADDRESS_MASK_REPLY: Replies with the requested subnet mask. 30: TRACEROUTE: Used for path tracing between two nodes. 31: DATAGRAM_CONVERSION_ERROR: Error in converting datagrams. 32: MOBILE_HOST_REDIRECT: Redirects traffic for mobile hosts. 33: IPV6_WHERE_ARE_YOU: Query for IPv6 presence. 34: IPV6_I_AM_HERE: Response indicating IPv6 presence. 35: MOBILE_REGISTRATION_REQUEST: Mobile host registration request. 36: MOBILE_REGISTRATION_REPLY: Mobile host registration reply. 37: DOMAIN_NAME_REQUEST: Queries domain name information. 38: DOMAIN_NAME_REPLY: Replies with domain name information. 39: SKIP: Reserved for future use. 40: PHOTURIS: Security protocol error messages. 41: EXPERIMENTAL: Reserved for experimentation. 42: EXTENDED_ECHO_REQUEST: Extended echo request. 43: EXTENDED_ECHO_REPLY: Extended echo reply. 253: EXPERIMENT_1: Reserved for experimental use. 254: EXPERIMENT_2: Reserved for experimental use. |
|||
IP-Address |
518 |
Address |
IETF |
Specifies a single IP address, either IPv4 or IPv6, used for traffic classification, filtering, and Quality of Service (QoS) enforcement. This AVP is commonly employed in filtering rules and policy definitions to match traffic originating from or destined to a specific IP address. It supports addressing mechanisms for both IPv4 (32 bits) and IPv6 (128 bits) formats. This AVP is often used within From-Spec or To-Spec AVPs to define source or destination IP addresses. It may appear multiple times in a Grouped AVP to specify multiple addresses for matching purposes. When combined with IP-Address-Range or IP-Address-Mask, it enables flexible traffic filtering based on address ranges or subnets. |
|||
IP-Address-End |
521 |
Address |
IETF |
Specifies the last IP address in an address range, supporting both IPv4 and IPv6 formats. This AVP is typically used in conjunction with the IP-Address-Start AVP to define a range of IP addresses for traffic filtering, classification, and Quality of Service (QoS) enforcement. IPv4 Address: Encoded as 32 bits in network byte order. Example: 192.168.1.100 IPv6 Address: Encoded as 128 bits in network byte order. Example: 2001:0db8::ff |
|||
IP-Address-Mask |
522 |
Grouped |
IETF |
Specifies an IP address range using a base IP address and a bit-width mask. The IP-Address-Mask AVP simplifies matching traffic against subnets by defining an IP address prefix (e.g., 192.0.2.0/24) and ensuring all addresses within the specified range match the rule. The AVP structure is defined as follows: IP-Address (Mandatory): Specifies the base IP address in either IPv4 or IPv6 format. Encoded in network byte order. IP-Bit-Mask-Width (Mandatory): Specifies the bit-width of the mask to determine the size of the address range. Allows additional AVPs to be included. When combined with other AVPs such as Negated, it supports exclusion-based filtering, allowing traffic outside the specified range to be processed differently. |
|||
IP-Address-Range |
519 |
Grouped |
IETF |
Specifies an inclusive range of IP addresses for traffic filtering, classification, and Quality of Service (QoS) enforcement. It supports both IPv4 and IPv6 addresses. The AVP structure is defined as follows: IP-Address-Start (Optional): Specifies the starting IP address of the range. Encoded in network byte order. If this parameter is absent, the range starts from the first valid IP address supported by the protocol (e.g., 0.0.0.0 for IPv4). IP-Address-End (Optional): Specifies the ending IP address of the range. Encoded in network byte order. If this parameter is absent, the range includes all addresses starting from the specified IP-Address-Start up to the last valid address supported by the protocol (e.g., 255.255.255.255 for IPv4). Allows additional AVPs to be included. If both IP-Address-Start and IP-Address-End are included, the Start value must be less than the End value for the AVP to be valid. |
|||
IP-Address-Start |
520 |
Address |
IETF |
Specifies the first IP address (IPv4 or IPv6) in an IP address range. This AVP is typically used in conjunction with the IP-Address-End AVP to define an inclusive range of IP addresses for traffic classification and policy enforcement. |
|||
IP-Bit-Mask-Width |
523 |
Unsigned32 |
IETF |
Specifies the width of an IP address bit mask, which determines the range of IP addresses included in a subnet. This AVP is typically used in conjunction with an IP address (e.g., IP-Address or IP-Address-Mask) to define subnet-based traffic classification and policy enforcement. The value of the AVP represents the number of significant bits in the subnet mask. For example: A value of 24 corresponds to a subnet mask of 255.255.255.0 for IPv4. A value of 64 corresponds to a typical IPv6 subnet mask. |
|||
IP-Option |
537 |
Grouped |
IETF |
Specifies an IP header option that must be matched for traffic classification or policy enforcement. This AVP allows for fine-grained control of IP-based traffic by matching specific IP header options or excluding certain options using negation. The AVP structure is defined as follows: IP-Option-Type (Mandatory): Specifies the type of IP header option to match. If the IP-Option-Value AVP is absent, this parameter ensures the presence of the option type in the IP header, with the value treated as a wildcard. IP-Option-Value (Optional, Multiple): Specifies one or more values for the IP header option. If present, at least one of the provided values must match the value in the IP header. Negated (Optional): Indicates a negation condition: If used with IP-Option-Value, specifies IP options that do not match the given values. If used without IP-Option-Value, specifies IP headers that do not contain the specified option type. Allows additional AVPs to be included. |
|||
IP-Option-Type |
538 |
Enumerated |
IETF |
Specifies the type of IP header option, with the enumerated values managed by IANA under the IP Option Numbers registry. The AVP supports the following IP Option Types, as defined by IANA and [RFC 2780]: 0: EOOL (End of Option List): Indicates the end of the options list. 1: NOP (No Operation): Used for padding between options. 7: RR (Record Route): Records the route of the packet. 10: ZSU (Experimental Measurement): Reserved for experimental use. 11: MTUP (MTU Probe): Measures MTU along the path. 12: MTUR (MTU Reply): Replies to an MTU probe. 68: TS (Timestamp): Records timestamps. 130: SEC (Security): Indicates security levels. 131: LSR (Loose Source Route): Specifies a partial source route. 133: ESEC (Extended Security): Provides extended security features. 134: CIPSO (Common IP Security Option): Specifies security levels and categories. 136: SID (Stream Identifier): Identifies a data stream. 137: SSR (Strict Source Route): Specifies a strict source route. 142: VISA: Indicates Visa protocol-specific options. 145: EIP (Extended Internet Protocol): Indicates an extended IP. 25: QS (Quick-Start): Indicates quick-start features. 30, 94, 158, 222: Experimental options (EXP_1, EXP_2, EXP_3, EXP_4): Reserved for experimental use. |
|||
IP-Option-Value |
539 |
OctetString |
IETF |
Specifies the value of an IP header option that must be matched for traffic classification, routing decisions, or policy enforcement. This AVP is typically used within the IP-Option AVP to refine traffic matching based on specific option values. If multiple IP-Option-Value AVPs are included, one of the values must match the IP header option. When this AVP is absent within the IP-Option AVP, the type is matched, but the value is treated as a wildcard. |
|||
Low-User-Priority |
558 |
Unsigned32 |
IETF |
Represents the user priority level for a specific service or traffic flow, with the value ranging from 0 to 7. 0: Highest priority. 7: Lowest priority. |
|||
MAC-Address |
524 |
OctetString |
IETF |
Specifies a single Layer 2 (MAC-48 format) address. The value is encoded as a 6-octet binary representation of the MAC address as it appears in the frame header. |
|||
MAC-Address-Mask |
525 |
Grouped |
IETF |
Specifies a range of MAC addresses using a bit mask to define the bits of the MAC addresses that must match the specified MAC-Address. The AVP structure is defined as follows: MAC-Address (Mandatory): Specifies the base MAC address that serves as the starting point for matching. Encoded as a 6-octet binary value in MAC-48 format. MAC-Address-Mask-Pattern (Mandatory): Specifies the bit mask to define the matching range of MAC addresses. A binary value where each bit corresponds to a bit in the MAC-Address: A bit value of 1 indicates the corresponding bit in the address must match. A bit value of 0 allows any value for the corresponding bit. Allows additional AVPs to be included. |
|||
MAC-Address-Mask-Pattern |
526 |
OctetString |
IETF |
Specifies a 6-octet bit mask used to match a range of MAC addresses. The mask indicates which bits in the corresponding MAC-Address are significant for matching, enabling flexible grouping and classification of devices based on MAC address patterns. The MAC-Address-Mask-Pattern is a binary value where: A bit value of 1 means the corresponding bit in the MAC address must match. A bit value of 0 allows any value for the corresponding bit in the MAC address. This AVP is typically used within the MAC-Address-Mask AVP to define ranges of MAC addresses for traffic classification or policy enforcement. To match specific MAC addresses, use a mask with all bits set to 1 (FF-FF-FF-FF-FF-FF). To match ranges of MAC addresses, set some bits in the mask to 0. For example: MAC-Address: 00-10-A4-23-00-00 MAC-Address-Mask-Pattern: FF-FF-FF-FF-00-00 Matches all MAC addresses from 00-10-A4-23-00-00 to 00-10-A4-23-FF-FF. |
|||
Month-Of-Year-Mask |
565 |
Unsigned32 (Bitmask) |
IETF |
Uses a bitmask to specify the months of the year during which a given time condition is valid. Each bit in the mask corresponds to a specific month, where a bit value of 1 indicates that the corresponding month is included in the matching condition. Bit Mapping: Bit 0 (Least Significant Bit): January Bit 1: February Bit 2: March Bit 3: April Bit 4: May Bit 5: June Bit 6: July Bit 7: August Bit 8: September Bit 9: October Bit 10: November Bit 11: December To match a specific month, the corresponding bit in the mask must be set to 1. If the AVP is absent, the time condition applies to all months. Any unused bits (12–31) must be set to 0 to ensure compliance with the specification. |
|||
Negated |
517 |
Enumerated |
IETF |
Indicates whether the match condition specified by a classifier (e.g., in the From-Spec or To-Spec AVP) is inverted. This AVP allows for more flexible matching rules by specifying whether to match or exclude the defined addresses or specifications. Enumerated Values: 0: False: The match is not inverted. The classifier will match the addresses or conditions explicitly specified by the associated AVP. 1: True: The match is inverted. The classifier will match addresses other than those specified by the associated AVP. |
|||
Port |
530 |
Integer32 |
IETF |
Specifies a port number to match in the context of traffic classification and policy enforcement. The range of values for this AVP is 0 to 65535, which covers the full range of valid port numbers. The type of port (e.g., TCP or UDP) is determined by the value of the Protocol AVP in the same classifier. |
|||
Port-End |
533 |
Integer32 |
IETF |
Specifies the last port number of an IP port range in a traffic classification rule. This AVP is typically used in combination with the Port-Start AVP to define a range of port numbers for matching criteria. |
|||
Port-Range |
531 |
Grouped |
IETF |
Specifies an inclusive range of port numbers to match in a traffic classification rule. The type of ports (e.g., TCP or UDP) is determined by the Protocol AVP in the same classifier. The AVP structure is defined as follows: Port-Start (Optional): Specifies the starting port number of the range. If omitted, the default value is 0. Port-End (Optional): Specifies the ending port number of the range. If omitted, the default value is 65535. Allows additional AVPs to be included. If Port-Range AVP is omitted: Port-Start defaults to 0 (lowest possible port). Port-End defaults to 65535 (highest possible port). |
|||
Port-Start |
532 |
Integer32 |
IETF |
It specifies the first port number of an IP port range in a traffic classification rule. This AVP is typically used in conjunction with the Port-End AVP to define the starting boundary of a port range for matching criteria. |
|||
Protocol |
513 |
Enumerated |
IETF |
Used to specify the network protocol being matched for traffic filtering, QoS policies, and Diameter-based policy enforcement. It is an Enumerated AVP, meaning it only allows predefined integer values representing different protocols. If the Protocol AVP is omitted, it means that protocol comparison is irrelevant in the classifier. Enumerated Values: 0: OPOPT: IPv6 Hop-by-Hop Option 1: ICMP: Internet Control Message Protocol 2: IGMP: Internet Group Management Protocol 3: GGP: Gateway-to-Gateway Protocol 4: IPv4: IPv4 Encapsulation 5: ST: Internet Stream Protocol 6: TCP: Transmission Control Protocol 7: CBT: Core-Based Trees 8: EGP: Exterior Gateway Protocol 9: IGP: Interior Gateway Protocol 10: BBN_RCC_MON: BBN RCC Monitoring 11: NVP_II: Network Voice Protocol 12: PUP: Xerox PUP 13: ARGUS: ARGUS 14: EMCON: EMCON 15: XNET: Cross Net Debugger 16: CHAOS: Chaos 17: UDP: User Datagram Protocol 18: MUX: Multiplexing 19: DCN_MEAS: DCN Measurement Subsystems 20: HMP: Host Monitoring Protocol 21: PRM: Packet Radio Measurement 22: XNS_IDP: Xerox NS IDP 23: TRUNK_1: Trunk-1 24: TRUNK_2: Trunk-2 25: LEAF_1: Leaf-1 26: LEAF_2: Leaf-2 27: RDP: Reliable Data Protocol 28: IRTP: Internet Reliable Transaction 29: ISO_TP4: ISO Transport Protocol Class 4 30: NETBLT: Bulk Data Transfer Protocol 31: MFE_NSP: MFE Network Services Protocol 32: MERIT_INP: MERIT Internodal Protocol 33: DCCP: Datagram Congestion Control Protocol 34: THREE_PC: Third Party Connect Protocol 35: IDPR: Inter-Domain Policy Routing Protocol 36: XTP: Xpress Transport Protocol 37: DDP: Datagram Delivery Protocol 38: IDPR_CMTP: IDPR Control Message Transport Protocol 39: TP_PLUS_PLUS: TP++ Transport Protocol 40: IL: IL Transport Protocol 41: IPv6: IPv6 Encapsulation 42: SDRP: Source Demand Routing Protocol 43: IPv6_ROUTE: Routing Header for IPv6 44: IPv6_FRAG: Fragment Header for IPv6 45: IDRP: Inter-Domain Routing Protocol 46: RSVP: Resource Reservation Protocol 47: GRE: Generic Routing Encapsulation 48: DSR: Dynamic Source Routing Protocol 49: BNA: BNA 50: ESP: Encapsulating Security Payload 51: AH: Authentication Header 52: I_NLSP: Integrated NLSP 53: SWIPE: IP with Encryption 54: NARP: NBMA Address Resolution Protocol 55: MOBILE: IP Mobility 56: TLSP: Transport Layer Security Protocol 57: SKIP: SKIP 58: IPv6_ICMP: ICMP for IPv6 59: IPv6_NONXT: No Next Header for IPv6 60: IPv6_OPTS: Destination Options for IPv6 61: HOST_INTERNAL: Any host internal protocol 62: CFTP: CFTP 63: NETWORK_INTERNAL: Any local network 64: SAT_EXPAK: SATNET and Backroom EXPAK 65: KRYPTOLAN: Kryptolan 66: RVD: MIT Remote Virtual Disk Protocol 67: IPPC: Internet Pluribus Packet Core 68: DIST_FS: Distributed File System Protocol 69: SAT_MON: SATNET Monitoring 70: VISA: VISA Protocol 71: IPCV: Internet Packet Core Utility 72: CPNX: Computer Protocol Network Executive 73: CPHB: Computer Protocol Heart Beat 74: WSN: Wang Span Network 75: PVP: Packet Video Protocol 76: BR_SAT_MON: Backroom SATNET Monitoring 77: SUN_ND: SUN ND Protocol 78: WB_MON: WIDEBAND Monitoring 79: WB_EXPAK: WIDEBAND EXPAK 80: ISO_IP: ISO Internet Protocol 81: VMTP: Versatile Message Transport Protocol 82: SECURE_VMTP: Secure VMTP 83: VINES: VINES Protocol 84: IPTM: Internet Packet Transmission Protocol 85: NSFNET_IGP: NSFNET-IGP 86: DGP: Dissimilar Gateway Protocol 87: TCF: TCF 88: EIGRP: EIGRP 89: OSPFIGP: OSPF 90: Sprite_RPC: Sprite RPC Protocol 91: LARP: Locus Address Resolution Protocol 92: MTP: Multicast Transport Protocol 93: AX_25: AX.25 Frames 94: IPIP: IP-in-IP Encapsulation Protocol 95: MICP: Mobile Internetworking Control Protocol 96: SCC_SP: Semaphore Communications 97: ETHERIP: Ethernet-within-IP Encapsulation 98: ENCAP: Encapsulation Header 99: PRIV_ENC: Private Encryption Protocol 100: GMTP: GMTP 101: IFMP: Ipsilon Flow Management Protocol 102: PNNI: PNNI over IP 103: PIM: Protocol Independent Multicast 104: ARIS: ARIS 105: SCPS: SCPS 106: QNX: QNX 107: A_N: Active Networks 108: IP_COMP: IP Payload Compression Protocol 109: SNP: Sitara Networks Protocol 110: COMPAQ_PEER: Compaq Peer Protocol 111: IPX_IN_IP: IPX in IP 112: VRRP: Virtual Router Redundancy Protocol 113: PGM: PGM Reliable Transport Protocol 114: ZERO_HOP: Zero Hop Protocol 115: L2TP: Layer Two Tunneling Protocol 116: DDX: D-II Data Exchange (DDX) 117: IATP: Interactive Agent Transfer Protocol 118: STP: Schedule Transfer Protocol 119: SRP: SpectraLink Radio Protocol 120: UTI: UTI 121: SMP: Simple Message Protocol 122: SM: SM 123: PTP: Precision Time Protocol (PTP) 124: ISIS_OVER_IPv4: Intermediate System to Intermediate System (IS-IS) over IPv4 125: FIRE: Flexible Intra-AS Routing Environment 126: CRTP: Combat Radio Transport Protocol 127: CRUDP: Combat Radio User Datagram 128: SSCOPMCE: Service-Specific Connection-Oriented Protocol in a Multilink Environment 129: IPLT: IPLT 130: SPS: Secure Packet Shield 131: PIPE: Private IP Encapsulation 132: SCTP: Stream Control Transmission Protocol 133: FC: Fibre Channel 134: RSVP_E2E_IGNORE: RSVP End-to-End Ignore 135: MOBILITY_HEADER: Mobility Header for IPv6 136: UDP_LITE: Lightweight User Datagram Protocol 137: MPLS_IN_IP: MPLS-in-IP 138: MANET: Mobile Ad Hoc Network Protocol 139: HIP: Host Identity Protocol 140: SHIM6: Site Multihoming by IPv6 Intermediation 141: WESP: Wrapped Encapsulating Security Payload 142: ROHC: Robust Header Compression 143: ETHERNET: Ethernet Encapsulation 144: AGGFRAG: Aggregate Fragmentation 145: NSH: Network Service Header 253: TESTING_253: Reserved for Testing 254: TESTING_254: Reserved for Testing |
|||
QoS-Capability |
578 |
Grouped |
IETF |
Contains a list of supported Quality of Service (QoS) profile templates and associated parameters. It is used for announcing or negotiating QoS capabilities and profiles between Diameter peers. At least one QoS-Profile-Template AVP must be present in the QoS-Capability AVP. The AVP structure is defined as follows: QoS-Profile-Template (Mandatory, Multiple): Specifies the QoS profile templates supported by the peer. Each profile template defines specific QoS parameters that the peer can handle. Allows additional AVPs to be included. |
|||
QoS-Parameters |
576 |
Grouped |
IETF |
Encapsulates a set of Quality of Service (QoS) parameters. These parameters are specific to the QoS profile template indicated in the associated QoS-Profile-Template AVP. The parameters provide detailed definitions of QoS requirements, such as bandwidth, latency, and priority levels. The AVP structure is defined as follows: AVP (Optional, Multiple): can include multiple additional attributes to define QoS parameters comprehensively. The specific parameters depend on the QoS profile being applied. For an initial specification of QoS parameters, refer to [RFC5624]. |
|||
QoS-Profile-Id |
573 |
Unsigned32 |
IETF |
Specifies the identifier of a Quality of Service (QoS) profile template. The QoS profile template defines the set of QoS parameters and policies to be applied to a service or flow. The initial QoS profile template is defined with an identifier value of 0, as specified in [RFC5624]. The identifiers for QoS profile templates are maintained in a registry created and managed as per [RFC5624]. |
|||
QoS-Profile-Template |
574 |
Grouped |
IETF |
Specifies a Quality of Service (QoS) profile namespace and an associated profile template identifier. This AVP is used to define and apply QoS policies by referencing a vendor-specific namespace (via the Vendor-Id AVP) and a corresponding QoS-Profile-Id AVP. The AVP structure is defined as follows: Vendor-Id (Mandatory): Contains a 32-bit IANA Private Enterprise Number (PEN), identifying the organization responsible for the QoS profile namespace.
QoS-Profile-Id (Mandatory): Identifies the specific QoS profile template within the namespace defined by the Vendor-Id. Additional optional AVPs may be included to provide further information or configuration. |
|||
QoS-Resources |
508 |
Grouped |
IETF |
Defines a list of filter policy rules for Quality of Service (QoS) management. It allows network elements to specify filtering rules that map traffic flows to specific QoS policies. The AVP structure is defined as follows: Filter-Rule (Mandatory, Repeating): Contains one or more instances of the Filter-Rule AVP, which defines specific conditions and actions associated with the traffic flow. A Filter-Rule may include attributes such as precedence, QoS semantics, and treatment actions for the matching traffic. Additional optional AVPs may be included for extensibility or to provide supplementary information. |
|||
QoS-Semantics |
575 |
Enumerated |
IETF |
Provides the semantics for the QoS-Profile-Template and QoS-Parameters AVPs in the Filter-Rule AVP. It defines the context and purpose of QoS parameters exchanged between Diameter clients and servers. Enumerated Values: 0: QoS-Desired: Client->Server: Client requests authorization of the indicated QoS. 1: QoS-Available: Client->Server: Admission Control at client indicates that this QoS is available. 1: QoS-Available: Client<-Server: Admission Control at server indicates that this QoS is available. 2: QoS-Delivered: Client->Server: Client is reporting the actual QoS delivered to the terminal. 3: Minimum-QoS: Client->Server: Client is not interested in authorizing QoS lower than the indicated QoS. 3: Minimum-QoS: Client<-Server: Client must not provide QoS guarantees lower than the indicated QoS. 4: QoS-Authorized: Client<-Server: Server authorizes the indicated QoS. Notes: (2) QoS-Available in this direction is only useful when the AAA server performs admission control and knows about the resources in the network. |
|||
S-VID-End |
554 |
Unsigned32 |
IETF |
Specifies the end value of a range of S-VID VLAN-IDs used for matching VLANs in a network. It defines the upper boundary of the range and works in conjunction with the S-VID-Start AVP. The value of this AVP MUST be between 0 and 4095, inclusive. |
|||
S-VID-Start |
553 |
Unsigned32 |
IETF |
Specifies the starting value of a range of S-VID VLAN-IDs used for matching VLANs in a network. It defines the lower boundary of the range and works in conjunction with the S-VID-End AVP. The value of this AVP MUST be between 0 and 4095, inclusive. |
|||
TCP-Flags |
543 |
Grouped |
IETF |
Specifies a set of TCP control flags that must be matched in a network packet. These flags determine the required or forbidden TCP states for the packet to satisfy a specific condition. The AVP structure is defined as follows: TCP-Flag-Type (Mandatory, Unsigned32): Specifies the TCP control flags that must be matched. Each bit in the value corresponds to a specific TCP flag (e.g., SYN, ACK, FIN, etc.). Negated (Optional, Enumerated):
Additional AVPs can be included to provide further details or configurations. Behavior: If the Negated AVP is absent or set to False, the condition matches when the flags specified in TCP-Flag-Type are present in the TCP header. If the Negated AVP is set to True, the condition matches when the flags specified in TCP-Flag-Type are not present in the TCP header. |
|||
TCP-Flag-Type |
544 |
Unsigned32 |
IETF |
Specifies the TCP control flag types that must be matched in the TCP header of a packet. It is a 32-bit value where specific bits are defined by the TCP Header Flag registry as per [RFC3168]. Used in conjunction with the Negated AVP to determine inclusion or exclusion logic. The unused bits must remain clear (set to 0) to comply with the specification. Parameters: First 16 Bits (4 to 15): Correspond to the TCP header format. Managed by IANA under the TCP Header Flag registry. Bits 0 to 3: Reserved (Unused). Bits 16 to 31: Reserved (Unused). |
|||
TCP-Option |
540 |
Grouped |
IETF |
Specifies TCP header options that must match during packet classification. This AVP is used to describe specific TCP options, values, and negation criteria in the TCP header. If one or more TCP-Option-Value AVPs are present, at least one value must match the corresponding value in the packet's TCP header. If TCP-Option-Value is absent, the type is matched without considering specific values. The AVP structure is defined as follows: TCP-Option-Type (Mandatory): Identifies the type of TCP header option. TCP-Option-Value (Optional, Repeating): Specifies one or more values for the TCP option. Negated (Optional):
Allows additional AVPs for extensions or custom functionality. |
|||
TCP-Option-Type |
541 |
Enumerated |
IETF |
Specifies the type of TCP header option to be matched. This AVP is used for traffic classification based on TCP option types defined in the TCP header. The values for this AVP are managed by IANA under the TCP Option Numbers registry as defined in [RFC2780]. Enumerated Values: 0: END_OF_OPTION_LIST: Indicates the end of the TCP options list. 1: NO_OPERATION: Used for padding between options. 2: MAXIMUM_SEGMENT_SIZE: Specifies the maximum segment size. 3: WINDOW_SCALE: Used for scaling the TCP window size. 4: SACK_PERMITTED: Indicates that Selective ACK (SACK) is allowed. 5: SACK: Selective Acknowledgement (SACK). 6: ECHO: Echo request for RTT measurement. 7: ECHO_REPLY: Echo reply for RTT measurement. 8: TIMESTAMP: Contains timestamps for RTT and PAWS. 9: PARTIAL_ORDER_CONNECTION_PERMITTED: Partial order connection indication. 10: PARTIAL_ORDER_SERVICE_PROFILE: Profile for partial order service. 11: CC: Connection count information. 12: CCNEW: New connection count. 13: CCECHO: Echo connection count. 14: TCP_ALTERNATE_CHECKSUM_REQUEST: Request for alternate checksum. 15: TCP_ALTERNATE_CHECKSUM_DATA: Data for alternate checksum. 16: SKEETER: Experimental option. 17: BUBBA: Experimental option. 18: TRAILER_CHECKSUM_OPTION: Checksum for TCP trailers. 19: MD5_SIGNATURE_OPTION: MD5 signature for TCP segments. 20: SCPS_CAPABILITIES: Space Communications Protocol Standards. 21: SELECTIVE_NEGATIVE_ACKNOWLEDGMENTS: Negative acknowledgment for selective data. 22: RECORD_BOUNDARIES: Indicates boundaries for application records. 23: CORRUPTION_EXPERIENCED: Indicates data corruption was experienced. 24: SNAP: Secure Network Address Translation Protocol. 26: TCP_COMPRESSION_FILTER: TCP compression filter. 27: QUICK_START_RESPONSE: Response to Quick-Start option. 28: USER_TIMEOUT_OPTION: User-defined timeout for connections. 29: TCP_AUTHENTICATION_OPTION: Authentication for TCP connections. 30: MULTIPATH_TCP: Multipath TCP support. 34: TCP_FAST_OPEN_COOKIE: Used for TCP Fast Open. 69: ENCRYPTION_NEGOTIATION: Negotiates encryption parameters. 172: ACCURATE_ECN_ORDER_0: Accurate ECN signaling, order 0. 174: ACCURATE_ECN_ORDER_1: Accurate ECN signaling, order 1. 253: EXPERIMENT_1: Reserved for experimental use. 254: EXPERIMENT_2: Reserved for experimental use. |
|||
TCP-Option-Value |
542 |
OctetString |
IETF |
Specifies the value for a TCP header option that must be matched. It is used in conjunction with the TCP-Option AVP to define and enforce specific TCP option parameters within a classifier. |
|||
Time-Of-Day-Condition |
560 |
Grouped |
IETF |
Specifies one or more time windows used to enforce specific temporal conditions within a Diameter-based policy. This AVP enables fine-grained control over when certain rules or actions are applicable. The AVP structure is defined as follows: Time-Of-Day-Start (Unsigned32): Specifies the start of the time window in seconds since midnight, local or UTC based on the Timezone-Flag. Time-Of-Day-End (Unsigned32): Specifies the end of the time window. Seconds since midnight, local or UTC based on the Timezone-Flag. Day-Of-Week-Mask (Bitmask): Defines which days of the week (e.g., Monday through Sunday) the time window applies. Day-Of-Month-Mask (Bitmask): Defines specific days of the month for the time window (e.g., 1st, 15th, 31st). Month-Of-Year-Mask (Bitmask): Specifies the months during which the time window applies. Absolute-Start-Time (Date): Absolute starting point in time for the condition. Absolute-End-Time (Date): Absolute ending point in time for the condition. Timezone-Flag (Enumerated): Specifies whether the time window is based on local time or UTC. If Time-Of-Day-End is earlier than Time-Of-Day-Start, the window spans midnight (e.g., 10 p.m.–2 a.m.). Multiple Time-Of-Day-Condition AVPs can be included to define non-contiguous time windows. Example: A time window from 9 a.m. to 5 p.m. on weekdays can be defined as follows: Time-Of-Day-Condition = { Time-Of-Day-Start = 32400; // 9:00 AM Time-Of-Day-End = 61200; // 5:00 PM Day-Of-Week-Mask = MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY; Timezone-Flag = LOCAL; } |
|||
Time-Of-Day-End |
562 |
Unsigned32 |
IETF |
Specifies the endpoint of a time window within a Time-Of-Day-Condition AVP. The value is an offset in seconds from midnight (local or UTC, depending on the time zone). If this AVP is omitted, the end of the time window is assumed to be 11:59:59 PM (86400 seconds from midnight). The value must fall within the valid range (1 to 86400). If an invalid value is provided, the Diameter stack should reject the AVP. |
|||
Time-Of-Day-Start |
561 |
Unsigned32 |
IETF |
Specifies the start of a time window within a Time-Of-Day-Condition AVP. The value is an offset in seconds from midnight, indicating when the time window begins. This AVP is optional; if absent, the time window defaults to starting at midnight (00:00:00). The value must fall within the valid range (0 to 86400). If an invalid value is provided, the Diameter stack should reject the AVP. |
|||
Timezone-Flag |
570 |
Enumerated |
IETF |
Specifies how time windows within a Time-Of-Day-Condition AVP are interpreted in terms of timezone. It defines whether the times are in UTC, local time, or as an offset from UTC. If this AVP is not present, the time windows default to UTC. Enumerated Values: 0: UTC: The time windows are expressed in Coordinated Universal Time (UTC). 1: LOCAL: The time windows are expressed in the local time of the managed terminal. 2: OFFSET: The time windows are expressed as an offset from UTC, using the Timezone-Offset AVP. If the Timezone-Flag AVP is absent, time windows are interpreted as UTC. |
|||
Timezone-Offset |
571 |
Integer32 |
IETF |
Specifies the offset in seconds from Coordinated Universal Time (UTC) that was used to express Time-Of-Day-Start, Time-Of-Day-End, Day-Of-Week-Mask, Day-Of-Month-Mask, and Month-Of-Year-Mask AVPs. This AVP must be present if the Timezone-Flag AVP is set to OFFSET. The offset value must be within the range of -43200 to 43200 seconds (equivalent to ±12 hours). |
|||
To-Spec |
516 |
Grouped |
IETF |
Defines the destination specification used to match a packet's destination attributes. It is part of the classifier used in policy-based traffic management and can contain multiple criteria such as IP address, MAC address, and port information. If multiple To-Spec AVPs are present in the classifier, the destination packet can match any of the To-Spec instances. If the To-Spec AVP is absent, all packets are matched regardless of their destination address. If multiple IP address AVPs (e.g., IP-Address, IP-Address-Range, IP-Address-Mask, Use-Assigned-Address) are present, the packet's destination IP must match one of them. If multiple port AVPs (e.g., Port, Port-Range) are present, the destination port must match one of them. If more than one instance of the layer 2 address AVPs (MAC-Address, MAC-Address-Mask, EUI64-Address, EUI64-Address-Mask) appears in the To-Spec, then the destination layer 2 address of the packet must match one of the addresses represented in these AVPs. If the IP address, MAC address, and port AVPs appear in the same To-Spec AVP, then the destination packet must match all the specifications, i.e., match the IP address and MAC address and port number. The AVP structure is defined as follows: IP-Address: Matches specific destination IP addresses. IP-Address-Range: Matches a range of destination IP addresses. IP-Address-Mask: Matches a destination IP address using a mask. MAC-Address: Matches specific destination MAC addresses. MAC-Address-Mask: Matches a range of destination MAC addresses using a mask. EUI64-Address: Matches specific EUI-64 destination addresses. EUI64-Address-Mask: Matches EUI-64 destination addresses using a mask. Port: Matches specific destination port numbers. Port-Range: Matches a range of destination port numbers. Negated: If set, negates the match criteria (e.g., packets not matching the given specifications). Use-Assigned-Address: Indicates that the destination should match dynamically assigned addresses. |
|||
Treatment-Action |
572 |
Enumerated |
IETF |
Specifies actions that are associated with the condition part of a rule in Diameter-based QoS and policy enforcement systems. It is used to define how network traffic should be handled when it matches a given rule. This AVP supports four predefined actions, which dictate whether packets should be dropped, shaped, marked, or permitted. These actions directly influence Quality of Service (QoS) management and policy-based traffic enforcement. Enumerated Values: 0: drop: The traffic must be dropped (discarded). Used for policy enforcement or excess traffic policing. 1: shape: The traffic is delayed to conform to a specified traffic profile. Requires the use of QoS Parameters AVPs (e.g., TMOD-1, Bandwidth AVPs) to define shaping behavior. 2: mark: The traffic is marked using DiffServ (Differentiated Services) or other QoS markers. Requires the use of the PHB-Class AVP to specify the appropriate DiffServ codepoint. 3: permit: The traffic is allowed to pass through, bypassing any filtering or restrictions. This is the opposite of the 'drop' action. Additional Notes [RFC2475]: Shaping: Controls the rate at which packets are transmitted by delaying them based on a traffic profile. Marking: Assigns specific QoS labels to packets, allowing differentiated treatment in the network. Policing: Enforces traffic limits by dropping packets when they exceed a defined rate (handled through the Excess-Treatment AVP with a drop action). Extensibility: Future actions may be registered per Section 10.3 of [RFC5777]. |
|||
Use-Assigned-Address |
534 |
Enumerated |
IETF |
Indicates whether the classifier should use the IP address assigned to the managed terminal. This AVP is typically used in scenarios where the AAA server does not know the terminal's assigned IP address when the classifier is created. It contains a boolean-like value (True or False) to represent this condition. Enumerated Values: 1: True: Indicates that the IP address assigned to the managed terminal should be used for classification purposes. This represents the terminal's assigned address. If this AVP is absent, the classifier operates independently of the terminal's assigned IP address. When the AVP is present and set to True, the IP address of the managed terminal becomes a critical part of the classifier's criteria. |
|||
User-Priority-Range |
557 |
Grouped |
IETF |
Specifies an inclusive range of user_priority parameter defined in [IEEE 802.1D]. It is used to match Ethernet packets based on their user_priority parameter. The packet matches the classifier if its user_priority value falls within the range defined by the Low-User-Priority and High-User-Priority sub-AVPs. If the User-Priority-Range AVP is omitted, the classifier disregards the user_priority parameter. The AVP structure is defined as follows: Low-User-Priority (Optional, Unsigned32): Specifies the lower bound of the user priority range. High-User-Priority (Optional, Unsigned32): Specifies the upper bound of the user priority range. An Ethernet packet matches the User-Priority-Range if its user_priority value is: Low-User-Priority ≤ user_priority ≤ High-User-Priority If Low-User-Priority is missing, it defaults to the lowest valid priority. If High-User-Priority is missing, it defaults to the highest valid priority. |
|||
VLAN-ID-Range |
552 |
Grouped |
IETF |
The VLAN-ID-Range AVP defines a VLAN range to be used for matching traffic in a classifier. It allows filtering of packets based on VLAN identifiers as specified by IEEE [802.1Q] (single VLAN ID) or IEEE [802.1ad] (Customer VLAN-ID and Service VLAN-ID). Packets without VLAN tagging will not match if a VLAN range is specified. If both S-VID and C-VID are present in one VLAN-ID-Range AVP, a packet must match both. The AVP structure is defined as follows: S-VID-Start / S-VID-End: Defines the Service VLAN ID range. C-VID-Start / C-VID-End: Defines the Customer VLAN ID range. If VLAN-ID-Range is absent from the classifier, the VLAN comparison is irrelevant. If multiple VLAN-ID-Range AVPs exist in a classifier, a packet must match at least one. Service VLAN (S-VID) Handling Only S-VID-Start is present: The S-VID must match S-VID-Start. Only S-VID-End is present: The S-VID must match S-VID-End. S-VID-Start and S-VID-End are equal: The S-VID must match the given value. S-VID-Start < S-VID-End: The S-VID must be within the range (inclusive). S-VID omitted: IEEE 802.1ad encapsulation is ignored. Customer VLAN (C-VID) Handling Only C-VID-Start is present: The C-VID must match C-VID-Start. Only C-VID-End is present: The C-VID must match C-VID-End. C-VID-Start and C-VID-End are equal: The C-VID must match the given value. C-VID-Start < C-VID-End: The C-VID must be within the range (inclusive). C-VID omitted: VLAN ID comparison is irrelevant. |
Start innovating with Mobius
What's next? Let's talk!