bcm-v4

[Specification

This page describes the RX header that is prepended to each received frame.

RX frame format

When a frame is received (via DMA), it has one of the two following structures:

Type 1

Bytes

0-29

30-36

37-...

4 last bytes

Contents

RX header

PLCP header

payload

FCS

Type 2

Bytes

0-29

30/31

32-38

39-...

4 last bytes

Contents

RX header

padding

PLCP header

payload

FCS

The type 2 frame contains two pad bytes in order to align the IP header to a 4-byte boundary. This is done by the microcode for QoS and 4-address ("WDS") frames.

FIXME: review this: [When receiving via PIO, the RX header has to be built manually by receiving 20 bytes from the PIO queue and storing them into the 30 byte area starting at offset 2, the length is not sent explicitly.]

RX header format

The RX header consists of 16-bit values in little endian. The following table lists the meaning of each such value.

Index

Meaning

0

frame length, not including the RX header length

1

unused padding

2

PHY RX Status 0

3

PHY RX Status 1

4

PHY RX Status 2

5

PHY RX Status 3

6

MAC RX Status (low 16 bits)

7

MAC RX Status (high 16 bits)

8

MAC time (time of first MAC symbol plus PHY delay)

9

RX Channel

PHY RX Status 0

Mask

Meaning

0xF000

N PHY: bitmask of used antennas

0x4000

legacy PHY gain control

0x0200

PLCP header integrity check failed

0x0100

PCLP violation

0x0080

received with short preamble

0x0040

CRS lost during CCK reception (CCK only)

0x0020

G PHY: RX antenna, N PHY: received in upper sideband

0x0010

unsupported rate received

0x000C

clip count adjustment steps done by the AGC (N PHY)

0x0003

frame type, 0: CCK, 1: OFDM, 2: pre-N, 3: std-N (not valid with A PHY)

PHY RX Status 1

Mask

Meaning

Meaning (N PHY)

0xFF00

signal quality

Power 0

0x00FF

JSSI

Power 1

PHY RX Status 2

Mask

Meaning

0xC000

LNA gain

0x3C00

PNA gain

0x03FF

F offset (?)

Mask

Meaning (N PHY)

0xFF00

spatial conditioning quality

0x00F0

antenna 1 signal quality

0x000F

antenna 0 signal quality

0x00FF

B-PHY signal quality (when frametype is CCK)

PHY RX Status 3

Mask

Meaning

0x1800

DIG gain

0x0400

TR state

Mask

Meaning (N PHY)

0xF000

mixed-mode preamble rate field

0x0FFF

mixed-mode preamble length

MAC RX Status

Mask

Meaning

0x01000000

PHY RXST (RX status) valid

0x00100000

TKIP MIC error

0x00080000

TKIP MIC attempted

0x00060000

Aggregation type (values could be: 1: first, 0: intermediate, 2: last, 3: in-one?)

0x00010000

A-MSDU mask

0x00008000

beacon sent flag (?)

0x000007E0

key index

0x00000010

decrypt error (frame data is decrypted but probably with the wrong key or ICV failed; data will most likely be mangled)

0x00000008

decryption attempted

0x00000004

pad bytes present (Type 2 used)

0x00000002

response frame transmitted??

0x00000001

FCS error

RX Channel

Mask

Meaning

0x1000

40 MHz

taken from Current Channel SHM for revision 11/13 (N/LP PHY);
taken from PHY register 0x8 for other revisions

0x0800

5 GHz

0x07F8

Channel ID

0x0007

PHY type


Exported/Archived from the wiki to HTML on 2016-10-27