1. 11 10月, 2007 4 次提交
    • J
      [MAC80211]: add interface index to key debugfs · e7a64f12
      Johannes Berg 提交于
      Add a new file 'ifindex' to each key's debugfs dir to
      allow finding which interface the key was configured on.
      This isn't done as a symlink because of possible netdev
      name changes.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e7a64f12
    • J
      [MAC80211]: rework key handling · 11a843b7
      Johannes Berg 提交于
      This moves all the key handling code out from ieee80211_ioctl.c
      into key.c and also does the following changes including documentation
      updates in mac80211.h:
      
       1) Turn off hardware acceleration for keys when the interface
          is down. This is necessary because otherwise monitor
          interfaces could be decrypting frames for other interfaces
          that are down at the moment. Also, it should go some way
          towards better suspend/resume support, in any case the
          routines used here could be used for that as well.
          Additionally, this makes the driver interface nicer, keys
          for a specific local MAC address are only ever present
          while an interface with that MAC address is enabled.
      
       2) Change driver set_key() callback interface to allow only
          return values of -ENOSPC, -EOPNOTSUPP and 0, warn on all
          other return values. This allows debugging the stack when
          a driver notices it's handed a key while it is down.
      
       3) Invert the flag meaning to KEY_FLAG_UPLOADED_TO_HARDWARE.
      
       4) Remove REMOVE_ALL_KEYS command as it isn't used nor do we
          want to use it, we'll use DISABLE_KEY for each key. It is
          hard to use REMOVE_ALL_KEYS because we can handle multiple
          virtual interfaces with different key configuration, so we'd
          have to keep track of a lot of state for this and that isn't
          worth it.
      
       5) Warn when disabling a key fails, it musn't.
      
       6) Remove IEEE80211_HW_NO_TKIP_WMM_HWACCEL in favour of per-key
          IEEE80211_KEY_FLAG_WMM_STA to let driver sort it out itself.
      
       7) Tell driver that a (non-WEP) key is used only for transmission
          by using an all-zeroes station MAC address when configuring.
      
       8) Change the set_key() callback to have access to the local MAC
          address the key is being added for.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      11a843b7
    • J
      [MAC80211]: embed key conf in key, fix driver interface · 8f20fc24
      Johannes Berg 提交于
      This patch embeds the struct ieee80211_key_conf into struct ieee80211_key
      and thus avoids allocations and having data present twice.
      
      This required some more changes:
       1) The removal of the IEEE80211_KEY_DEFAULT_TX_KEY key flag.
          This flag isn't used by drivers nor should it be since
          we have a set_key_idx() callback. Maybe that callback needs
          to be extended to include the key conf, but only a driver that
          requires it will tell.
       2) The removal of the IEEE80211_KEY_DEFAULT_WEP_ONLY key flag.
          This flag is global, so it shouldn't be passed in the key
          conf structure. Pass it to the function instead.
      
      Also, this patch removes the AID parameter to the set_key() callback
      because it is currently unused and the hardware currently cannot know
      about the AID anyway. I suspect this was used with some hardware that
      actually selected the AID itself, but that functionality was removed.
      
      Additionally, I've removed the ALG_NULL key algorithm since we have
      ALG_NONE.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f20fc24
    • J
      [MAC80211]: fix key debugfs · 50339a67
      Johannes Berg 提交于
      This fixes two issues with the key debugfs:
       1) key index obviously isn't unique
       2) various missing break statements led to bogus output
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NMichael Wu <flamingice@sourmilk.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      50339a67
  2. 06 5月, 2007 1 次提交