08 Apr, 2013
1 commit
-
Beacon-timeout and number of beacon loss events.
Signed-off-by: Ben Greear
Signed-off-by: Johannes Berg
06 Mar, 2013
1 commit
-
Add a new debugfs file to view a station's VHT capabilities.
Signed-off-by: Johannes Berg
05 Feb, 2013
1 commit
-
Add routines to
- maintain a PS mode for each peer and a non-peer PS mode
- indicate own PS mode in transmitted frames
- track neighbor STAs power modes
- buffer frames when neighbors are in PS mode
- add TIM and Awake Window IE to beacons
- release frames in Mesh Peer Service PeriodsAdd local_pm to sta_info to represent the link-specific power
mode at this station towards the remote station. When a peer
link is established, use the default power mode stored in mesh
config. Update the PS status if the peering status of a neighbor
changes.
Maintain a mesh power mode for non-peer mesh STAs. Set the
non-peer power mode to active mode during peering. Authenticated
mesh peering is currently not working when either node is
configured to be in power save mode.Indicate the current power mode in transmitted frames. Use QoS
Nulls to indicate mesh power mode transitions.
For performance reasons, calls to the function setting the frame
flags are placed in HWMP routing routines, as there the STA
pointer is already available.Add peer_pm to sta_info to represent the peer's link-specific
power mode towards the local station. Add nonpeer_pm to
represent the peer's power mode towards all non-peer stations.
Track power modes based on received frames.Add the ps_data structure to ieee80211_if_mesh (for TIM map, PS
neighbor counter and group-addressed frame buffer).Set WLAN_STA_PS flag for STA in PS mode to use the unicast frame
buffering routines in the tx path. Update num_sta_ps to buffer
and release group-addressed frames after DTIM beacons.Announce the awake window duration in beacons if in light or
deep sleep mode towards any peer or non-peer. Create a TIM IE
similarly to AP mode and add it to mesh beacons. Parse received
Awake Window IEs and check TIM IEs for buffered frames.Release frames towards peers in mesh Peer Service Periods. Use
the corresponding trigger frames and monitor the MPSP status.
Append a QoS Null as trigger frame if neccessary to properly end
the MPSP. Currently, in HT channels MPSPs behave imperfectly and
show large delay spikes and frame losses.Signed-off-by: Marco Porsch
Signed-off-by: Ivan Bezyazychnyy
Signed-off-by: Mike Krinkin
Signed-off-by: Max Filippov
Signed-off-by: Johannes Berg
12 Dec, 2012
1 commit
-
This patch removes the redundant occurences of simple_strto
Signed-off-by: Abhijit Pawar
Signed-off-by: David S. Miller
11 Dec, 2012
1 commit
-
This patch replace the obsolete simple_strto with kstrto
Signed-off-by: Abhijit Pawar
Acked-by: Neil Horman
Signed-off-by: David S. Miller
29 Nov, 2012
3 commits
-
Add a debugfs file showing the rate at which
the last packet is received.Signed-off-by: Saravana
[fix whitespace]
Signed-off-by: Johannes Berg -
Add a debugfs file showing the current tx rate.
The information available in the rc_stats file
doesn't evidently provides us the current tx rate.
This patch adds the support for the same.Signed-off-by: Saravana
Signed-off-by: Johannes Berg -
Add a debugfs file showing the signal strength
of the ack frame that is received for the
currently sent tx packetSigned-off-by: Saravana
Signed-off-by: Johannes Berg
21 Nov, 2012
1 commit
-
Provide drivers with hooks to create debugfs files when
a new station is added. This would help drivers to take
advantage of mac80211's station list infrastructure and not maintain
tedious station management code internally.Signed-off-by: Sujith Manoharan
[ifdef inline wrapper functions]
Signed-off-by: Johannes Berg
19 Nov, 2012
1 commit
-
Introduce IEEE80211_NUM_TIDS in the generic 802.11
header file and use it in place of STA_TID_NUM and
NUM_RX_DATA_QUEUES which are both really the number
of TIDs.Signed-off-by: Johannes Berg
13 Apr, 2012
1 commit
11 Apr, 2012
1 commit
-
This patch adds MBSS extensible synchronization framework (Sec.
13.13.2 of IEEE Std. 802.11-2012).The framework is implemented via an ops table which defines the
following functions:rx_bcn_presp() - this is called every time a mesh beacon is
received.
adjust_tbtt() - this is called immediately before a beacon is about
to be transmitted.The default neighbor offset synchronization defined in the standard is
implemented. We also provide template functions for vendor specific
methods.When neighbor offset synchronization is active (which is the default)
mesh neighbors in the same MBSS will track timing offsets to each other
and compensate clock drift.In our tests we observed that this mesh synchronization implementation
successfully corrected drifts between stations of ~2PPM while
introducing a jitter of ~20us.It is also possible to test this framework on mac80211_hwsim simulated
phys to see how it behaves under different topologies, over poor links,
etc.Signed-off-by: Marco Porsch
Signed-off-by: Pavel Zubarev
Signed-off-by: Javier Cardona
Signed-off-by: John W. Linville
06 Apr, 2012
1 commit
-
Many users of debugfs copy the implementation of default_open() when
they want to support a custom read/write function op. This leads to a
proliferation of the default_open() implementation across the entire
tree.Now that the common implementation has been consolidated into libfs we
can replace all the users of this function with simple_open().This replacement was done with the following semantic patch:
@ open @
identifier open_f != simple_open;
identifier i, f;
@@
-int open_f(struct inode *i, struct file *f)
-{
(
-if (i->i_private)
-f->private_data = i->i_private;
|
-f->private_data = i->i_private;
)
-return 0;
-}@ has_open depends on open @
identifier fops;
identifier open.open_f;
@@
struct file_operations fops = {
...
-.open = open_f,
+.open = simple_open,
...
};[akpm@linux-foundation.org: checkpatch fixes]
Signed-off-by: Stephen Boyd
Cc: Greg Kroah-Hartman
Cc: Al Viro
Cc: Julia Lawall
Acked-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Feb, 2012
1 commit
-
There are situations where we don't have the
necessary rate control information yet for
station entries, e.g. when associating. This
currently doesn't really happen due to the
dummy station handling; explicitly disabling
rate control when it's not initialised will
allow us to remove dummy stations.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
31 Jan, 2012
1 commit
-
In the future, when we start notifying drivers,
state transitions could potentially fail. To make
it easier to distinguish between programming bugs
and driver failures:
* rename sta_info_move_state() to
sta_info_pre_move_state() which can only be
called before the station is inserted (and
check this with a new station flag).
* rename sta_info_move_state_checked() to just
plain sta_info_move_state(), as it will be
the regular function that can fail for more
than just one reason (bad transition or an
error from the driver)This makes the programming model easier -- one of
the functions can only be called before insertion
and can't fail, the other can fail.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
29 Nov, 2011
1 commit
-
…wireless-next into for-davem
22 Nov, 2011
2 commits
-
WLAN_STA_ASSOC_AP indicates that the station entry
is for an AP we're associated to but isn't used so
remove it.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
It was flipped. See section 7.3.2.56 of the 802.11n
spec for details.Signed-off-by: Ben Greear
Acked-by: Johannes Berg
Signed-off-by: John W. Linville
01 Oct, 2011
3 commits
-
My work and some previous work didn't add
all the flags, add them now and while at it
simplify the code.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
The flaglock in struct sta_info has long been
something that I wanted to get rid of, this
finally does the conversion to atomic bitops.The conversion itself is straight-forward in
most places, a few things needed to change a
bit since we can no longer use multiple bits
at the same time.On x86-64, this is a fairly significant code
size reduction:
text data bss dec hex
427861 23648 1008 452517 6e7a5 before
425383 23648 976 450007 6ddd7 afterSigned-off-by: Johannes Berg
Signed-off-by: John W. Linville -
For uAPSD support we'll need to have per-AC PS
buffers. As this is a major undertaking, split
the buffers before really adding support for
uAPSD. This already makes some reference to the
uapsd_queues variable, but for now that will
never be non-zero.Since book-keeping is complicated, also change
the logic for keeping a maximum of frames only
and allow 64 frames per AC (up from 128 for a
station).Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
20 Apr, 2011
1 commit
-
Fix printf() format warning (tm_year is long int):
net/mac80211/debugfs_sta.c:113: warning: format '%d' expects type 'int', but argument 4 has type 'long int'
Signed-off-by: Randy Dunlap
Signed-off-by: John W. Linville
13 Apr, 2011
1 commit
-
Add station connected time in debugfs. This will be helpful to get a
measure of stability of the connection and for debugging stress issuesCc: Senthilkumar Balasubramanian
Signed-off-by: Mohammed Shafi Shajakhan
Signed-off-by: John W. Linville
16 Dec, 2010
1 commit
-
Allow drivers or rate control algorithms to specify BlockAck session
timeout when initiating an ADDBA transaction. This is useful in cases
where maintaining persistent BA sessions does not incur any overhead.The current timeout value of 5000 TUs is retained for all non ath9k/ath9k_htc
drivers.Signed-off-by: Sujith Manoharan
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville
30 Nov, 2010
1 commit
-
The RX aggregation locking documentation was
wrong, which led Christian to also code the
timer timeout handling for it somewhat wrongly.Fix the documentation, the two places that
need to hold the reorder lock across accesses
to the structure, and the debugfs code that
should just use RCU.Also, remove acquiring the sta->lock across
reorder timeouts since it isn't necessary, and
change a few places to GFP_KERNEL because the
code path here doesn't need atomic allocations
as I noticed when reviewing all this.Signed-off-by: Johannes Berg
Acked-by: Christian Lamparter
Signed-off-by: John W. Linville
16 Nov, 2010
1 commit
-
refactor mac80211 debugfs code by using a format© function, instead of
duplicating the code for each generated function.this change reduces about 600B from mac80211.ko
Signed-off-by: Eliad Peller
Signed-off-by: John W. Linville
24 Oct, 2010
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
vlan: Calling vlan_hwaccel_do_receive() is always valid.
tproxy: use the interface primary IP address as a default value for --on-ip
tproxy: added IPv6 support to the socket match
cxgb3: function namespace cleanup
tproxy: added IPv6 support to the TPROXY target
tproxy: added IPv6 socket lookup function to nf_tproxy_core
be2net: Changes to use only priority codes allowed by f/w
tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
tproxy: added tproxy sockopt interface in the IPV6 layer
tproxy: added udp6_lib_lookup function
tproxy: added const specifiers to udp lookup functions
tproxy: split off ipv6 defragmentation to a separate module
l2tp: small cleanup
nf_nat: restrict ICMP translation for embedded header
can: mcp251x: fix generation of error frames
can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
can-raw: add msg_flags to distinguish local traffic
9p: client code cleanup
rds: make local functions/variables static
...Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
drivers/net/wireless/ath/ath9k/debug.c as per David
07 Oct, 2010
1 commit
-
When roaming while we have active BA session,
we can end up transmitting delBA frames to
the old AP while we're already on the new AP's
channel, which can cause warnings.Simply avoid sending those frames, but still
tear down the internal session state, since
they are not really necessary anyway as we
will implicitly disassociate when sending the
association to the new AP.Signed-off-by: Johannes Berg
Acked-by: Luis R. Rodriguez
Signed-off-by: John W. Linville
28 Sep, 2010
1 commit
-
Create 'stations' sub-directory under each netdev:[vif-name]
directory to hold all stations for that network device.Signed-off-by: Ben Greear
Acked-by: Johannes Berg
Signed-off-by: John W. Linville
16 Sep, 2010
1 commit
-
The default llseek operation is changing from
default_llseek to no_llseek, so all code relying on
the current behaviour needs to make that explicit.The wireless driver infrastructure and some of the drivers
make use of generated debugfs files, so they cannot
be converted by our script that automatically determines
the right operation.All these files use debugfs and they typically rely
on simple_read_from_buffer, so the best llseek operation
here is generic_file_llseek.Signed-off-by: Arnd Bergmann
Cc: "John W. Linville"
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
15 Jun, 2010
3 commits
-
When the driver or rate control requests starting
or stopping an aggregation session, that currently
causes a direct callback into the driver, which
could potentially cause locking problems. Also,
the functions need to be callable from contexts
that cannot sleep, and thus will interfere with
making the ampdu_action callback sleeping.To address these issues, add a new work item for
each station that will process any start or stop
requests out of line.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Currently we allocate some memory for each TX
aggregation session and additionally keep a
state bitmap indicating the state it is in.
By using RCU to protect the pointer, moving
the state into the structure and some locking
trickery we can avoid locking when the TX agg
session is fully operational.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville -
Currently we allocate some memory for each RX
aggregation session and additionally keep a
flag indicating whether or not it is valid.
By using RCU to protect the pointer and making
sure that the memory is fully set up before it
becomes visible to the RX path, we can remove
the need for the bool that indicates validity,
as well as for locking on the RX path since it
is always synchronised against itself, and we
can guarantee that all other modifications are
done when the structure is not visible to the
RX path.The net result is that since we remove locking
requirements from the RX path, we can in the
future use any kind of lock for the setup and
teardown code paths.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
04 Jun, 2010
2 commits
-
This patch reduces the binary size by around 25k (measured on MIPS,
with CONFIG_MAC80211_DEBUG_COUNTERS enabled).Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville -
There's no sense in letting anything but internal
mac80211 functions set the initiator to anything
but WLAN_BACK_INITIATOR, since WLAN_BACK_RECIPIENT
is only valid when we have received a frame from
the peer, which we react to directly in mac80211.The debugfs code I recently added got this wrong
as well.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
04 May, 2010
1 commit
-
This allows enabling TX and disabling both TX and
RX aggregation sessions manually in debugfs. It is
very useful for debugging session initiation and
teardown problems since with this you don't have
to force a lot of traffic to get aggregation and
thus have less data to analyse.Also, to debug mac80211 code itself, make hwsim
"support" aggregation sessions. It will still just
transfer the frame, but go through the setup and
teardown handshakes.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
10 Apr, 2010
1 commit
-
Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville
08 Apr, 2010
1 commit
-
The aggregation code has a number of quirks, like
inventing an unneeded WLAN_BACK_TIMER value and
leaking memory under certain circumstances during
station destruction. Fix these issues by using
the regular aggregation session teardown code and
blocking new aggregation sessions, all before the
station is really destructed.As a side effect, this gets rid of the long code
block to destroy aggregation safely.Additionally, rename tid_state_rx which can only
have the values IDLE and OPERATIONAL to
tid_active_rx to make it easier to understand
that there is no bitwise stuff going on on the
RX side -- the TX side remains because it needs
to keep track of the driver and peer states.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
10 Mar, 2010
1 commit
-
The noise value as is won't be used, isn't
filled by most drivers and doesn't really
make a whole lot of sense on a per packet
basis -- proper cfg80211 survey support in
mac80211 will need to be different.Mark the struct member as deprecated so it
will be removed from drivers.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
02 Feb, 2010
1 commit
-
Use a more compact and readable format for "agg_status" to reduce the
stack frame to less than 1024 bytes.Signed-off-by: Pavel Roskin
Signed-off-by: John W. Linville