Interface TunnelInformation

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface TunnelInformation
    extends GroupedAvp
    Defines an interface representing the Tunnel-Information grouped AVP type. From the Diameter Gx Reference Point Protocol Details (3GPP TS 29.212 V11.9.0) specification:
     5.3.36 Tunnel-Information
     
         The Tunnel-Information AVP (AVP code 1038) is of type Grouped, and it contains the tunnel (outer) header
         information from a single IP flow. The Tunnel-Information AVP is sent from the PCEF to the PCRF and from the
         PCRF to the BBERF.
     
         The Tunnel-Information AVP may include only the Tunnel-Header-Length AVP, only the Tunnel-Header-Filter AVP,
         or both.
     
         The Tunnel-Header-Length AVP provides the length of the tunnel header and identifies the offset where the tunnelled
         payload starts. The BBERF uses the length value provided in Tunnel-Header-Length AVP to locate the inner IP header
         and perform service data flow detection and related QoS control.
         The Tunnel-Header-Filter AVP identifies the tunnel (outer) header information in the downlink and uplink directions.
     
         AVP Format:
     
         Tunnel-Information ::= < AVP Header: 1038 >
                                 [ Tunnel-Header-Length ]
                               *2[ Tunnel-Header-Filter ]
                                *[ AVP ]
     
    • Method Detail

      • hasTunnelHeaderLength

        boolean hasTunnelHeaderLength()
        Returns true if the Tunnel-Header-Length AVP is present in the Tunnel-Information AVP.
      • getTunnelHeaderLength

        long getTunnelHeaderLength()
        Returns the value of the Tunnel-Header-Length AVP, of type Unsigned32. Use hasTunnelHeaderLength() to check the existence of this AVP.
        Returns:
        the value of the Tunnel-Header-Length AVP
        Throws:
        IllegalStateException - if the Tunnel-Header-Length AVP has not been set.
      • setTunnelHeaderLength

        void setTunnelHeaderLength​(long tunnelHeaderLength)
        Sets the value of the Tunnel-Header-Length AVP, of type Unsigned32.
      • removeTunnelHeaderLength

        void removeTunnelHeaderLength()
        Removes the Tunnel-Header-Length AVP from the Tunnel-Information AVP. If the Tunnel-Header-Length AVP is not present, this method returns silently.
      • getTunnelHeaderFilters

        IPFilterRule[] getTunnelHeaderFilters()
        Returns the set of Tunnel-Header-Filter AVPs. The returned array contains the AVPs in the order they appear in the Tunnel-Information AVP. A return value of null implies that no Tunnel-Header-Filter AVPs have been set. The elements in the given array are IPFilterRule objects.
      • setTunnelHeaderFilter

        void setTunnelHeaderFilter​(IPFilterRule tunnelHeaderFilter)
        Sets a single Tunnel-Header-Filter AVP in the Tunnel-Information AVP, of type IPFilterRule.
        Throws:
        NullPointerException - if tunnelHeaderFilter is null.
      • setTunnelHeaderFilters

        void setTunnelHeaderFilters​(IPFilterRule[] tunnelHeaderFilters)
        Sets the set of Tunnel-Header-Filter AVPs, with all the values in the given array. The AVPs will be added to the Tunnel-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 getTunnelHeaderFilters() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
        Throws:
        NullPointerException - if tunnelHeaderFilters is null.
      • removeTunnelHeaderFilters

        void removeTunnelHeaderFilters()
        Removes all Tunnel-Header-Filter AVPs from the Tunnel-Information AVP. If no Tunnel-Header-Filter AVPs are 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 Tunnel-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 Tunnel-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 Tunnel-Information AVP. If no extension AVPs are present, this method returns silently.