26 Feb, 2014

1 commit

  • Commit "nl80211: send event when AP operation is stopped" added an
    event to notify user space that an AP interface has been stopped, to
    handle cases such as suspend etc. The event is sent regardless
    if the stop AP flow was triggered by user space or due to internal state
    change.

    This might cause issues with wpa_supplicant/hostapd flows that consider
    stop AP flow as a synchronous one, e.g., AP/GO channel change in the
    absence of CSA support. In such cases, the flow will restart the AP
    immediately after the stop AP flow is done, and only handle the stop
    AP event after the current flow is done, and as a result stop the AP
    again.

    Change the current implementation to only send the event in case the
    stop AP was triggered due to an internal reason.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     

05 Feb, 2014

2 commits

  • It was possible to break interface combinations in
    the following way:

    combo 1: iftype = AP, num_ifaces = 2, num_chans = 2,
    combo 2: iftype = AP, num_ifaces = 1, num_chans = 1, radar = HT20

    With the above interface combinations it was
    possible to:

    step 1. start AP on DFS channel by matching combo 2
    step 2. start AP on non-DFS channel by matching combo 1

    This was possible beacuse (step 2) did not consider
    if other interfaces require radar detection.

    The patch changes how cfg80211 tracks channels -
    instead of channel itself now a complete chandef
    is stored.

    Signed-off-by: Michal Kazior
    Signed-off-by: Johannes Berg

    Michal Kazior
     
  • There are a few cases, e.g. suspend, where an AP interface is
    stopped by the kernel rather than by userspace request, most
    commonly when suspending. To let userspace know about this,
    send the NL80211_CMD_STOP_AP command as an event every time
    an AP interface is stopped. This also happens when userspace
    did in fact request the AP stop, but that's not a problem.

    For full-MAC drivers this may need to be extended to also
    cover cases where the device stopped the AP operation for
    some reason, this a bit more complicated because then all
    cfg80211 state also needs to be reset; such API is not part
    of this patch.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

19 Dec, 2013

1 commit

  • This allows QoS mapping from external networks to be implemented as
    defined in IEEE Std 802.11-2012, 10.24.9. APs can use this to advertise
    DSCP ranges and exceptions for mapping frames to a specific UP over
    Wi-Fi.

    The payload of the QoS Map Set element (IEEE Std 802.11-2012, 8.4.2.97)
    is sent to the driver through the new NL80211_ATTR_QOS_MAP attribute to
    configure the local behavior either on the AP (based on local
    configuration) or on a station (based on information received from the
    AP).

    Signed-off-by: Kyeyoon Park
    Signed-off-by: Jouni Malinen
    Signed-off-by: Johannes Berg

    Kyeyoon Park
     

06 Mar, 2013

1 commit

  • This is the sort of thing gcc's LTO could do, but since
    we don't have that yet we can also do it manually. The
    advantage is reduced code, both source and binary, e.g.
    on x86-64

    text data bss dec hex filename
    442825 56230 776 499831 7a077 cfg80211.ko (before)
    441585 56230 776 498591 79b9f cfg80211.ko (after)

    a reduction of ~1k.

    But in order to not complicate the code move only those
    functions that are simple wrappers, not those that have
    functionality of their own.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

03 Jan, 2013

1 commit


08 Nov, 2012

1 commit


18 Oct, 2012

1 commit


29 Jun, 2012

2 commits

  • We need to know which channel is used by a running
    AP and mesh for channel context accounting and
    finding matching/active interface combination.

    STA/IBSS have current_bss already which allows us
    to check which channel a vif is tuned to.
    Non-fixed channel IBSS can be handled with
    additional changes.

    Monitor mode is going to be handled differently.

    Signed-off-by: Michal Kazior
    Signed-off-by: Johannes Berg

    Michal Kazior
     
  • This functionality will be reused when interface
    is going down. Avoids code duplication. Also adds
    missing wdev locking.

    Signed-off-by: Michal Kazior
    Signed-off-by: Johannes Berg

    Michal Kazior