ENUM IWL_MVM_RX_STATUS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum iwl_mvm_rx_status β€” from the Kernel API Manual, bestie ✨

okay so. this is a page straight out of the Kernel API Manual, and it's all about enum iwl_mvm_rx_status β€” the little status blob the firmware writes for literally every single Rx packet πŸŽ€. no cap, every one.


🌸 NAME 🌸

enum iwl_mvm_rx_status β€” written by fw for each Rx packet

like, the firmware itself hands you this on a platter for every packet it receives. iconic behavior honestly 🫢


✨ SYNOPSIS ✨

enum iwl_mvm_rx_status {
    RX_MPDU_RES_STATUS_CRC_OK ,
    RX_MPDU_RES_STATUS_OVERRUN_OK ,
    RX_MPDU_RES_STATUS_SRC_STA_FOUND ,
    RX_MPDU_RES_STATUS_KEY_VALID ,
    RX_MPDU_RES_STATUS_ICV_OK ,
    RX_MPDU_RES_STATUS_MIC_OK ,
    RX_MPDU_RES_STATUS_TTAK_OK ,
    RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR ,
    RX_MPDU_RES_STATUS_SEC_NO_ENC ,
    RX_MPDU_RES_STATUS_SEC_WEP_ENC ,
    RX_MPDU_RES_STATUS_SEC_CCM_ENC ,
    RX_MPDU_RES_STATUS_SEC_TKIP_ENC ,
    RX_MPDU_RES_STATUS_SEC_EXT_ENC ,
    RX_MPDU_RES_STATUS_SEC_CMAC_GMAC_ENC ,
    RX_MPDU_RES_STATUS_SEC_ENC_ERR ,
    RX_MPDU_RES_STATUS_SEC_ENC_MSK ,
    RX_MPDU_RES_STATUS_DEC_DONE ,
    RX_MPDU_RES_STATUS_CSUM_DONE ,
    RX_MPDU_RES_STATUS_CSUM_OK ,
    RX_MDPU_RES_STATUS_STA_ID_SHIFT ,
    RX_MPDU_RES_STATUS_STA_ID_MSK

};

that's the whole roster πŸ’– (yes, the blank line before the closing brace stays, it's part of the vibe now)


πŸ¦‹ Constants πŸ¦‹

okay bestie, one by one, no skipping, we're doing all of them πŸ‘‘

  • RX_MPDU_RES_STATUS_CRC_OK β€” the CRC is fine, we love to see it πŸ’š
  • RX_MPDU_RES_STATUS_OVERRUN_OK β€” there was no RXE overflow. no overflow, no drama ✨
  • RX_MPDU_RES_STATUS_SRC_STA_FOUND β€” the station was found. she's here, she's accounted for πŸŽ€
  • RX_MPDU_RES_STATUS_KEY_VALID β€” the key was valid πŸ”‘
  • RX_MPDU_RES_STATUS_ICV_OK β€” the ICV is fine. and if it's not fine? the packet is destroyed. πŸ’€ gone. say bye.
  • RX_MPDU_RES_STATUS_MIC_OK β€” used for CCM alg only. the TKIP MIC is checked in the driver, not here, so don't come for this flag about it πŸ™ˆ
  • RX_MPDU_RES_STATUS_TTAK_OK β€” the TTAK is fine βœ…
  • RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR β€” valid for alg = CCM_CMAC or alg = CCM only. it checks for replay attacks on 11w frames πŸ›‘οΈ
  • RX_MPDU_RES_STATUS_SEC_NO_ENC β€” this frame is not encrypted. out here living free 🌈
  • RX_MPDU_RES_STATUS_SEC_WEP_ENC β€” this frame is encrypted using WEP
  • RX_MPDU_RES_STATUS_SEC_CCM_ENC β€” this frame is encrypted using CCM
  • RX_MPDU_RES_STATUS_SEC_TKIP_ENC β€” this frame is encrypted using TKIP
  • RX_MPDU_RES_STATUS_SEC_EXT_ENC β€” this frame is encrypted using extension algorithm
  • RX_MPDU_RES_STATUS_SEC_CMAC_GMAC_ENC β€” this frame is protected using CMAC or GMAC πŸ”
  • RX_MPDU_RES_STATUS_SEC_ENC_ERR β€” this frame couldn't be decrypted 😭 it tried its best
  • RX_MPDU_RES_STATUS_SEC_ENC_MSK β€” the bitmask of the encryption algorithm 🎭
  • RX_MPDU_RES_STATUS_DEC_DONE β€” this frame has been successfully decrypted. slay πŸ’…
  • RX_MPDU_RES_STATUS_CSUM_DONE β€” the checksum was done by the hw πŸ–₯️
  • RX_MPDU_RES_STATUS_CSUM_OK β€” the checksum found no errors ✨
  • RX_MDPU_RES_STATUS_STA_ID_SHIFT β€” station ID bit shift
  • RX_MPDU_RES_STATUS_STA_ID_MSK β€” station ID mask

🧚 SEE ALSO 🧚

all the siblings live in the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/rx.h, and they are so worth a read, fr fr:

  • struct iwl_rx_phy_info(9)
  • struct iwl_rx_mpdu_res_start(9)
  • enum iwl_rx_phy_flags(9)
  • struct iwl_rx_mpdu_desc_v1(9)
  • struct iwl_rx_mpdu_desc_v3(9)
  • struct iwl_rx_mpdu_desc(9)
  • struct iwl_rx_no_data(9)
  • struct iwl_rx_no_data_ver_3(9)
  • enum iwl_bar_frame_release_sta_tid(9)
  • enum iwl_bar_frame_release_ba_info(9)
  • struct iwl_bar_frame_release(9)
  • struct iwl_rss_config_cmd(9)
  • struct iwl_rxq_sync_cmd(9)
  • struct iwl_rxq_sync_notification(9)
  • enum iwl_mvm_pm_event(9)
  • struct iwl_mvm_pm_state_notification(9)
  • struct iwl_ba_window_status_notif(9)
  • struct iwl_rfh_queue_data(9)
  • struct iwl_rfh_queue_config(9)
  • struct iwl_beacon_filter_notif_v1(9)
  • struct iwl_beacon_filter_notif(9)
  • struct iwl_rx_phy_air_sniffer_ntfy(9)

and that's the whole page bestie, nothing cut, nothing skipped, every single constant accounted for πŸ’–

okay and for the cute sign-off: this one came from ./drivers/net/wireless/intel/i... and it's dated October 2026, filed under enum iwl_mvm_rx_status(9). that's a wrap, mwah 😘🌸

πŸ“¦ where this page comes from