OpenBSD-current should have MIMO support although it hasn't been tested by Imre personally.
There is an IWM_STA_FLG_MIMO_EN_MSK flag in if_iwmreg.h which if set means that a device has a support for MIMO. Here's a part of the if_iwm.c suggesting that MIMO is supported (MIMO is not supported yet, it is just a flag):
static int iwm_mvm_sta_send_to_fw(struct iwm_softc *sc, struct iwm_node *in, int update) { /* ... */ add_sta_cmd.station_flags_msk |= htole32(IWM_STA_FLG_FAT_EN_MSK | IWM_STA_FLG_MIMO_EN_MSK);
On the other hand we later read in the same file that:
static void iwm_setrates(struct iwm_softc *sc, struct iwm_node *in) { /* ... */ /* * are these used? (we don't do SISO or MIMO) * need to set them to non-zero, though, or we get an error. */ lq->single_stream_ant_msk = 1; lq->dual_stream_ant_msk = 1;
No, iwm does not support MIMO yet:
static void iwm_mvm_fill_sf_command(struct iwm_softc *sc, struct iwm_sf_cfg_cmd *sf_cmd, struct ieee80211_node *ni) { /* ... */ #ifdef notyet if (ni->ni_rxmcs[2] != 0) watermark = IWM_SF_W_MARK_MIMO3; else if (ni->ni_rxmcs[1] != 0) watermark = IWM_SF_W_MARK_MIMO2; else #endif
OpenBSD-stable has basic 11n support in iwm thanks to Stefan Sperling (stsp at OpenBSD).
From 80211n:
WiFi suggests that 11ac is barely (or not at all) supported in FreeBSD
Things needed for 11ac support in FreeBSD: FixUpThings
802.11ac TODO list: 80211ac
sys/dev/iwm sys/net80211
indicates that I've not read it yet (and most often just scanned through)
indicates that I've got to investigate whether it is true or not
Special thanks to