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]
-
-
Field Summary
-
Fields inherited from interface org.jainslee.resources.diameter.base.DiameterAvp
FLAG_RULE_MAY, FLAG_RULE_MUST, FLAG_RULE_MUSTNOT
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AllocationRetentionPriority
getAllocationRetentionPriority()
Returns the value of the Allocation-Retention-Priority AVP, of type Grouped.long
getApnAggregateMaxBitrateDl()
Returns the value of the APN-Aggregate-Max-Bitrate-DL AVP, of type Unsigned32.long
getApnAggregateMaxBitrateUl()
Returns the value of the APN-Aggregate-Max-Bitrate-UL AVP, of type Unsigned32.byte[]
getBearerIdentifier()
Returns the value of the Bearer-Identifier AVP, of type OctetString.DiameterAvp[]
getExtensionAvps()
Returns the set of extension AVPs.long
getGuaranteedBitrateDl()
Returns the value of the Guaranteed-Bitrate-DL AVP, of type Unsigned32.long
getGuaranteedBitrateUl()
Returns the value of the Guaranteed-Bitrate-UL AVP, of type Unsigned32.long
getMaxRequestedBandwidthDl()
Returns the value of the Max-Requested-Bandwidth-DL AVP, of type Unsigned32.long
getMaxRequestedBandwidthUl()
Returns the value of the Max-Requested-Bandwidth-UL AVP, of type Unsigned32.QosClassIdentifier
getQosClassIdentifier()
Returns the value of the QoS-Class-Identifier AVP, of type Enumerated.boolean
hasAllocationRetentionPriority()
Returns true if the Allocation-Retention-Priority AVP is present in the QoS-Information AVP.boolean
hasApnAggregateMaxBitrateDl()
Returns true if the APN-Aggregate-Max-Bitrate-DL AVP is present in the QoS-Information AVP.boolean
hasApnAggregateMaxBitrateUl()
Returns true if the APN-Aggregate-Max-Bitrate-UL AVP is present in the QoS-Information AVP.boolean
hasBearerIdentifier()
Returns true if the Bearer-Identifier AVP is present in the QoS-Information AVP.boolean
hasGuaranteedBitrateDl()
Returns true if the Guaranteed-Bitrate-DL AVP is present in the QoS-Information AVP.boolean
hasGuaranteedBitrateUl()
Returns true if the Guaranteed-Bitrate-UL AVP is present in the QoS-Information AVP.boolean
hasMaxRequestedBandwidthDl()
Returns true if the Max-Requested-Bandwidth-DL AVP is present in the QoS-Information AVP.boolean
hasMaxRequestedBandwidthUl()
Returns true if the Max-Requested-Bandwidth-UL AVP is present in the QoS-Information AVP.boolean
hasQosClassIdentifier()
Returns true if the QoS-Class-Identifier AVP is present in the QoS-Information AVP.void
removeAllocationRetentionPriority()
Removes the Allocation-Retention-Priority AVP from the QoS-Information AVP.void
removeApnAggregateMaxBitrateDl()
Removes the APN-Aggregate-Max-Bitrate-DL AVP from the QoS-Information AVP.void
removeApnAggregateMaxBitrateUl()
Removes the APN-Aggregate-Max-Bitrate-UL AVP from the QoS-Information AVP.void
removeBearerIdentifier()
Removes the Bearer-Identifier AVP from the QoS-Information AVP.void
removeExtensionAvps()
Removes all extension AVPs from the QoS-Information AVP.void
removeGuaranteedBitrateDl()
Removes the Guaranteed-Bitrate-DL AVP from the QoS-Information AVP.void
removeGuaranteedBitrateUl()
Removes the Guaranteed-Bitrate-UL AVP from the QoS-Information AVP.void
removeMaxRequestedBandwidthDl()
Removes the Max-Requested-Bandwidth-DL AVP from the QoS-Information AVP.void
removeMaxRequestedBandwidthUl()
Removes the Max-Requested-Bandwidth-UL AVP from the QoS-Information AVP.void
removeQosClassIdentifier()
Removes the QoS-Class-Identifier AVP from the QoS-Information AVP.void
setAllocationRetentionPriority(AllocationRetentionPriority allocationRetentionPriority)
Sets the value of the Allocation-Retention-Priority AVP, of type Grouped.void
setApnAggregateMaxBitrateDl(long apnAggregateMaxBitrateDl)
Sets the value of the APN-Aggregate-Max-Bitrate-DL AVP, of type Unsigned32.void
setApnAggregateMaxBitrateUl(long apnAggregateMaxBitrateUl)
Sets the value of the APN-Aggregate-Max-Bitrate-UL AVP, of type Unsigned32.void
setBearerIdentifier(byte[] bearerIdentifier)
Sets the value of the Bearer-Identifier AVP, of type OctetString.void
setExtensionAvps(DiameterAvp[] avps)
Sets the set of extension AVPs with all the values in the given array.void
setGuaranteedBitrateDl(long guaranteedBitrateDl)
Sets the value of the Guaranteed-Bitrate-DL AVP, of type Unsigned32.void
setGuaranteedBitrateUl(long guaranteedBitrateUl)
Sets the value of the Guaranteed-Bitrate-UL AVP, of type Unsigned32.void
setMaxRequestedBandwidthDl(long maxRequestedBandwidthDl)
Sets the value of the Max-Requested-Bandwidth-DL AVP, of type Unsigned32.void
setMaxRequestedBandwidthUl(long maxRequestedBandwidthUl)
Sets the value of the Max-Requested-Bandwidth-UL AVP, of type Unsigned32.void
setQosClassIdentifier(QosClassIdentifier qosClassIdentifier)
Sets the value of the QoS-Class-Identifier AVP, of type Enumerated.-
Methods inherited from interface org.jainslee.resources.diameter.base.DiameterAvp
byteArrayValue, clone, doubleValue, floatValue, getCode, getMandatoryRule, getName, getProtectedRule, getType, getVendorID, groupedAvpValue, intValue, longValue, stringValue
-
-
-
-
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
- ifqosClassIdentifier
isnull
.
-
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. UsehasMaxRequestedBandwidthUl()
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. UsehasMaxRequestedBandwidthDl()
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. UsehasGuaranteedBitrateUl()
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. UsehasGuaranteedBitrateDl()
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
- ifbearerIdentifier
isnull
.
-
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
- ifallocationRetentionPriority
isnull
.
-
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. UsehasApnAggregateMaxBitrateUl()
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. UsehasApnAggregateMaxBitrateDl()
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
- ifavps
isnull
.
-
removeExtensionAvps
void removeExtensionAvps()
Removes all extension AVPs from the QoS-Information AVP. If no extension AVPs are present, this method returns silently.
-
-