Distributed Coordination Function (DCF)

The dcf application is responsible for implementing the Distributed Coordination Function of the 802.11 standard (Section 10.3 of 802.11-2016). The architecture

Rx

Receptions, independent of control packet transmission responses, run without dcf application involvement. Received payloads are passed to Linux directly via custom PL hardware. The dcf application is responsible for monitoring receptions, updating Block ACK bitmaps state with FCS results, and generating control packet transmission responses where appropriate.

Tx

Transmissions are dealt with in lockstep with linux-dev (the Linux Device Interface). New transmissions are requested by linux-dev via the IPC Framework and are reported back to linux-dev` upon completion via the same mechanism. The dcf code never waits on hardware; interrupts are used when the application must react to an event, allowing Tx and and Rx state to be interleaved.

Beacons

Beacon transmissions are unique in that there are very strict requirements dictating when they should be sent. This allows client stations to doze to save power and wake up in a narrow window around when a beacon is expected. The dcf application is responsible for achieving these target beacon transmission times (TBTT).