• Ilan peer's avatar
    cfg80211: Add API to change the indoor regulatory setting · 05050753
    Ilan peer authored
    Previously, the indoor setting configuration assumed that as
    long as a station interface is connected, the indoor environment
    setting does not change. However, this assumption is problematic
    - It is possible that a station interface is connected to a mobile
      AP, e.g., softAP or a P2P GO, where it is possible that both the
      station and the mobile AP move out of the indoor environment making
      the indoor setting invalid. In such a case, user space has no way to
      invalidate the setting.
    - A station interface disconnection does not necessarily imply that
      the device is no longer operating in an indoor environment, e.g.,
      it is possible that the station interface is roaming but is still
      stays indoor.
    To handle the above, extend the indoor configuration API to allow
    user space to indicate a change of indoor settings, and allow it to
    indicate weather it controls the indoor setting, such that:
    1. If the user space process explicitly indicates that it is going
       to control the indoor setting, do not clear the indoor setting
       internally, unless the socket is released. The user space process
       should use the NL80211_ATTR_SOCKET_OWNER attribute in the command
       to state that it is going to control the indoor setting.
    2. Reset the indoor setting when restoring the regulatory settings in
       case it is not owned by a user space process.
    Based on the above, a user space tool that continuously monitors the
    indoor settings, i.e., tracking power setting, location etc., can
    indicate environment changes to the regulatory core.
    It should be noted that currently user space is the only provided mechanism
    used to hint to the regulatory core over the indoor/outdoor environment --
    while the country IEs do have an environment setting this has been completely
    ignored by the regulatory core by design for a while now since country IEs
    typically can contain bogus data.
    Acked-by: default avatarLuis R. Rodriguez <mcgrof@suse.com>
    Signed-off-by: default avatarArikX Nemtsov <arik@wizery.com>
    Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
reg.c 82.8 KB