Interface QosInformation

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface QosInformation
    extends GroupedAvp
    Defines an interface representing the QoS-Information grouped AVP type. From the Diameter Gx Reference Point Protocol Details (3GPP TS 29.212 V11.9.0) specification:
     5.3.16  QoS-Information
     
         The QoS-Information AVP (AVP code 1016) is of type Grouped, and it defines the QoS information for resources requested by the UE, an IP-CAN bearer, PCC rule, QCI or APN. When this AVP is sent from the PCEF to the PCRF, it indicates the requested QoS information associated with resources requested by the UE, an IP CAN bearer or the subscribed QoS information at APN level. When this AVP is sent from the PCRF to the PCEF, it indicates the authorized QoS for:
         -  an IP CAN bearer (when appearing at CCA or RAR command level or
         -  a service data flow (when included within the PCC rule) or
         -  a QCI (when appearing at CCA or RAR command level with the QoS-Class-Identifier AVP and the Maximum-Requested-Bandwidth-UL AVP and/or the Maximum-Requested-Bandwidth-DL AVP) or
         -  an APN (when appearing at CCA or RAR command level with APN-Aggregate-Max-Bitrate-UL and APN-Aggregate-Max-Bitrate-DL).
         The QoS class identifier identifies a set of IP-CAN specific QoS parameters that define QoS, excluding the applicable bitrates and ARP. It is applicable both for uplink and downlink direction.
         The Max-Requested-Bandwidth-UL defines the maximum bit rate allowed for the uplink direction.
         The Max-Requested-Bandwidth-DL defines the maximum bit rate allowed for the downlink direction.
         The Guaranteed-Bitrate-UL defines the guaranteed bit rate allowed for the uplink direction.
         The Guaranteed-Bitrate-DL defines the guaranteed bit rate allowed for the downlink direction.
         The APN-Aggregate-Max-Bitrate-UL defines the total bandwidth usage for the uplink direction of non-GBR QCIs at the APN.
         The APN-Aggregate-Max-Bitrate-DL defines the total bandwidth usage for the downlink direction of non-GBR QCIs at the APN.
         The Bearer Identifier AVP shall be included as part of the QoS-Information AVP if the QoS information refers to an IP CAN bearer initiated by the UE and the PCRF performs the bearer binding. The Bearer Identifier AVP identifies this bearer. Several QoS-Information AVPs for different Bearer Identifiers may be provided per command.
         When the QoS-Information AVP is provided within the CCR command along with the RESOURCE_MODIFICATION_REQUEST event trigger, the QoS-information AVP includes only the QoS-Class-Identifier AVP and Guaranteed-Bitrate-UL and/or Guaranteed-Bitrate-DL AVPs.
         The Allocation-Retention-Priority AVP is an indicator of the priority of allocation and retention for the Service Data Flow.
         If the QoS-Information AVP has been supplied previously but is omitted in a Diameter message or AVP, the previous information remains valid. If the QoS-Information AVP has not been supplied from the PCRF to the PCEF previously and is omitted in a Diameter message or AVP, no enforcement of the authorized QoS shall be performed.
     
         It has the following ABNF grammar:
     
         QoS-Information ::=     < AVP Header: 1016 >
                             [ QoS-Class-Identifier ]
                             [ Max-Requested-Bandwidth-UL ]
                             [ Max-Requested-Bandwidth-DL ]
                             [ Guaranteed-Bitrate-UL ]
                             [ Guaranteed-Bitrate-DL ]
                             [ Bearer-Identifier ]
                             [ Allocation-Retention-Priority]
                             [ APN-Aggregate-Max-Bitrate-UL]
                             [ APN-Aggregate-Max-Bitrate-DL]
                           * [AVP]
     
     
    • Method Detail

      • hasQosClassIdentifier

        boolean hasQosClassIdentifier()
        Returns true if the QoS-Class-Identifier AVP is present in the QoS-Information AVP.
      • getQosClassIdentifier

        QosClassIdentifier getQosClassIdentifier()
        Returns the value of the QoS-Class-Identifier AVP, of type Enumerated.
        Returns:
        the value of the QoS-Class-Identifier AVP, or null if it has not been set.
      • setQosClassIdentifier

        void setQosClassIdentifier​(QosClassIdentifier qosClassIdentifier)
        Sets the value of the QoS-Class-Identifier AVP, of type Enumerated.
        Throws:
        NullPointerException - if qosClassIdentifier is null.
      • removeQosClassIdentifier

        void removeQosClassIdentifier()
        Removes the QoS-Class-Identifier AVP from the QoS-Information AVP. If the QoS-Class-Identifier AVP is not present, this method returns silently.
      • hasMaxRequestedBandwidthUl

        boolean hasMaxRequestedBandwidthUl()
        Returns true if the Max-Requested-Bandwidth-UL AVP is present in the QoS-Information AVP.
      • getMaxRequestedBandwidthUl

        long getMaxRequestedBandwidthUl()
        Returns the value of the Max-Requested-Bandwidth-UL AVP, of type Unsigned32. Use hasMaxRequestedBandwidthUl() to check the existence of this AVP.
        Returns:
        the value of the Max-Requested-Bandwidth-UL AVP
        Throws:
        IllegalStateException - if the Max-Requested-Bandwidth-UL AVP has not been set.
      • setMaxRequestedBandwidthUl

        void setMaxRequestedBandwidthUl​(long maxRequestedBandwidthUl)
        Sets the value of the Max-Requested-Bandwidth-UL AVP, of type Unsigned32.
      • removeMaxRequestedBandwidthUl

        void removeMaxRequestedBandwidthUl()
        Removes the Max-Requested-Bandwidth-UL AVP from the QoS-Information AVP. If the Max-Requested-Bandwidth-UL AVP is not present, this method returns silently.
      • hasMaxRequestedBandwidthDl

        boolean hasMaxRequestedBandwidthDl()
        Returns true if the Max-Requested-Bandwidth-DL AVP is present in the QoS-Information AVP.
      • getMaxRequestedBandwidthDl

        long getMaxRequestedBandwidthDl()
        Returns the value of the Max-Requested-Bandwidth-DL AVP, of type Unsigned32. Use hasMaxRequestedBandwidthDl() to check the existence of this AVP.
        Returns:
        the value of the Max-Requested-Bandwidth-DL AVP
        Throws:
        IllegalStateException - if the Max-Requested-Bandwidth-DL AVP has not been set.
      • setMaxRequestedBandwidthDl

        void setMaxRequestedBandwidthDl​(long maxRequestedBandwidthDl)
        Sets the value of the Max-Requested-Bandwidth-DL AVP, of type Unsigned32.
      • removeMaxRequestedBandwidthDl

        void removeMaxRequestedBandwidthDl()
        Removes the Max-Requested-Bandwidth-DL AVP from the QoS-Information AVP. If the Max-Requested-Bandwidth-DL AVP is not present, this method returns silently.
      • hasGuaranteedBitrateUl

        boolean hasGuaranteedBitrateUl()
        Returns true if the Guaranteed-Bitrate-UL AVP is present in the QoS-Information AVP.
      • getGuaranteedBitrateUl

        long getGuaranteedBitrateUl()
        Returns the value of the Guaranteed-Bitrate-UL AVP, of type Unsigned32. Use hasGuaranteedBitrateUl() to check the existence of this AVP.
        Returns:
        the value of the Guaranteed-Bitrate-UL AVP
        Throws:
        IllegalStateException - if the Guaranteed-Bitrate-UL AVP has not been set.
      • setGuaranteedBitrateUl

        void setGuaranteedBitrateUl​(long guaranteedBitrateUl)
        Sets the value of the Guaranteed-Bitrate-UL AVP, of type Unsigned32.
      • removeGuaranteedBitrateUl

        void removeGuaranteedBitrateUl()
        Removes the Guaranteed-Bitrate-UL AVP from the QoS-Information AVP. If the Guaranteed-Bitrate-UL AVP is not present, this method returns silently.
      • hasGuaranteedBitrateDl

        boolean hasGuaranteedBitrateDl()
        Returns true if the Guaranteed-Bitrate-DL AVP is present in the QoS-Information AVP.
      • getGuaranteedBitrateDl

        long getGuaranteedBitrateDl()
        Returns the value of the Guaranteed-Bitrate-DL AVP, of type Unsigned32. Use hasGuaranteedBitrateDl() to check the existence of this AVP.
        Returns:
        the value of the Guaranteed-Bitrate-DL AVP
        Throws:
        IllegalStateException - if the Guaranteed-Bitrate-DL AVP has not been set.
      • setGuaranteedBitrateDl

        void setGuaranteedBitrateDl​(long guaranteedBitrateDl)
        Sets the value of the Guaranteed-Bitrate-DL AVP, of type Unsigned32.
      • removeGuaranteedBitrateDl

        void removeGuaranteedBitrateDl()
        Removes the Guaranteed-Bitrate-DL AVP from the QoS-Information AVP. If the Guaranteed-Bitrate-DL AVP is not present, this method returns silently.
      • hasBearerIdentifier

        boolean hasBearerIdentifier()
        Returns true if the Bearer-Identifier AVP is present in the QoS-Information AVP.
      • getBearerIdentifier

        byte[] getBearerIdentifier()
        Returns the value of the Bearer-Identifier AVP, of type OctetString.
        Returns:
        the value of the Bearer-Identifier AVP, or null if it has not been set.
      • setBearerIdentifier

        void setBearerIdentifier​(byte[] bearerIdentifier)
        Sets the value of the Bearer-Identifier AVP, of type OctetString.
        Throws:
        NullPointerException - if bearerIdentifier is null.
      • removeBearerIdentifier

        void removeBearerIdentifier()
        Removes the Bearer-Identifier AVP from the QoS-Information AVP. If the Bearer-Identifier AVP is not present, this method returns silently.
      • hasAllocationRetentionPriority

        boolean hasAllocationRetentionPriority()
        Returns true if the Allocation-Retention-Priority AVP is present in the QoS-Information AVP.
      • getAllocationRetentionPriority

        AllocationRetentionPriority getAllocationRetentionPriority()
        Returns the value of the Allocation-Retention-Priority AVP, of type Grouped.
        Returns:
        the value of the Allocation-Retention-Priority AVP, or null if it has not been set.
      • setAllocationRetentionPriority

        void setAllocationRetentionPriority​(AllocationRetentionPriority allocationRetentionPriority)
        Sets the value of the Allocation-Retention-Priority AVP, of type Grouped.
        Throws:
        NullPointerException - if allocationRetentionPriority is null.
      • removeAllocationRetentionPriority

        void removeAllocationRetentionPriority()
        Removes the Allocation-Retention-Priority AVP from the QoS-Information AVP. If the Allocation-Retention-Priority AVP is not present, this method returns silently.
      • hasApnAggregateMaxBitrateUl

        boolean hasApnAggregateMaxBitrateUl()
        Returns true if the APN-Aggregate-Max-Bitrate-UL AVP is present in the QoS-Information AVP.
      • getApnAggregateMaxBitrateUl

        long getApnAggregateMaxBitrateUl()
        Returns the value of the APN-Aggregate-Max-Bitrate-UL AVP, of type Unsigned32. Use hasApnAggregateMaxBitrateUl() to check the existence of this AVP.
        Returns:
        the value of the APN-Aggregate-Max-Bitrate-UL AVP
        Throws:
        IllegalStateException - if the APN-Aggregate-Max-Bitrate-UL AVP has not been set.
      • setApnAggregateMaxBitrateUl

        void setApnAggregateMaxBitrateUl​(long apnAggregateMaxBitrateUl)
        Sets the value of the APN-Aggregate-Max-Bitrate-UL AVP, of type Unsigned32.
      • removeApnAggregateMaxBitrateUl

        void removeApnAggregateMaxBitrateUl()
        Removes the APN-Aggregate-Max-Bitrate-UL AVP from the QoS-Information AVP. If the APN-Aggregate-Max-Bitrate-UL AVP is not present, this method returns silently.
      • hasApnAggregateMaxBitrateDl

        boolean hasApnAggregateMaxBitrateDl()
        Returns true if the APN-Aggregate-Max-Bitrate-DL AVP is present in the QoS-Information AVP.
      • getApnAggregateMaxBitrateDl

        long getApnAggregateMaxBitrateDl()
        Returns the value of the APN-Aggregate-Max-Bitrate-DL AVP, of type Unsigned32. Use hasApnAggregateMaxBitrateDl() to check the existence of this AVP.
        Returns:
        the value of the APN-Aggregate-Max-Bitrate-DL AVP
        Throws:
        IllegalStateException - if the APN-Aggregate-Max-Bitrate-DL AVP has not been set.
      • setApnAggregateMaxBitrateDl

        void setApnAggregateMaxBitrateDl​(long apnAggregateMaxBitrateDl)
        Sets the value of the APN-Aggregate-Max-Bitrate-DL AVP, of type Unsigned32.
      • removeApnAggregateMaxBitrateDl

        void removeApnAggregateMaxBitrateDl()
        Removes the APN-Aggregate-Max-Bitrate-DL AVP from the QoS-Information AVP. If the APN-Aggregate-Max-Bitrate-DL AVP is not present, this method returns silently.
      • getExtensionAvps

        DiameterAvp[] getExtensionAvps()
        Returns the set of extension AVPs. The returned array contains the extension AVPs in the order they appear in the QoS-Information AVP. A return value of null implies that no extensions AVPs have been set.
      • setExtensionAvps

        void setExtensionAvps​(DiameterAvp[] avps)
                       throws AvpNotAllowedException
        Sets the set of extension AVPs with all the values in the given array. The AVPs will be added to QoS-Information AVP in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getExtensionAvps() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
        Throws:
        AvpNotAllowedException - if an AVP is encountered of a type already known to this class (i.e. an AVP for which get/set methods already appear in this class)
        NullPointerException - if avps is null.
      • removeExtensionAvps

        void removeExtensionAvps()
        Removes all extension AVPs from the QoS-Information AVP. If no extension AVPs are present, this method returns silently.