[ath5k-devel] [PATCH 0/8] ath5k 802.11j preparation and cleanup
This series prepares ath5k for 802.11j (4.9GHz) support but most of the patches are just cleaning up things i found in the process. 802.11j is still not enabled. bruno --- Bruno Randolf (8): ath5k: Use mac80211 channel mapping function ath5k: Simplify loop when setting up channels ath5k: Rename ath5k_copy_channels ath5k: ath5k_setup_channels cleanup and whitespace ath5k: Add 802.11j 4.9GHz channels to allowed channels ath5: Remove unused CTL definitions ath5k: Remove unused sc-curmode ath5k: Remove redundant sc-curband drivers/net/wireless/ath/ath5k/base.c | 95 +++ drivers/net/wireless/ath/ath5k/base.h |3 - drivers/net/wireless/ath/ath5k/eeprom.h | 23 3 files changed, 34 insertions(+), 87 deletions(-) -- ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 1/8] ath5k: Use mac80211 channel mapping function
Use mac80211 channel mapping function instead of own homegrown version. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/base.c | 23 --- 1 files changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 09ae4ef..6850112 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -242,18 +242,6 @@ static int ath5k_reg_notifier(struct wiphy *wiphy, struct regulatory_request *re \/ /* - * Convert IEEE channel number to MHz frequency. - */ -static inline short -ath5k_ieee2mhz(short chan) -{ - if (chan = 14 || chan = 27) - return ieee80211chan2mhz(chan); - else - return 2212 + chan * 20; -} - -/* * Returns true for the channel numbers used without all_channels modparam. */ static bool ath5k_is_standard_channel(short chan) @@ -274,6 +262,7 @@ ath5k_copy_channels(struct ath5k_hw *ah, unsigned int max) { unsigned int i, count, size, chfreq, freq, ch; + enum ieee80211_band band; if (!test_bit(mode, ah-ah_modes)) return 0; @@ -283,11 +272,13 @@ ath5k_copy_channels(struct ath5k_hw *ah, /* 1..220, but 2GHz frequencies are filtered by check_channel */ size = 220 ; chfreq = CHANNEL_5GHZ; + band = IEEE80211_BAND_5GHZ; break; case AR5K_MODE_11B: case AR5K_MODE_11G: size = 26; chfreq = CHANNEL_2GHZ; + band = IEEE80211_BAND_2GHZ; break; default: ATH5K_WARN(ah-ah_sc, bad mode, not copying channels\n); @@ -296,7 +287,10 @@ ath5k_copy_channels(struct ath5k_hw *ah, for (i = 0, count = 0; i size max 0; i++) { ch = i + 1 ; - freq = ath5k_ieee2mhz(ch); + freq = ieee80211_channel_to_frequency(ch, band); + + if (freq == 0) /* mapping failed - not a standard channel */ + continue; /* Check if channel is supported by the chipset */ if (!ath5k_channel_ok(ah, freq, chfreq)) @@ -307,8 +301,7 @@ ath5k_copy_channels(struct ath5k_hw *ah, /* Write channel info and increment counter */ channels[count].center_freq = freq; - channels[count].band = (chfreq == CHANNEL_2GHZ) ? - IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; + channels[count].band = band; switch (mode) { case AR5K_MODE_11A: case AR5K_MODE_11G: ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 3/8] ath5k: Rename ath5k_copy_channels
Rename ath5k_copy_channels() to ath5k_setup_channels() - nothing is copied here. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/base.c |8 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 0387acb..9e8b1f4 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -256,7 +256,7 @@ static bool ath5k_is_standard_channel(short chan) } static unsigned int -ath5k_copy_channels(struct ath5k_hw *ah, +ath5k_setup_channels(struct ath5k_hw *ah, struct ieee80211_channel *channels, unsigned int mode, unsigned int max) @@ -356,7 +356,7 @@ ath5k_setup_bands(struct ieee80211_hw *hw) sband-n_bitrates = 12; sband-channels = sc-channels; - sband-n_channels = ath5k_copy_channels(ah, sband-channels, + sband-n_channels = ath5k_setup_channels(ah, sband-channels, AR5K_MODE_11G, max_c); hw-wiphy-bands[IEEE80211_BAND_2GHZ] = sband; @@ -382,7 +382,7 @@ ath5k_setup_bands(struct ieee80211_hw *hw) } sband-channels = sc-channels; - sband-n_channels = ath5k_copy_channels(ah, sband-channels, + sband-n_channels = ath5k_setup_channels(ah, sband-channels, AR5K_MODE_11B, max_c); hw-wiphy-bands[IEEE80211_BAND_2GHZ] = sband; @@ -402,7 +402,7 @@ ath5k_setup_bands(struct ieee80211_hw *hw) sband-n_bitrates = 8; sband-channels = sc-channels[count_c]; - sband-n_channels = ath5k_copy_channels(ah, sband-channels, + sband-n_channels = ath5k_setup_channels(ah, sband-channels, AR5K_MODE_11A, max_c); hw-wiphy-bands[IEEE80211_BAND_5GHZ] = sband; ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 4/8] ath5k: ath5k_setup_channels cleanup and whitespace
Remove useless test_bit - it's not going to happen because of the way this function is called only when that bit is set. And fix some whitespace. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/base.c | 11 +++ 1 files changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 9e8b1f4..a28ad58 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -256,21 +256,16 @@ static bool ath5k_is_standard_channel(short chan) } static unsigned int -ath5k_setup_channels(struct ath5k_hw *ah, - struct ieee80211_channel *channels, - unsigned int mode, - unsigned int max) +ath5k_setup_channels(struct ath5k_hw *ah, struct ieee80211_channel *channels, + unsigned int mode, unsigned int max) { unsigned int count, size, chfreq, freq, ch; enum ieee80211_band band; - if (!test_bit(mode, ah-ah_modes)) - return 0; - switch (mode) { case AR5K_MODE_11A: /* 1..220, but 2GHz frequencies are filtered by check_channel */ - size = 220 ; + size = 220; chfreq = CHANNEL_5GHZ; band = IEEE80211_BAND_5GHZ; break; ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 5/8] ath5k: Add 802.11j 4.9GHz channels to allowed channels
Add the 802.11j (20MHz channel width) channels to the allowed channels. This still does not enable 802.11j in ath5k since these frequencies are out of the configured range. A later patch will deal with that. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/base.c | 19 +-- 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index a28ad58..6900543 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -244,15 +244,21 @@ static int ath5k_reg_notifier(struct wiphy *wiphy, struct regulatory_request *re /* * Returns true for the channel numbers used without all_channels modparam. */ -static bool ath5k_is_standard_channel(short chan) +static bool ath5k_is_standard_channel(short chan, enum ieee80211_band band) { - return ((chan = 14) || - /* UNII 1,2 */ - ((chan 3) == 0 chan = 36 chan = 64) || + if (band == IEEE80211_BAND_2GHZ chan = 14) + return true; + + return /* UNII 1,2 */ + (((chan 3) == 0 chan = 36 chan = 64) || /* midband */ ((chan 3) == 0 chan = 100 chan = 140) || /* UNII-3 */ - ((chan 3) == 1 chan = 149 chan = 165)); + ((chan 3) == 1 chan = 149 chan = 165) || + /* 802.11j 5.030-5.080 GHz (20MHz) */ + (chan == 8 || chan == 12 || chan == 16) || + /* 802.11j 4.9GHz (20MHz) */ + (chan == 184 || chan == 188 || chan == 192 || chan == 196)); } static unsigned int @@ -291,7 +297,8 @@ ath5k_setup_channels(struct ath5k_hw *ah, struct ieee80211_channel *channels, if (!ath5k_channel_ok(ah, freq, chfreq)) continue; - if (!modparam_all_channels !ath5k_is_standard_channel(ch)) + if (!modparam_all_channels + !ath5k_is_standard_channel(ch, band)) continue; /* Write channel info and increment counter */ ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 6/8] ath5: Remove unused CTL definitions
They are unused in ath5k and a more detailled definition is in ath/regd_common.h. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/eeprom.h | 23 --- 1 files changed, 0 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/eeprom.h b/drivers/net/wireless/ath/ath5k/eeprom.h index d46f105..6511c27 100644 --- a/drivers/net/wireless/ath/ath5k/eeprom.h +++ b/drivers/net/wireless/ath/ath5k/eeprom.h @@ -268,29 +268,6 @@ enum ath5k_ctl_mode { AR5K_CTL_MODE_M = 15, }; -/* Default CTL ids for the 3 main reg domains. - * Atheros only uses these by default but vendors - * can have up to 32 different CTLs for different - * scenarios. Note that theese values are ORed with - * the mode id (above) so we can have up to 24 CTL - * datasets out of these 3 main regdomains. That leaves - * 8 ids that can be used by vendors and since 0x20 is - * missing from HAL sources i guess this is the set of - * custom CTLs vendors can use. */ -#defineAR5K_CTL_FCC0x10 -#defineAR5K_CTL_CUSTOM 0x20 -#defineAR5K_CTL_ETSI 0x30 -#defineAR5K_CTL_MKK0x40 - -/* Indicates a CTL with only mode set and - * no reg domain mapping, such CTLs are used - * for world roaming domains or simply when - * a reg domain is not set */ -#defineAR5K_CTL_NO_REGDOMAIN 0xf0 - -/* Indicates an empty (invalid) CTL */ -#define AR5K_CTL_NO_CTL0xff - /* Per channel calibration data, used for power table setup */ struct ath5k_chan_pcal_info_rf5111 { /* Power levels in half dbm units ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH 8/8] ath5k: Remove redundant sc-curband
Remove sc-curband because the band is already stored in the current channel. Signed-off-by: Bruno Randolf b...@einfach.org --- drivers/net/wireless/ath/ath5k/base.c | 11 --- drivers/net/wireless/ath/ath5k/base.h |2 -- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index a00cc11..0e39ee8 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -551,7 +551,7 @@ ath5k_hw_to_driver_rix(struct ath5k_softc *sc, int hw_rix) hw_rix out of bounds: %x\n, hw_rix)) return 0; - rix = sc-rate_idx[sc-curband-band][hw_rix]; + rix = sc-rate_idx[sc-curchan-band][hw_rix]; if (WARN(rix 0, invalid hw_rix: %x\n, hw_rix)) rix = 0; @@ -1361,7 +1361,7 @@ ath5k_receive_frame(struct ath5k_softc *sc, struct sk_buff *skb, rxs-flag |= RX_FLAG_TSFT; rxs-freq = sc-curchan-center_freq; - rxs-band = sc-curband-band; + rxs-band = sc-curchan-band; rxs-signal = sc-ah-ah_noise_floor + rs-rs_rssi; @@ -1376,7 +1376,7 @@ ath5k_receive_frame(struct ath5k_softc *sc, struct sk_buff *skb, rxs-flag |= ath5k_rx_decrypted(sc, skb, rs); if (rxs-rate_idx = 0 rs-rs_rate == - sc-curband-bitrates[rxs-rate_idx].hw_value_short) + sc-sbands[sc-curchan-band].bitrates[rxs-rate_idx].hw_value_short) rxs-flag |= RX_FLAG_SHORTPRE; ath5k_debug_dump_skb(sc, skb, RX , 0); @@ -2536,7 +2536,6 @@ ath5k_init_hw(struct ath5k_softc *sc) * and then setup of the interrupt mask. */ sc-curchan = sc-hw-conf.channel; - sc-curband = sc-sbands[sc-curchan-band]; sc-imask = AR5K_INT_RXOK | AR5K_INT_RXERR | AR5K_INT_RXEOL | AR5K_INT_RXORN | AR5K_INT_TXDESC | AR5K_INT_TXEOL | AR5K_INT_FATAL | AR5K_INT_GLOBAL | AR5K_INT_MIB; @@ -2663,10 +2662,8 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan, * so we should also free any remaining * tx buffers */ ath5k_drain_tx_buffs(sc); - if (chan) { + if (chan) sc-curchan = chan; - sc-curband = sc-sbands[chan-band]; - } ret = ath5k_hw_reset(ah, sc-opmode, sc-curchan, chan != NULL, skip_pcu); if (ret) { diff --git a/drivers/net/wireless/ath/ath5k/base.h b/drivers/net/wireless/ath/ath5k/base.h index 58660e4..8f919dc 100644 --- a/drivers/net/wireless/ath/ath5k/base.h +++ b/drivers/net/wireless/ath/ath5k/base.h @@ -183,8 +183,6 @@ struct ath5k_softc { enum nl80211_iftype opmode; struct ath5k_hw *ah;/* Atheros HW */ - struct ieee80211_supported_band *curband; - #ifdef CONFIG_ATH5K_DEBUG struct ath5k_dbg_info debug; /* debug info */ #endif /* CONFIG_ATH5K_DEBUG */ ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] [PATCH] RFC: ath5k: Enable 802.11j 4.9GHz frequencies
RFC: This enables 4.9GHz frequencies in ath5k if the regdomain is set to MKK9_MKKC (0xfe). I have added a helper function to common ath/regd.c since we know about MKK9_MKKC there, however in the place where i'm using the function we don't have an ath_regulatory structure yet, so i'm passing the regdomain code as u16. I'm using MKK9_MKKC only because this is the regdomain in the 802.11j enabled sample cards we got from our vendor. I'm not sure if this is commonly used or if there are other domain codes which indicate 802.11j support for Atheros hardware (allthough some comments in the HAL suggest that). Also I don't know if this is common between ath9k and ath5k. Could someone from Atheros shed some light on this? Other comments? --- drivers/net/wireless/ath/ath5k/caps.c | 13 - drivers/net/wireless/ath/regd.c |6 ++ drivers/net/wireless/ath/regd.h |1 + 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/caps.c b/drivers/net/wireless/ath/ath5k/caps.c index 31cad80..52fa808 100644 --- a/drivers/net/wireless/ath/ath5k/caps.c +++ b/drivers/net/wireless/ath/ath5k/caps.c @@ -56,9 +56,8 @@ int ath5k_hw_set_capabilities(struct ath5k_hw *ah) * XXX current ieee80211 implementation because the IEEE * XXX channel mapping does not support negative channel * XXX numbers (2312MHz is channel -19). Of course, this -* XXX doesn't matter because these channels are out of range -* XXX but some regulation domains like MKK (Japan) will -* XXX support frequencies somewhere around 4.8GHz. +* XXX doesn't matter because these channels are out of the +* XXX legal range. */ /* @@ -66,8 +65,12 @@ int ath5k_hw_set_capabilities(struct ath5k_hw *ah) */ if (AR5K_EEPROM_HDR_11A(ee_header)) { - /* 4920 */ - ah-ah_capabilities.cap_range.range_5ghz_min = 5005; + if (ath_is_11j_regd( + ah-ah_capabilities.cap_eeprom.ee_regdomain)) + /* 802.11j enabled card */ + ah-ah_capabilities.cap_range.range_5ghz_min = 4920; /* 4910? */ + else + ah-ah_capabilities.cap_range.range_5ghz_min = 5005; ah-ah_capabilities.cap_range.range_5ghz_max = 6100; /* Set supported modes */ diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c index 2b14775..8d60089 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -158,6 +158,12 @@ ieee80211_regdomain *ath_world_regdomain(struct ath_regulatory *reg) } } +bool ath_is_11j_regd(u16 regdomain) +{ + return regdomain == MKK9_MKKC; +} +EXPORT_SYMBOL(ath_is_11j_regd); + /* Frequency is one where radar detection is required */ static bool ath_is_radar_freq(u16 center_freq) { diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h index 345dd97..18d9acb 100644 --- a/drivers/net/wireless/ath/regd.h +++ b/drivers/net/wireless/ath/regd.h @@ -250,6 +250,7 @@ enum CountryCode { }; bool ath_is_world_regd(struct ath_regulatory *reg); +bool ath_is_11j_regd(u16 redomain); int ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, int (*reg_notifier)(struct wiphy *wiphy, struct regulatory_request *request)); ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] [PATCH 1/8] ath5k: Use mac80211 channel mapping function
On Wed, Jan 19, 2011 at 3:54 AM, Bruno Randolf b...@einfach.org wrote: Use mac80211 channel mapping function instead of own homegrown version. Signed-off-by: Bruno Randolf b...@einfach.org --- @@ -274,6 +262,7 @@ ath5k_copy_channels(struct ath5k_hw *ah, unsigned int max) { unsigned int i, count, size, chfreq, freq, ch; + enum ieee80211_band band; I like this, but we can also change ath5k_channel_ok and get rid of chfreq completely, no? And then maybe the CHANNEL_ defines. Could be a follow-on patch. -- Bob Copeland %% www.bobcopeland.com ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] [PATCH 1/8] ath5k: Use mac80211 channel mapping function
On Wed January 19 2011 20:03:38 you wrote: On Wed, Jan 19, 2011 at 3:54 AM, Bruno Randolf b...@einfach.org wrote: Use mac80211 channel mapping function instead of own homegrown version. Signed-off-by: Bruno Randolf b...@einfach.org --- @@ -274,6 +262,7 @@ ath5k_copy_channels(struct ath5k_hw *ah, unsigned int max) { unsigned int i, count, size, chfreq, freq, ch; + enum ieee80211_band band; I like this, but we can also change ath5k_channel_ok and get rid of chfreq completely, no? And then maybe the CHANNEL_ defines. True. Could be done and would be a nice cleanup too. We have too many redundant CHANNEL_ and MODE_ defines... Could be a follow-on patch. Please... ;) bruno ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] multiple access points broke on nl80211
On Tue, Jan 18, 2011 at 07:04:26PM -0800, Ben Greear wrote: Worked fine last I tried. I'm not sure the ath5k virtualization stuff got into stock 2.6.36, by the way. It *should* be in .37. Thanks, Ben Anymore suggestions? Should I upgrade my kernel? Should I submit a bug report? ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] [PATCH 1/8] ath5k: Use mac80211 channel mapping function
2011/1/19 Bruno Randolf b...@einfach.org: On Wed January 19 2011 20:03:38 you wrote: On Wed, Jan 19, 2011 at 3:54 AM, Bruno Randolf b...@einfach.org wrote: Use mac80211 channel mapping function instead of own homegrown version. Signed-off-by: Bruno Randolf b...@einfach.org --- @@ -274,6 +262,7 @@ ath5k_copy_channels(struct ath5k_hw *ah, unsigned int max) { unsigned int i, count, size, chfreq, freq, ch; + enum ieee80211_band band; I like this, but we can also change ath5k_channel_ok and get rid of chfreq completely, no? And then maybe the CHANNEL_ defines. True. Could be done and would be a nice cleanup too. We have too many redundant CHANNEL_ and MODE_ defines... Could be a follow-on patch. Please... ;) bruno Cool ;-) Acked-by: Nick Kossifidis mickfl...@gmail.com -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
[ath5k-devel] (multicast) key search documentation and behaviour for the AR5213?
Hi all, I'm working on fixing up the FreeBSD ath codebase, both for new 11n chipsets and older chipsets that ath5k supports. I've noticed something strange with the AR5213. (I don't have any AR5212 chips or variants thereof.) It happens on MIPS, not on i386. It doesn't happen with exactly the same software when using an AR9160. For broadcast packets sent w/ WPA encryption, matching a keycache entry, I see corruption which always begins in the packet half-way through the IV word. So, the first four bytes of the IV are fine, but everything after byte 5 (and the payload) are corrupt. After the first group rekeying from hostap, the problem rights itself. If I disable hardware encryption (which still uses keycache entries, they're just clear entries), I still see the packet corruption until the first group rekey. If I then disable the keyid on packets sent w/ a group key, the packets are correctly TX'ed verbatim. WEP and OPEN are fine. Has anyone seen this behaviour before? Is there any documentation available on the AR5213 keycache behaviour, both normal and broadcast? Why would this occur even when it's not doing hardware encryption? There's a couple of hints in the codebases: * AR_KEYTABLE_VALID is in the ath9k/ath5k shared code, but from what I can gather it's involved in packet RX, not TX. Is this right? * Is the multicast keycache search behaviour briefly touched on here and there in the codebases for packet TX, RX, or both? * This comment seems a bit misleading: /* * Group key allocation must be handled specially for * parts that do not support multicast key cache search * functionality. For those parts the key id must match * the h/w key index so lookups find the right key. On * parts w/ the key search facility we install the sender's * mac address (with the high bit set) and let the hardware * find the key w/o using the key id. This is preferred as * it permits us to support multiple users for adhoc and/or * multi-station operation. */ But if I program the hardware with the high bit set in the MAC entry, then TX packets without a key id set, it doesn't seem to match the keycache entry and the packet isn't encrypted. Any/all help and pointers will be very appreciated, thankyou. Adrian ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] multiple access points broke on nl80211
On Wed January 19 2011 23:15:11 Cory Coager wrote: On Tue, Jan 18, 2011 at 07:04:26PM -0800, Ben Greear wrote: Worked fine last I tried. I'm not sure the ath5k virtualization stuff got into stock 2.6.36, by the way. It *should* be in .37. Thanks, Ben Anymore suggestions? Should I upgrade my kernel? Should I submit a bug report? Upgrade your kernel. Only submit a bug report if it does not work with current wireless-testing, please. bruno ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel
Re: [ath5k-devel] [PATCH 1/8] ath5k: Use mac80211 channel mapping function
On Wed January 19 2011 20:48:28 Bruno Randolf wrote: I like this, but we can also change ath5k_channel_ok and get rid of chfreq completely, no? And then maybe the CHANNEL_ defines. True. Could be done and would be a nice cleanup too. We have too many redundant CHANNEL_ and MODE_ defines... Could be a follow-on patch. Please... ;) Maybe that got lost in translation. What i meant is Feel free to do it ;) It's not so easy because in ath5k_hw_nic_wakeup we have only the flags, so that would have to be changed. I guess it's no major problem but i can't be bothered right now. bruno ___ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel