• Bernd Edlinger's avatar
    rt2x00: Work around a firmware bug with shared keys · a4296994
    Bernd Edlinger authored
    Apparently the rt2x61 firmware fails temporarily to decode
    broadcast packets if the shared keys are not assigned
    in the "correct" sequence. At the same time unicast
    packets work fine, since they are encrypted with the
    pairwise key.
    
    At least with WPA2 CCMP mode the shared keys are
    set in the following sequence: keyidx=1, 2, 1, 2.
    After a while only keyidx 2 gets decrypted, and
    keyidx 1 is ignored, probably because there is never
    a keyidx 3.
    
    Symptoms are arping -b works for 10 minutes, since
    keyidx=2 is used for broadcast, and then it stops
    working for 10 minutes, because keyidx=1 is used.
    That failure mode repeats forever.
    
    Note, the firmware does not even know which keyidx
    corresponds to which hw_key_idx so the firmware is
    trying to be smarter than the driver, which is bound
    to fail.
    
    As workaround the function rt61pci_config_shared_key
    requests software decryption of the shared keys,
    by returning EOPNOTSUPP. However, pairwise keys are
    still handled by hardware which works just fine.
    Signed-off-by: default avatarBernd Edlinger <bernd.edlinger@hotmail.de>
    Acked-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    a4296994
rt61pci.c 91.4 KB