Changes between Version 11 and Version 12 of 802.11/PacketFlow
- Timestamp:
- Oct 14, 2014, 4:01:00 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
802.11/PacketFlow
v11 v12 90 90 #!c 91 91 typedef struct{ 92 u8 state; 93 u8 rate; 94 u16 length; 95 s8 rx_power; 96 u8 rf_gain; 97 u8 bb_gain; 98 u8 channel; 99 u8 flags; 100 u8 ant_mode; 92 u8 state; ///< Packet buffer state - RX_MPDU_STATE_EMPTY, RX_MPDU_STATE_RX_PENDING, RX_MPDU_STATE_FCS_GOOD or RX_MPDU_STATE_FCS_BAD 93 u8 rate; ///< PHY rate index 94 u16 length; ///< Number of bytes in MAC packet, including MAC header and FCS 95 s8 rx_power; ///< Rx power, in dBm 96 u8 rf_gain; ///< Gain setting of radio Rx LNA, in [0,1,2] 97 u8 bb_gain; ///< Gain setting of radio Rx VGA, in [0,1,...31] 98 u8 channel; ///< Channel index 99 u8 flags; ///< Bit flags 100 u8 ant_mode; ///< Rx antenna selection 101 101 u8 reserved[2]; 102 u32 additional_info; 103 u64 timestamp; 104 u32 channel_est[64]; 105 } rx_frame_info; //280 bytes (24 bytes for scalar fields + 256 bytes for channel estimates) 106 }}} 102 u32 additional_info;///< Field to hold MAC-specific info, such as a pointer to a station_info 103 u64 timestamp; ///< MAC timestamp at time of reception 104 u32 channel_est[64];///< Rx PHY channel estimates 105 } rx_frame_info; 107 106 108 107 The PHY begins writing received bytes immediately after the {{{rx_frame_info}}}. The received SIGNAL and SERVICE fields are written to the first 5 bytes following the {{{rx_frame_info}}}. The PHY then skips 3 bytes and writes the next received byte (the first byte of the MAC header) to 8 bytes past the rx_frame_info. This convention aligns received payloads to a 64-bit boundary, easing access by the MAC software and DMAs. Generally the MAC software ignores the SIGNAL and SERVICE fields in the Rx packet buffer, instead relying on the rate/length values provided by the MAC core.