---
name: "struct_tid_ampdu_rx"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/struct_tid_ampdu_rx"
---

# struct\_tid\_ampdu\_rx(9)

TID aggregation information (Rx).

## NAME

struct\_tid\_ampdu\_rx - TID aggregation information (Rx).

## SYNOPSIS

```
struct tid_ampdu_rx {
  struct rcu_head rcu_head;
  spinlock_t reorder_lock;
  struct sk_buff ** reorder_buf;
  unsigned long * reorder_time;
  struct timer_list session_timer;
  struct timer_list reorder_timer;
  unsigned long last_rx;
  u16 head_seq_num;
  u16 stored_mpdu_num;
  u16 ssn;
  u16 buf_size;
  u16 timeout;
  u8 dialog_token;
  bool removed;
};
```

## MEMBERS

rcu\_head

RCU head used for freeing this struct

reorder\_lock

serializes access to reorder buffer, see below.

reorder\_buf

buffer to reorder incoming aggregated MPDUs

reorder\_time

jiffies when skb was added

session\_timer

check if peer keeps Tx-ing on the TID (by timeout value)

reorder\_timer

releases expired frames from the reorder buffer.

last\_rx

jiffies of last rx activity

head\_seq\_num

head sequence number in reordering buffer.

stored\_mpdu\_num

number of MPDUs in reordering buffer

ssn

Starting Sequence Number expected to be aggregated.

buf\_size

buffer size for incoming A-MPDUs

timeout

reset timer value (in TUs).

dialog\_token

dialog token for aggregation session

removed

this session is removed (but might have been found due to RCU)

## DESCRIPTION

This structure's lifetime is managed by RCU, assignments to the array holding it must hold the aggregation mutex.

The *reorder\_lock* is used to protect the members of this struct, except for *timeout*, *buf\_size* and *dialog\_token*, which are constant across the lifetime of the struct (the dialog token being used only for debugging).

## AUTHOR

**Johannes Berg** \<johannes@sipsolutions.net\>

Author.

## COPYRIGHT
