Sun, 14 Feb 2016 17:39:32 +0200 було написано Hans Petter Selasky
<[email protected]>:
This does not related to pairwise keys management:
static void
rum_group_key_set_cb(struct rum_softc *sc, union sec_param *data,
uint8_t rvp_id)
{
...
/* Set cipher mode. */
if (rum_modbits(sc, rvp_id < 2 ? RT2573_SEC_CSR1 :
RT2573_SEC_CSR5,
mode << (rvp_id % 2 + k->wk_keyix) * RT2573_SKEY_MAX,
RT2573_MODE_MASK << (rvp_id % 2 + k->wk_keyix) *
RT2573_SKEY_MAX) != 0)
goto print_err;
...
}
For group keys, k->wk_keyix is assigned in another way:
static int
rum_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
ieee80211_keyix *keyix, ieee80211_keyix *rxkeyix)
{
...
*keyix = k - vap->iv_nw_keys;
}
...
}
On 02/14/16 16:23, Adrian Chadd wrote:
uhm, why'd you not just file a separate pr for this?
8 keys limits how many stations it can support in hostap mode :( I'd
rather the bitmap management code gets fixed.
Hi,
From what I can see 8 keys is the maximum due to the following shift:
/* Set cipher mode. */
if (rum_modbits(sc, rvp_id < 2 ? RT2573_SEC_CSR1 :
RT2573_SEC_CSR5,
mode << (rvp_id % 2 + k->wk_keyix) * RT2573_SKEY_MAX,
RT2573_MODE_MASK << (rvp_id % 2 + k->wk_keyix) *
RT2573_SKEY_MAX)
!= 0)
goto print_err;
It is only about bitmanagement, but about where to actually write those
bits. Feel free to fix it.
--HPS
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"