Interface FlowInformation

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface FlowInformation
    extends GroupedAvp
    Defines an interface representing the Flow-Information grouped AVP type. From the Diameter Gx Reference Point Protocol Details (3GPP TS 29.212 V11.9.0) specification:
     5.3.53  Flow-Information
     
         The Flow-Information AVP (AVP code 1058) is of type Grouped, and it is sent from the PCRF to the PCEF and contains the information from a single IP flow packet filter.
         The Flow-Description, ToS-Traffic-Class, Security-Parameter-Index and Flow-Label AVPs specify the parameters to be used for matching payload packets. If any of these AVPs is present, then the Flow-Direction AVP shall also be included. If the Flow-Information AVP includes any of the Flow-Description, ToS-Traffic-Class, Security-Parameter-Index or Flow-Label AVPs, these values replace any previous value for all the Flow-Description, ToS-Traffic-Class, Security-Parameter-Index and Flow-Label AVPs.
         The Flow-Information AVP shall include the Flow-Direction AVP, declaring in what direction(s) the filter applies.
         The PCRF shall only assign the packet filter identifier in the Packet-Filter-Identifier AVP for PCC rules created as a result of UE-initiated resource allocation. 
         For PCC rules modified as a result of UE-initiated resource�modification that include the modified Flow-Information AVP, the PCRF shall include the packet filter identifier in the Packet-Filter-Identifier AVP.
         The Flow-Information AVP may also include the Type-of-Service/Traffic Class, the IPSec SPI, and the Flow Label. The values of these AVPs are obtained from the packet filter information provided by the PCEF.
         The Flow-Direction AVP shall be included unless no other AVPs other than Packet-Filter-Identifier AVP are included within the Flow-Information AVP.
     
         AVP Format:
     
         Flow-Information ::= < AVP Header: 1058 >
                                      [ Flow-Description ]
                                      [ Packet-Filter-Identifier ]
                                      [ Packet-Filter-Usage ]
                                      [ ToS-Traffic-Class ]
                                      [ Security-Parameter-Index ]
                                      [ Flow-Label ]
                                      [ Flow-Direction ]
                                     *[ AVP ]
     
     
    • Method Detail

      • hasFlowDescription

        boolean hasFlowDescription()
        Returns true if the Flow-Description AVP is present in the Flow-Information AVP.
      • getFlowDescription

        IPFilterRule getFlowDescription()
        Returns the value of the Flow-Description AVP, of type IPFilterRule.
        Returns:
        the value of the Flow-Description AVP, or null if it has not been set.
      • setFlowDescription

        void setFlowDescription​(IPFilterRule flowDescription)
        Sets the value of the Flow-Description AVP, of type IPFilterRule.
        Throws:
        NullPointerException - if flowDescription is null.
      • removeFlowDescription

        void removeFlowDescription()
        Removes the Flow-Description AVP from the Flow-Information AVP. If the Flow-Description AVP is not present, this method returns silently.
      • hasPacketFilterIdentifier

        boolean hasPacketFilterIdentifier()
        Returns true if the Packet-Filter-Identifier AVP is present in the Flow-Information AVP.
      • getPacketFilterIdentifier

        byte[] getPacketFilterIdentifier()
        Returns the value of the Packet-Filter-Identifier AVP, of type OctetString.
        Returns:
        the value of the Packet-Filter-Identifier AVP, or null if it has not been set.
      • setPacketFilterIdentifier

        void setPacketFilterIdentifier​(byte[] packetFilterIdentifier)
        Sets the value of the Packet-Filter-Identifier AVP, of type OctetString.
        Throws:
        NullPointerException - if packetFilterIdentifier is null.
      • removePacketFilterIdentifier

        void removePacketFilterIdentifier()
        Removes the Packet-Filter-Identifier AVP from the Flow-Information AVP. If the Packet-Filter-Identifier AVP is not present, this method returns silently.
      • hasPacketFilterUsage

        boolean hasPacketFilterUsage()
        Returns true if the Packet-Filter-Usage AVP is present in the Flow-Information AVP.
      • getPacketFilterUsage

        PacketFilterUsage getPacketFilterUsage()
        Returns the value of the Packet-Filter-Usage AVP, of type Enumerated.
        Returns:
        the value of the Packet-Filter-Usage AVP, or null if it has not been set.
      • setPacketFilterUsage

        void setPacketFilterUsage​(PacketFilterUsage packetFilterUsage)
        Sets the value of the Packet-Filter-Usage AVP, of type Enumerated.
        Throws:
        NullPointerException - if packetFilterUsage is null.
      • removePacketFilterUsage

        void removePacketFilterUsage()
        Removes the Packet-Filter-Usage AVP from the Flow-Information AVP. If the Packet-Filter-Usage AVP is not present, this method returns silently.
      • hasTosTrafficClass

        boolean hasTosTrafficClass()
        Returns true if the ToS-Traffic-Class AVP is present in the Flow-Information AVP.
      • getTosTrafficClass

        byte[] getTosTrafficClass()
        Returns the value of the ToS-Traffic-Class AVP, of type OctetString.
        Returns:
        the value of the ToS-Traffic-Class AVP, or null if it has not been set.
      • setTosTrafficClass

        void setTosTrafficClass​(byte[] tosTrafficClass)
        Sets the value of the ToS-Traffic-Class AVP, of type OctetString.
        Throws:
        NullPointerException - if tosTrafficClass is null.
      • removeTosTrafficClass

        void removeTosTrafficClass()
        Removes the ToS-Traffic-Class AVP from the Flow-Information AVP. If the ToS-Traffic-Class AVP is not present, this method returns silently.
      • hasSecurityParameterIndex

        boolean hasSecurityParameterIndex()
        Returns true if the Security-Parameter-Index AVP is present in the Flow-Information AVP.
      • getSecurityParameterIndex

        byte[] getSecurityParameterIndex()
        Returns the value of the Security-Parameter-Index AVP, of type OctetString.
        Returns:
        the value of the Security-Parameter-Index AVP, or null if it has not been set.
      • setSecurityParameterIndex

        void setSecurityParameterIndex​(byte[] securityParameterIndex)
        Sets the value of the Security-Parameter-Index AVP, of type OctetString.
        Throws:
        NullPointerException - if securityParameterIndex is null.
      • removeSecurityParameterIndex

        void removeSecurityParameterIndex()
        Removes the Security-Parameter-Index AVP from the Flow-Information AVP. If the Security-Parameter-Index AVP is not present, this method returns silently.
      • hasFlowLabel

        boolean hasFlowLabel()
        Returns true if the Flow-Label AVP is present in the Flow-Information AVP.
      • getFlowLabel

        byte[] getFlowLabel()
        Returns the value of the Flow-Label AVP, of type OctetString.
        Returns:
        the value of the Flow-Label AVP, or null if it has not been set.
      • setFlowLabel

        void setFlowLabel​(byte[] flowLabel)
        Sets the value of the Flow-Label AVP, of type OctetString.
        Throws:
        NullPointerException - if flowLabel is null.
      • removeFlowLabel

        void removeFlowLabel()
        Removes the Flow-Label AVP from the Flow-Information AVP. If the Flow-Label AVP is not present, this method returns silently.
      • hasFlowDirection

        boolean hasFlowDirection()
        Returns true if the Flow-Direction AVP is present in the Flow-Information AVP.
      • getFlowDirection

        FlowDirection getFlowDirection()
        Returns the value of the Flow-Direction AVP, of type Enumerated.
        Returns:
        the value of the Flow-Direction AVP, or null if it has not been set.
      • setFlowDirection

        void setFlowDirection​(FlowDirection flowDirection)
        Sets the value of the Flow-Direction AVP, of type Enumerated.
        Throws:
        NullPointerException - if flowDirection is null.
      • removeFlowDirection

        void removeFlowDirection()
        Removes the Flow-Direction AVP from the Flow-Information AVP. If the Flow-Direction 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 Flow-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 Flow-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 Flow-Information AVP. If no extension AVPs are present, this method returns silently.