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 V10.1.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 ]
-
-
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 DiameterAvp[]
getExtensionAvps()
Returns the set of extension AVPs.IPFilterRule[]
getTunnelHeaderFilters()
Returns the set of Tunnel-Header-Filter AVPs.long
getTunnelHeaderLength()
Returns the value of the Tunnel-Header-Length AVP, of type Unsigned32.boolean
hasTunnelHeaderLength()
Returns true if the Tunnel-Header-Length AVP is present in the Tunnel-Information AVP.void
removeExtensionAvps()
Removes all extension AVPs from the Tunnel-Information AVP.void
removeTunnelHeaderFilters()
Removes all Tunnel-Header-Filter AVPs from the Tunnel-Information AVP.void
removeTunnelHeaderLength()
Removes the Tunnel-Header-Length AVP from the Tunnel-Information AVP.void
setExtensionAvps(DiameterAvp[] avps)
Sets the set of extension AVPs with all the values in the given array.void
setTunnelHeaderFilter(IPFilterRule tunnelHeaderFilter)
Sets a single Tunnel-Header-Filter AVP in the Tunnel-Information AVP, of type IPFilterRule.void
setTunnelHeaderFilters(IPFilterRule[] tunnelHeaderFilters)
Sets the set of Tunnel-Header-Filter AVPs, with all the values in the given array.void
setTunnelHeaderLength(long tunnelHeaderLength)
Sets the value of the Tunnel-Header-Length AVP, of type Unsigned32.-
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
-
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. UsehasTunnelHeaderLength()
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
- iftunnelHeaderFilter
isnull
.
-
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
- iftunnelHeaderFilters
isnull
.
-
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
- ifavps
isnull
.
-
removeExtensionAvps
void removeExtensionAvps()
Removes all extension AVPs from the Tunnel-Information AVP. If no extension AVPs are present, this method returns silently.
-
-