Search Linux Wireless

Re: [PATCH] ath5k: add support of HW encryption in management frames

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hiya,

This is cool stuff - but as I don't think MFP is enabled in any
hardware pre-AR9280, I think it's worth doing a lot more testing
before flipping this on.

But very cool indeed. I'll see what it'll take to get it enabled in
the FreeBSD atheros HAL for these chips.



Adrian

On 28 August 2012 02:34, Chun-Yeow Yeoh <yeohchunyeow@xxxxxxxxx> wrote:
> This patch provides the support of hardware encyrption for
> management frame, including the support of AES CMAC. This
> patch is tested with the following chipsets:
> - AR5213A
> - AR5413
> - AR2413/AR2414
>
> Beside, this patch also extends the IBSS RSN to mesh.
>
> Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@xxxxxxxxx>
> ---
>  drivers/net/wireless/ath/ath5k/base.c         |    4 +++-
>  drivers/net/wireless/ath/ath5k/mac80211-ops.c |    7 +++++--
>  2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index a0a202d..084162e 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -2446,7 +2446,9 @@ ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
>         hw->flags = IEEE80211_HW_RX_INCLUDES_FCS |
>                         IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
>                         IEEE80211_HW_SIGNAL_DBM |
> -                       IEEE80211_HW_REPORTS_TX_ACK_STATUS;
> +                       IEEE80211_HW_REPORTS_TX_ACK_STATUS |
> +                       IEEE80211_HW_MFP_CAPABLE |
> +                       IEEE80211_HW_SUPPORTS_PER_STA_GTK;
>
>         hw->wiphy->interface_modes =
>                 BIT(NL80211_IFTYPE_AP) |
> diff --git a/drivers/net/wireless/ath/ath5k/mac80211-ops.c b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
> index df61a09..7f78caa 100644
> --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
> +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
> @@ -489,7 +489,8 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>         if (ath5k_modparam_nohwcrypt)
>                 return -EOPNOTSUPP;
>
> -       if (vif->type == NL80211_IFTYPE_ADHOC &&
> +       if ((vif->type == NL80211_IFTYPE_ADHOC ||
> +            vif->type == NL80211_IFTYPE_MESH_POINT) &&
>             (key->cipher == WLAN_CIPHER_SUITE_TKIP ||
>              key->cipher == WLAN_CIPHER_SUITE_CCMP) &&
>             !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) {
> @@ -502,6 +503,7 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>         case WLAN_CIPHER_SUITE_WEP104:
>         case WLAN_CIPHER_SUITE_TKIP:
>                 break;
> +       case WLAN_CIPHER_SUITE_AES_CMAC:
>         case WLAN_CIPHER_SUITE_CCMP:
>                 if (common->crypt_caps & ATH_CRYPT_CAP_CIPHER_AESCCM)
>                         break;
> @@ -522,7 +524,8 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>                         key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
>                         if (key->cipher == WLAN_CIPHER_SUITE_TKIP)
>                                 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
> -                       if (key->cipher == WLAN_CIPHER_SUITE_CCMP)
> +                       if (key->cipher == WLAN_CIPHER_SUITE_CCMP &&
> +                           !(common->crypt_caps & ATH_CRYPT_CAP_CIPHER_AESCCM))
>                                 key->flags |= IEEE80211_KEY_FLAG_SW_MGMT;
>                         ret = 0;
>                 }
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux