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
09 Apr, 2008
1 commit
-
When associating to a b-only AP where there is no ERP IE, short preamble
mode is left at previous state (probably also protection mode). In this
case, disable protection and use short preamble mode as specified in
capability field. The same is done if capability field is changed on-the-fly.Signed-off-by: Vladimir Koutny
Signed-off-by: John W. Linville
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 -
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
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
28 Feb, 2008
1 commit
-
The "goto end;" part definitely must not be rate limited.
Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
16 Feb, 2008
1 commit
-
On the initial device-open we need to defer the hardware reconfiguration
after we incremented the open_count, because the hw_config checks this flag
and won't call the lowlevel driver in case it is zero.Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville
06 Feb, 2008
1 commit
-
Remove the EXPERIMENTAL dependency, as the existing mac80211
features are stable.Signed-off-by: Michael Buesch
Signed-off-by: John W. Linville
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 -
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 -
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
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 -
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
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 -
This patch adds static declarations to functions in the Rx flow in order to
eliminate sparse errorsSigned-off-by: Ron Rindjunsky
Signed-off-by: Tomas Winkler
Signed-off-by: John W. Linville -
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 -
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 -
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 frameSigned-off-by: Guy Cohen
Signed-off-by: John W. Linville -
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 -
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 -
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 -
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 statusand 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 -
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 -
This implements station handling from userspace via cfg80211
in mac80211.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
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 -
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 -
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 tablesSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville -
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 -
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 -
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
mac80211It 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 -
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 -
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 -
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 -
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 -
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
lowSigned-off-by: Ron Rindjunsky
Signed-off-by: John W. Linville
Signed-off-by: David S. Miller -
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 TIDSigned-off-by: Ron Rindjunsky
Signed-off-by: John W. Linville
Signed-off-by: David S. Miller -
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 -
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 -
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 -
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