16 Apr, 2008

1 commit

  • Some people are getting this message a lot, and we have traced it to
    broken access points that much too often send completely empty frames
    (all bytes zeroed, which they shouldn't do at all.)

    Since we cannot do anything about such frames in any case except the
    special case where we're debugging an AP, just remove the message.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

09 Apr, 2008

1 commit


02 Apr, 2008

2 commits

  • ERP IE bit for preamble mode is 0 for short and 1 for long, not the other
    way around. This fixes the value reported to the driver via
    bss_conf->use_short_preamble field.

    Signed-off-by: Vladimir Koutny
    Signed-off-by: John W. Linville

    Vladimir Koutny
     
  • ieee80211_sta_work is disabled while network interface
    is down. Therefore, if you configure wireless parameters
    before bringing the interface up, these configurations are
    not yet effective and association fails.

    A workaround from userspace is calling a command like
    'iwconfig wlan0 ap any' after the interface is brought up.

    To fix this behaviour, trigger execution of ieee80211_sta_work from
    ieee80211_open when in STA or IBSS mode.

    Signed-off-by: Jan Niehusmann
    Signed-off-by: John W. Linville

    Jan Niehusmann
     

05 Mar, 2008

1 commit

  • Merge rate_control_pid_shift_adjust() to rate_control_pid_adjust_rate()
    in order to make the learning algorithm aware of constraints on rates. Also
    add some comments and rename variables.

    This fixes a bug which prevented 802.11b/g non-AP STAs from working with
    802.11b only AP STAs.

    This patch was originally destined for 2.6.26, and is being backported
    to fix a user reported problem in post-2.6.24 kernels.

    Signed-off-by: Stefano Brivio
    Signed-off-by: John W. Linville

    Stefano Brivio
     

28 Feb, 2008

1 commit


16 Feb, 2008

1 commit


06 Feb, 2008

1 commit


02 Feb, 2008

3 commits

  • The error handling in ieee80211_init() is broken when any of
    the built-in rate control algorithms fail to initialise, fix
    it and rename the error labels.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • When the rate control algorithms are built-in, their exit
    functions can be called from mac80211's init function so
    they cannot be marked __exit.

    Signed-off-by: Johannes Berg
    Acked-by: Stefano Brivio
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Driver authors should be aware of the alignment requirements, but
    not everybody cares about the warning. This patch makes it depend
    on a new Kconfig symbol MAC80211_DEBUG_PACKET_ALIGNMENT which can
    be enabled regardless of MAC80211_DEBUG and is recommended for
    driver authors (only). This also restricts the warning to data
    packets so other packets need not be realigned to not trigger the
    warning.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

01 Feb, 2008

2 commits

  • This patch fixes a wrong condition for null qos data frames, causing us to
    drop data frames needed for reordering as well.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • When I introduced the alignment warning I forgot the A-MSDU case which
    has a different requirement because each frame contains 14-byte 802.3
    headers in front of the IP payload. This patch moves the alignment
    warning to a place where we know whether we're dealing with an A-MSDU
    frame and adjusts it accordingly.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg
     

29 Jan, 2008

27 commits

  • Convert packet schedulers to use the netlink API. Unfortunately a gradual
    conversion is not possible without breaking compilation in the middle or
    adding lots of casts, so this patch converts them all in one step. The
    patch has been mostly generated automatically with some minor edits to
    at least allow seperate conversion of classifiers and actions.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • This patch adds static declarations to functions in the Rx flow in order to
    eliminate sparse errors

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: Tomas Winkler
    Signed-off-by: John W. Linville

    Ron Rindjunsky
     
  • Fix last_sample initialization. kzalloc'ing the per-STA data wasn't enough,
    as jiffies can assume negative values as well. This fixes a bug which
    prevented correct PID operation for a while after booting.

    Thanks to Michael Buesch for reporting this.

    Reported-and-tested-by: Michael Buesch
    Signed-off-by: Stefano Brivio
    Signed-off-by: John W. Linville

    Stefano Brivio
     
  • Commit c7a51bda ("mac80211: restructure __ieee80211_rx") extracted
    __ieee80211_rx_handle_packet out of __ieee80211_rx and hence changed
    the locking rules for __ieee80211_rx_handle_packet(), it is now
    invoked under RCU lock. There is, however, one instance left where
    it contains an rcu_read_unlock() in an error path, which is a bug.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch assigns correct TID to frames transmitted between
    two stations in the same BSS in AP mode.
    The problem is that skb->protocol is not set to ETH_P_IP and it is wrong
    to use that field at this stage.
    The fix compares the LLC/Protocol headers explicitly to check if the
    encapsulated frame is IP frame

    Signed-off-by: Guy Cohen
    Signed-off-by: John W. Linville

    Guy Cohen
     
  • This patch removes a warning print from ieee80211_sta_stop_rx_ba_session
    in case the tid is inactive when interface goes down.

    Signed-off-by: Ron Rindjunsky
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Ron Rindjunsky
     
  • This patch adds a check to insure that Rx A-MPDU will be stopped only
    for the proper device.

    Signed-off-by: Ron Rindjunsky
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Ron Rindjunsky
     
  • Before calling update_beacon() mac80211 must
    initialize the control.vif pointer so it can
    be used by the driver to determine which
    interface is trying to send the beacon.

    v2: ieee80211_beacon_get() should also initialize the
    vif pointer since it can be called by mac80211 internally
    before calling config_interface().

    Signed-off-by: Ivo van Doorn
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Ivo van Doorn
     
  • This patch (based on Ron Rindjunsky's) creates a framework for
    a unified way to pass BSS configuration to drivers that require
    the information, e.g. for implementing power save mode.

    This patch introduces new ieee80211_bss_conf structure that is
    passed to the driver via the new bss_info_changed() callback
    when the BSS configuration changes.

    This new BSS configuration infrastructure adds the following
    new features:
    * drivers are notified of their association AID
    * drivers are notified of association status

    and replaces the erp_ie_changed() callback. The patch also does
    the relevant driver updates for the latter change.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Mattias Nissler's "clean up rate selection" patch incorrectly changes
    the behavior of txrate setting in sta_info. This patch backs out parts
    of the rate selection consolidation in order to fix this issue for now.

    Signed-off-by: Michael Wu
    Signed-off-by: John W. Linville

    Michael Wu
     
  • This implements station handling from userspace via cfg80211
    in mac80211.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch implements the cfg80211 hooks for configuring beaconing
    on an access point interface in mac80211. While doing so, it fixes
    a number of races that could badly crash the machine when the
    beacon is changed while being requested by the driver.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Drivers that support mixed AP/STA operation may well need to
    know the type of a virtual interface when iterating over them.
    The easiest way to support that is to move the interface type
    variable into the vif structure.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • This patch gets rid of the if_id stuff where possible in favour of
    a new per-virtual-interface structure "struct ieee80211_vif". This
    structure is located at the end of the per-interface structure and
    contains a variable length driver-use data area.

    This has two advantages:
    * removes the need to look up interfaces by if_id, this is better
    for working with network namespaces and performance
    * allows drivers to store and retrieve per-interface data without
    having to allocate own lists/hash tables

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Some devices have a seperate LED which indicates if the radio is
    enabled or not. This adds a LED trigger to mac80211 where drivers
    can hook into when they are interested in radio status changes.

    v2: Check hw.conf.radio_enabled when calling start().

    Signed-off-by: Ivo van Doorn
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ivo van Doorn
     
  • I would argue that mac80211 should handle fixed rates outside the rate
    control code, which would also allow them to take effect immediately
    instead of during the rate control callback, but this is pretty close
    to correct.

    Signed-Off-By: Andy Lutomirski
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Andrew Lutomirski
     
  • This patch changes mac80211's Kconfig/Makefile to:
    * select between the PID and the SIMPLE rate control
    algorithm as default
    * always allow tri-state for the rate control algorithms,
    building those that are selected 'y' into the mac80211
    module (if that is a module, otherwise all into the kernel)
    * force the default rate control algorithm to be built into
    mac80211

    It also makes both rate control algorithms proper modules again
    with MODULE_LICENSE etc.

    Only if EMBEDDED is the user allowed to select "NONE" as default
    which will cause no algorithm to be selected, this will work
    only when the driver brings one itself (e.g. iwlwifi drivers).

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • This patch opens the flow to DELBA management frames, and handles end
    of A-MPDU session produced by this event.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch adds the ability to handle Block Ack Request

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch handles the reordering of the Rx A-MPDU.
    This issue occurs when the sequence of the internal MPDUs is not in the
    right order. such a case can be encountered for example when some MPDUs from
    previous aggregations were recieved, while others failed, so current A-MPDU
    will contain a mix of re-transmited MPDUs and new ones.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch initialize A-MPDU MLME data for Rx sessions.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch adds the basic needed abilities and functions for A-MPDU Rx session
    changed functions:
    - ieee80211_sta_process_addba_request - Rx A-MPDU initialization enabled
    - ieee80211_stop - stops all A-MPDU Rx in case interface goes down
    added functions:
    - ieee80211_send_delba - used for sending out Del BA in A-MPDU sessions
    - ieee80211_sta_stop_rx_BA_session - stopping Rx A-MPDU session
    - sta_rx_agg_session_timer_expired - stops A-MPDU Rx use if load is too
    low

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch adds the needed structures to describe the Rx aggregation MLME per STA
    new:
    - struct tid_ampdu_rx: TID aggregation information (Rx)
    - struct sta_ampdu_mlme: MLME aggregation information for STA
    changed:
    - struct sta_info: ampdu_mlme added to describe A-MPDU MLME per STA,
    and timer_to_tid added to map timer id into TID

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • This patch makes a separation between Rx frame pre-handling which stays in
    __ieee80211_rx and Rx frame handlers, moving to __ieee80211_rx_handle_packet.
    Although this separation has no affect in regular mode of operation, this kind
    of mechanism will be used in A-MPDU frames reordering as it allows accumulation
    of frames during pre-handling, dispatching them to later handling when necessary.

    Signed-off-by: Ron Rindjunsky
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ron Rindjunsky
     
  • No need to not be.

    Signed-off-by: Johannes Berg
    Acked-by: Stefano Brivio
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • Fix the rate control interval definition. Thanks to Mattias Nissler for
    spotting this out.

    Cc: Mattias Nissler
    Signed-off-by: Stefano Brivio
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Stefano Brivio
     
  • When this function returns != CONTINUE, it needs to put the
    station struct it has acquired. Hence, having this unused
    variable is not just superfluous but also misleading.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg