svn commit: r295607 - head/sys/dev/usb/wlan

Andriy Voskoboinyk s3erios at gmail.com
Sun Feb 14 15:42:25 UTC 2016


Sun, 14 Feb 2016 17:39:32 +0200 було написано Hans Petter Selasky  
<hps at selasky.org>:

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


More information about the svn-src-all mailing list