Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/net/IpSecTransformState#nestedclasses) \| [Inherited Constants](https://developer.android.com/reference/android/net/IpSecTransformState#inhconstants) \| [Fields](https://developer.android.com/reference/android/net/IpSecTransformState#lfields) \| [Methods](https://developer.android.com/reference/android/net/IpSecTransformState#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/net/IpSecTransformState#inhmethods)

# IpSecTransformState

*** ** * ** ***

` public final class IpSecTransformState `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/android/os/Parcelable `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.net.IpSecTransformState |

<br />

*** ** * ** ***

This class represents a snapshot of the state of an IpSecTransform

This class provides the current state of an IpSecTransform, enabling link metric analysis by the caller. Use cases include understanding transform usage, such as packet and byte counts, as well as observing out-of-order delivery by checking the bitmap. Additionally, callers can query IpSecTransformStates at two timestamps. By comparing the changes in packet counts and sequence numbers, callers can estimate IPsec data loss in the inbound direction.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/net/IpSecTransformState.Builder` Builder class for testing purposes Except for testing, IPsec callers normally do not instantiate `https://developer.android.com/reference/android/net/IpSecTransformState` themselves but instead get a reference via `https://developer.android.com/reference/android/net/IpSecTransformState` |

### Inherited constants

From interface `https://developer.android.com/reference/android/os/Parcelable` `int` `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR`

Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`

Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/net/IpSecTransformState>` | `https://developer.android.com/reference/android/net/IpSecTransformState#CREATOR` <br /> |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/net/IpSecTransformState#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` long` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getByteCount()() ` Retrieve the number of bytes processed so far as an unsigned long The byte count direction (inbound or outbound) aligns with the direction in which the IpSecTransform is applied to. |
| ` long` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getPacketCount()() ` Retrieve the number of packets processed so far as an unsigned long. |
| ` byte[]` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getReplayBitmap()() ` Retrieve the replay bitmap This bitmap represents a replay window, allowing the caller to observe out-of-order delivery. |
| ` long` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getRxHighestSequenceNumber()() ` Retrieve the highest sequence number received so far as an unsigned long |
| ` long` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getTimestampMillis()() ` Retrieve the timestamp (milliseconds) when this state was created, as per `https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime()` |
| ` long` | ` https://developer.android.com/reference/android/net/IpSecTransformState#getTxHighestSequenceNumber()() ` Retrieve the highest sequence number sent so far as an unsigned long |
| ` void` | ` https://developer.android.com/reference/android/net/IpSecTransformState#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel out, int flags) ` Flatten this object in to a Parcel. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/android/os/Parcelable ` ` abstract int` ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() `

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
` abstract void` ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) `

Flatten this object in to a Parcel.

## Fields

### CREATOR

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Creator<IpSecTransformState> CREATOR
```

<br />

<br />

## Public methods

### describeContents

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`, the return value of this method must include the `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### getByteCount

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getByteCount ()
```

Retrieve the number of bytes processed so far as an unsigned long

The byte count direction (inbound or outbound) aligns with the direction in which the IpSecTransform is applied to.

<br />

| Returns ||
|---|---|
| `long` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setByteCount(long)`

### getPacketCount

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getPacketCount ()
```

Retrieve the number of packets processed so far as an unsigned long.

The packet count direction (inbound or outbound) aligns with the direction in which the IpSecTransform is applied to.

<br />

| Returns ||
|---|---|
| `long` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setPacketCount(long)`

### getReplayBitmap

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public byte[] getReplayBitmap ()
```

Retrieve the replay bitmap

This bitmap represents a replay window, allowing the caller to observe out-of-order delivery. The last bit represents the highest sequence number received so far and bits for the received packets will be marked as true.

The size of a replay bitmap will never change over the lifetime of an IpSecTransform

The replay bitmap is solely useful for inbound IpSecTransforms. For outbound IpSecTransforms, all bits will be unchecked.

<br />

| Returns ||
|---|---|
| `byte[]` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setReplayBitmap(byte[])`

### getRxHighestSequenceNumber

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getRxHighestSequenceNumber ()
```

Retrieve the highest sequence number received so far as an unsigned long

<br />

| Returns ||
|---|---|
| `long` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setRxHighestSequenceNumber(long)`

### getTimestampMillis

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getTimestampMillis ()
```

Retrieve the timestamp (milliseconds) when this state was created, as per `https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime()`

<br />

| Returns ||
|---|---|
| `long` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setTimestampMillis(long)`

### getTxHighestSequenceNumber

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getTxHighestSequenceNumber ()
```

Retrieve the highest sequence number sent so far as an unsigned long

<br />

| Returns ||
|---|---|
| `long` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/net/IpSecTransformState.Builder#setTxHighestSequenceNumber(long)`

### writeToParcel

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void writeToParcel (Parcel out, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `out` | `Parcel`: This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |