Please pull 'upstream-davem' branch of wireless-2.6
Subsystems (6)
Dave,
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).
Also there are some small hits in the iwlwifi drivers related to rate control. I'll CC Jeff since his tree has a lot of iwlwifi symbol renames and those patches will conflict (or break the build, or both) when your tree and his finally come together.
Let me know if there are any problems!
John
P.S. I have a few more related to the cfg80211 changes, but the patches are cross-dependent on both your tree and Jeff's. I will probably send those to akpm in the meantime, and push them after Linus has pulled both your tree and Jeff's in the 2.6.25 merge window.
---
Individual patches are available here:
http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/upstream-davem
---
The following changes since commit adc292d3280278282d7b0e0813ccda711e739b5f:
Herbert Xu (1):
[IPSEC]: Do xfrm_state_check_space before encapsulation
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream-davem
Johannes Berg (13):
mac80211: clean up eapol frame handling/port control
mac80211: clean up eapol handling in TX path
mac80211: make ieee80211_rx_mgmt_action static
mac80211: allow easier multicast/broadcast buffering in hardware cfg80211/nl80211: introduce key handling
mac80211: support adding/removing keys via cfg80211
mac80211: support getting key sequence counters via cfg80211 cfg80211/nl80211: add beacon settings cfg80211/nl80211: station handling
cfg80211/nl80211: implement station attribute retrieval
mac80211: implement station stats retrieval
mac80211: move tx crypto decision
mac80211: don't read ERP information from (re)association response
Mattias Nissler (4):
mac80211: clean up rate selection
mac80211: add PID controller based rate control algorithm
rc80211-pid: add debugging
rc80211-pid: export tuning parameters through debugfs
Ron Rindjunsky (1):
mac80211: pass in PS_POLL frames
Stefano Brivio (4):
mac80211: make PID rate control algorithm the default
rc80211-pid: add rate behaviour learning algorithm
rc80211-pid: add sharpening factor
doc: fix typo in feature-removal-schedule
Documentation/feature-removal-schedule.txt | 10 +- drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 44 +-- drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 46 +-- include/linux/nl80211.h | 154 ++++++ include/net/cfg80211.h | 167 +++++++ include/net/mac80211.h | 17 +- net/mac80211/Kconfig | 63 +++- net/mac80211/Makefile | 16 +- net/mac80211/cfg.c | 202 ++++++++- net/mac80211/debugfs_netdev.c | 27 +- net/mac80211/ieee80211.c | 21 +- net/mac80211/ieee80211_i.h | 24 +- net/mac80211/ieee80211_iface.c | 1 - net/mac80211/ieee80211_rate.c | 59 +++- net/mac80211/ieee80211_rate.h | 76 ++-- net/mac80211/ieee80211_sta.c | 35 +- net/mac80211/rc80211_pid.h | 261 ++++++++++ net/mac80211/rc80211_pid_algo.c | 510 +++++++++++++++++++ net/mac80211/rc80211_pid_debugfs.c | 223 +++++++++ net/mac80211/rc80211_simple.c | 64 +-- net/mac80211/rx.c | 144 +++--- net/mac80211/tx.c | 171 ++++--- net/mac80211/util.c | 24 +- net/mac80211/wep.c | 10 - net/mac80211/wpa.c | 14 - net/wireless/core.c | 3 + net/wireless/nl80211.c | 737 ++++++++++++++++++++++++++++ 27 files changed, 2692 insertions(+), 431 deletions(-) create mode 100644 net/mac80211/rc80211_pid.h create mode 100644 net/mac80211/rc80211_pid_algo.c create mode 100644 net/mac80211/rc80211_pid_debugfs.c
Omnibus patch attached as 'upstream-davem.patch.bz2' due to size concerns.
Signature · 2 lines
John W. Linville [email protected]
Quoted 5 lines · John W. Linville
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).mac80211: make PID rate control algorithm the default
This patch is busted. I was mistaken about its readiness -- I apologize. Don't pull if you haven't already.
We are actively working on fixing/replacing it.
Thanks for your patience!
John
Signature · 2 lines
John W. Linville [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
From: "John W. Linville" <[email protected]>
Date: Thu, 20 Dec 2007 17:38:50 -0500
Quoted 6 lines · John W. Linville
Quoted 4 lines
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).
Quoted 8 lines
Quoted 1 line
mac80211: make PID rate control algorithm the default
This patch is busted. I was mistaken about its readiness -- I apologize. Don't pull if you haven't already.
We are actively working on fixing/replacing it.
Thanks for your patience!
No worries, let me know when there is a new tree to pull from.
A message that is not in the archive (sent off-list or not yet received): 20071220.200429.242105762.davem-fT/PcQaiUtIeIZ0/[email protected]
(2nd attempt) Please pull 'upstream-davem' branch of wireless-2.6
Quoted 11 lines · David Miller
From: "John W. Linville" <[email protected]>
Date: Thu, 20 Dec 2007 17:38:50 -0500Quoted 8 lines · John W. Linville
Quoted 6 lines
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).mac80211: make PID rate control algorithm the default
Quoted 8 lines
Quoted 6 lines
This patch is busted. I was mistaken about its readiness -- I apologize. Don't pull if you haven't already.
We are actively working on fixing/replacing it.
Thanks for your patience!
No worries, let me know when there is a new tree to pull from.
[ This is the 2nd attempt, with the botched rate control selection patch
revised and thoroughly tested... ]
Dave,
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).
Also there are some small hits in the iwlwifi drivers related to rate control. I'll CC Jeff since his tree has a lot of iwlwifi symbol renames and those patches will conflict (or break the build, or both) when your tree and his finally come together.
Let me know if there are any problems!
John
P.S. I have a few more related to the cfg80211 changes, but the patches are cross-dependent on both your tree and Jeff's. I will probably send those to akpm in the meantime, and push them after Linus has pulled both your tree and Jeff's in the 2.6.25 merge window.
---
Individual patches are available here:
http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/upstream-davem
---
The following changes since commit adc292d3280278282d7b0e0813ccda711e739b5f:
Herbert Xu (1):
[IPSEC]: Do xfrm_state_check_space before encapsulation
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream-davem ..BRANCH.NOT.VERIFIED..
Johannes Berg (13):
mac80211: clean up eapol frame handling/port control
mac80211: clean up eapol handling in TX path
mac80211: make ieee80211_rx_mgmt_action static
mac80211: allow easier multicast/broadcast buffering in hardware cfg80211/nl80211: introduce key handling
mac80211: support adding/removing keys via cfg80211
mac80211: support getting key sequence counters via cfg80211 cfg80211/nl80211: add beacon settings cfg80211/nl80211: station handling
cfg80211/nl80211: implement station attribute retrieval
mac80211: implement station stats retrieval
mac80211: move tx crypto decision
mac80211: don't read ERP information from (re)association response
John W. Linville (2):
net/wireless/Kconfig: whitespace corrections net/mac80211/Kconfig: whitespace corrections
Mattias Nissler (4):
mac80211: clean up rate selection
mac80211: add PID controller based rate control algorithm
rc80211-pid: add debugging
rc80211-pid: export tuning parameters through debugfs
Ron Rindjunsky (1):
mac80211: pass in PS_POLL frames
Stefano Brivio (4):
mac80211: make PID rate control algorithm the default
rc80211-pid: add rate behaviour learning algorithm
rc80211-pid: add sharpening factor
doc: fix typo in feature-removal-schedule
Documentation/feature-removal-schedule.txt | 10 +- drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 44 +-- drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 46 +-- include/linux/nl80211.h | 154 ++++++ include/net/cfg80211.h | 167 +++++++ include/net/mac80211.h | 17 +- net/mac80211/Kconfig | 98 +++- net/mac80211/Makefile | 12 +- net/mac80211/cfg.c | 202 ++++++++- net/mac80211/debugfs_netdev.c | 27 +- net/mac80211/ieee80211.c | 39 +- net/mac80211/ieee80211_i.h | 24 +- net/mac80211/ieee80211_iface.c | 1 - net/mac80211/ieee80211_rate.c | 71 +++- net/mac80211/ieee80211_rate.h | 76 ++- net/mac80211/ieee80211_sta.c | 35 +- net/mac80211/rc80211_pid.h | 261 ++++++++++ net/mac80211/rc80211_pid_algo.c | 510 +++++++++++++++++++ net/mac80211/rc80211_pid_debugfs.c | 223 +++++++++ net/mac80211/rc80211_simple.c | 64 +-- net/mac80211/rx.c | 144 +++--- net/mac80211/tx.c | 171 ++++--- net/mac80211/util.c | 24 +- net/mac80211/wep.c | 10 - net/mac80211/wpa.c | 14 - net/wireless/Kconfig | 10 +- net/wireless/core.c | 3 + net/wireless/nl80211.c | 737 ++++++++++++++++++++++++++++ 28 files changed, 2748 insertions(+), 446 deletions(-) create mode 100644 net/mac80211/rc80211_pid.h create mode 100644 net/mac80211/rc80211_pid_algo.c create mode 100644 net/mac80211/rc80211_pid_debugfs.c
Documentation/feature-removal-schedule.txt +9 -1
@@ -334,10 +334,18 @@ Who: John W. Linville <[email protected]> --------------------------- -What: iee80211 softmac wireless networking component +What: ieee80211 softmac wireless networking component When: 2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211) Files: net/ieee80211/softmac Why: No in-kernel drivers will depend on it any longer. Who: John W. Linville <[email protected]> --------------------------- + +What: rc80211-simple rate control algorithm for mac80211 +When: 2.6.26 +Files: net/mac80211/rc80211-simple.c +Why: This algorithm was provided for reference but always exhibited bad + responsiveness and performance and has some serious flaws. It has been + replaced by rc80211-pid. +Who: Stefano Brivio <stefano.brivio-hl5o88x/[email protected]>
drivers/net/wireless/iwlwifi/iwl-3945-rs.c +7 -37
78 lines not on this page · raw message
drivers/net/wireless/iwlwifi/iwl-4965-rs.c +10 -36
76 lines not on this page · raw message
include/linux/nl80211.h +154 -0
194 lines not on this page · raw message
include/net/cfg80211.h +167 -0
185 lines not on this page · raw message
include/net/mac80211.h +8 -9
@@ -307,6 +307,9 @@ struct ieee80211_tx_control {* using the through * set_retry_limit configured * long retry value */ +#define IEEE80211_TXCTL_EAPOL_FRAME (1<<11)/* internal to mac80211 */ +#define IEEE80211_TXCTL_SEND_AFTER_DTIM (1<<12)/* send this frame after DTIM +* beacon */ u32 flags;/* tx control flags defined * above */ u8 key_idx;/* keyidx from hw->set_key(), undefined if
@@ -644,9 +647,6 @@ struct ieee80211_key_conf {u8 key[0 ]; }; -#define IEEE80211_SEQ_COUNTER_RX 0 -#define IEEE80211_SEQ_COUNTER_TX 1 -/** * enum set_key_cmd - key command *
@@ -993,9 +993,9 @@ enum ieee80211_erp_change_flags {* * @get_stats: return low-level statistics * -* @get_sequence_counter: For devices that have internal sequence counters this -* callback allows mac80211 to access the current value of a counter. -* This callback seems not well-defined, tell us if you need it. +* @get_tkip_seq: If your device implements TKIP encryption in hardware this +* callback should be provided to read the TKIP transmit IVs (both IV32 +* and IV16) for the given key from hardware. * * @set_rts_threshold: Configuration of RTS threshold (if device needs it) *
@@ -1070,9 +1070,8 @@ struct ieee80211_ops {int (*hw_scan)(struct ieee80211_hw *hw,u8 *ssid,size_t len);int (*get_stats)(struct ieee80211_hw *hw,struct ieee80211_low_level_stats *stats); -int (*get_sequence_counter)(struct ieee80211_hw *hw, -u8 * addr,u8 keyidx,u8 txrx, -u32 * iv32,u16 * iv16); +void (*get_tkip_seq)(struct ieee80211_hw *hw,u8 hw_key_idx, +u32 *iv32,u16 *iv16);int (*set_rts_threshold)(struct ieee80211_hw *hw,u32 value);int (*set_frag_threshold)(struct ieee80211_hw *hw,u32 value); int (*set_retry_limit)(struct ieee80211_hw *hw,
net/mac80211/Kconfig +78 -20
119 lines not on this page · raw message
net/mac80211/Makefile +10 -2
@@ -1,9 +1,17 @@ obj-$(CONFIG_MAC80211) += mac80211.o mac80211-objs-$(CONFIG_MAC80211_LEDS) += ieee80211_led.o -mac80211-objs-$(CONFIG_MAC80211_DEBUGFS) += debugfs.o debugfs_sta.o debugfs_netdev.o debugfs_key.o mac80211-objs-$(CONFIG_NET_SCHED) += wme.o -mac80211-objs-$(CONFIG_MAC80211_RCSIMPLE) += rc80211_simple.o +mac80211-objs-$(CONFIG_MAC80211_RC_SIMPLE) += rc80211_simple.o +mac80211-objs-$(CONFIG_MAC80211_RC_PID) += rc80211_pid_algo.o + +mac80211-debugfs-objs-$(CONFIG_MAC80211_RC_PID) += rc80211_pid_debugfs.o +mac80211-objs-$(CONFIG_MAC80211_DEBUGFS) += \ + debugfs.o \ + debugfs_sta.o \ + debugfs_netdev.o \ + debugfs_key.o \ + $(mac80211-debugfs-objs-y) mac80211-objs := \ ieee80211.o \
net/mac80211/cfg.c +201 -1
220 lines not on this page · raw message
net/mac80211/debugfs_netdev.c +9 -18
@@ -91,8 +91,7 @@ static const struct file_operations name##_ops = { \/* common attributes */ IEEE80211_IF_FILE (channel_use, channel_use,DEC );IEEE80211_IF_FILE (drop_unencrypted, drop_unencrypted,DEC ); -IEEE80211_IF_FILE (eapol, eapol,DEC ); -IEEE80211_IF_FILE (ieee8021_x, ieee802_1x,DEC ); +IEEE80211_IF_FILE (ieee802_1x_pac, ieee802_1x_pac,DEC );/* STA/IBSS attributes */ IEEE80211_IF_FILE (state, u.sta.state,DEC );
@@ -170,8 +169,7 @@ static void add_sta_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_ADD (channel_use, sta);DEBUGFS_ADD (drop_unencrypted, sta); -DEBUGFS_ADD (eapol, sta); -DEBUGFS_ADD (ieee8021_x, sta); +DEBUGFS_ADD (ieee802_1x_pac, sta);DEBUGFS_ADD (state, sta);DEBUGFS_ADD (bssid, sta);DEBUGFS_ADD (prev_bssid, sta);
@@ -192,8 +190,7 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_ADD (channel_use, ap);DEBUGFS_ADD (drop_unencrypted, ap); -DEBUGFS_ADD (eapol, ap); -DEBUGFS_ADD (ieee8021_x, ap); +DEBUGFS_ADD (ieee802_1x_pac, ap);DEBUGFS_ADD (num_sta_ps, ap);DEBUGFS_ADD (dtim_period, ap);DEBUGFS_ADD (dtim_count, ap);
@@ -209,8 +206,7 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_ADD (channel_use, wds);DEBUGFS_ADD (drop_unencrypted, wds); -DEBUGFS_ADD (eapol, wds); -DEBUGFS_ADD (ieee8021_x, wds); +DEBUGFS_ADD (ieee802_1x_pac, wds);DEBUGFS_ADD (peer, wds); }
@@ -218,8 +214,7 @@ static void add_vlan_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_ADD (channel_use, vlan);DEBUGFS_ADD (drop_unencrypted, vlan); -DEBUGFS_ADD (eapol, vlan); -DEBUGFS_ADD (ieee8021_x, vlan); +DEBUGFS_ADD (ieee802_1x_pac, vlan); }static void add_monitor_files (struct ieee80211_sub_if_data *sdata)
@@ -263,8 +258,7 @@ static void del_sta_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_DEL (channel_use, sta);DEBUGFS_DEL (drop_unencrypted, sta); -DEBUGFS_DEL (eapol, sta); -DEBUGFS_DEL (ieee8021_x, sta); +DEBUGFS_DEL (ieee802_1x_pac, sta);DEBUGFS_DEL (state, sta);DEBUGFS_DEL (bssid, sta);DEBUGFS_DEL (prev_bssid, sta);
@@ -285,8 +279,7 @@ static void del_ap_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_DEL (channel_use, ap);DEBUGFS_DEL (drop_unencrypted, ap); -DEBUGFS_DEL (eapol, ap); -DEBUGFS_DEL (ieee8021_x, ap); +DEBUGFS_DEL (ieee802_1x_pac, ap);DEBUGFS_DEL (num_sta_ps, ap);DEBUGFS_DEL (dtim_period, ap);DEBUGFS_DEL (dtim_count, ap);
@@ -302,8 +295,7 @@ static void del_wds_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_DEL (channel_use, wds);DEBUGFS_DEL (drop_unencrypted, wds); -DEBUGFS_DEL (eapol, wds); -DEBUGFS_DEL (ieee8021_x, wds); +DEBUGFS_DEL (ieee802_1x_pac, wds);DEBUGFS_DEL (peer, wds); }
@@ -311,8 +303,7 @@ static void del_vlan_files(struct ieee80211_sub_if_data *sdata) {DEBUGFS_DEL (channel_use, vlan);DEBUGFS_DEL (drop_unencrypted, vlan); -DEBUGFS_DEL (eapol, vlan); -DEBUGFS_DEL (ieee8021_x, vlan); +DEBUGFS_DEL (ieee802_1x_pac, vlan); }static void del_monitor_files (struct ieee80211_sub_if_data *sdata)
net/mac80211/ieee80211.c +28 -11
@@ -733,6 +733,8 @@ static void ieee80211_remove_tx_extra(struct ieee80211_local *local, pkt_data->flags |=IEEE80211_TXPD_DO_NOT_ENCRYPT ;if (control->flags &IEEE80211_TXCTL_REQUEUE ) pkt_data->flags |=IEEE80211_TXPD_REQUEUE ; +if (control->flags &IEEE80211_TXCTL_EAPOL_FRAME ) + pkt_data->flags |=IEEE80211_TXPD_EAPOL_FRAME ; pkt_data->queue = control->queue; hdrlen =ieee80211_get_hdrlen_from_skb (skb);
@@ -860,10 +862,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb,sta_info_put (sta);return ; } - }else { -/* FIXME: STUPID to call this with both local and local->mdev */ -rate_control_tx_status (local, local->mdev, skb, status); - } + }else +rate_control_tx_status (local->mdev, skb, status);ieee80211_led_tx (local,0 );
@@ -1315,33 +1315,50 @@ static int __init ieee80211_init(void)BUILD_BUG_ON (sizeof (struct ieee80211_tx_packet_data ) >sizeof (skb->cb)); -#ifdef CONFIG_MAC80211_RCSIMPLE +#ifdef CONFIG_MAC80211_RC_SIMPLE ret =ieee80211_rate_control_register (&mac80211_rcsimple);if (ret) -return ret; + goto fail; +#endif + +#ifdef CONFIG_MAC80211_RC_PID + ret =ieee80211_rate_control_register (&mac80211_rcpid); +if (ret) + goto fail;#endif ret =ieee80211_wme_register ();if (ret) { -#ifdef CONFIG_MAC80211_RCSIMPLE -ieee80211_rate_control_unregister (&mac80211_rcsimple); -#endif printk (KERN_DEBUG "ieee80211_init: failed to " "initialize WME (err=%d)\n" , ret); -return ret; + goto fail; }ieee80211_debugfs_netdev_init ();ieee80211_regdomain_init ();return 0 ; + +fail: + +#ifdef CONFIG_MAC80211_RC_SIMPLE +ieee80211_rate_control_unregister (&mac80211_rcsimple); +#endif +#ifdef CONFIG_MAC80211_RC_PID +ieee80211_rate_control_unregister (&mac80211_rcpid); +#endif + +return ret; } static void __exit ieee80211_exit(void) { -#ifdef CONFIG_MAC80211_RCSIMPLE +#ifdef CONFIG_MAC80211_RC_SIMPLE ieee80211_rate_control_unregister (&mac80211_rcsimple);#endif +#ifdef CONFIG_MAC80211_RC_PID +ieee80211_rate_control_unregister (&mac80211_rcpid); +#endif ieee80211_wme_unregister ();ieee80211_debugfs_netdev_exit ();
net/mac80211/ieee80211_i.h +10 -14
@@ -164,6 +164,7 @@ struct ieee80211_txrx_data {#define IEEE80211_TXPD_REQ_TX_STATUS BIT(0)#define IEEE80211_TXPD_DO_NOT_ENCRYPT BIT(1)#define IEEE80211_TXPD_REQUEUE BIT(2) +#define IEEE80211_TXPD_EAPOL_FRAME BIT(3)/* Stored in sk_buff->cb */ struct ieee80211_tx_packet_data {int ifindex;
@@ -306,11 +307,11 @@ struct ieee80211_sub_if_data {unsigned int flags;int drop_unencrypted; -int eapol;/* 0 = process EAPOL frames as normal data frames, -* 1 = send EAPOL frames through wlan#ap to hostapd -* (default) */ -int ieee802_1x;/* IEEE 802.1X PAE - drop packet to/from unauthorized -* port */ +/* +* IEEE 802.1X Port access control in effect, +* drop packets to/from unauthorized port +*/ +int ieee802_1x_pac;u16 sequence;
@@ -339,8 +340,7 @@ struct ieee80211_sub_if_data {struct {struct dentry *channel_use;struct dentry *drop_unencrypted; -struct dentry *eapol; -struct dentry *ieee8021_x; +struct dentry *ieee802_1x_pac;struct dentry *state;struct dentry *bssid;struct dentry *prev_bssid;
@@ -359,8 +359,7 @@ struct ieee80211_sub_if_data {struct {struct dentry *channel_use;struct dentry *drop_unencrypted; -struct dentry *eapol; -struct dentry *ieee8021_x; +struct dentry *ieee802_1x_pac;struct dentry *num_sta_ps;struct dentry *dtim_period;struct dentry *dtim_count;
@@ -374,15 +373,13 @@ struct ieee80211_sub_if_data {struct {struct dentry *channel_use;struct dentry *drop_unencrypted; -struct dentry *eapol; -struct dentry *ieee8021_x; +struct dentry *ieee802_1x_pac;struct dentry *peer; } wds;struct {struct dentry *channel_use;struct dentry *drop_unencrypted; -struct dentry *eapol; -struct dentry *ieee8021_x; +struct dentry *ieee802_1x_pac; } vlan;struct {struct dentry *mode;
@@ -802,7 +799,6 @@ extern void *mac80211_wiphy_privid; /* for wiphy privid */extern const unsigned char rfc1042_header[6 ];extern const unsigned char bridge_tunnel_header[6 ];u8 *ieee80211_get_bssid (struct ieee80211_hdr *hdr,size_t len); -int ieee80211_is_eapol (const struct sk_buff *skb,int hdrlen);int ieee80211_frame_duration (struct ieee80211_local *local,size_t len,int rate,int erp,int short_preamble); void mac80211_ev_michael_mic_failure(struct net_device *dev, int keyidx,
net/mac80211/ieee80211_iface.c +0 -1
@@ -22,7 +22,6 @@ void ieee80211_if_sdata_init(struct ieee80211_sub_if_data *sdata)/* Default values for sub-interface parameters */ sdata->drop_unencrypted =0 ; - sdata->eapol =1 ;for (i =0 ; i <IEEE80211_FRAGMENT_MAX ; i++)skb_queue_head_init (&sdata->fragments[i].skb_list);
net/mac80211/ieee80211_rate.c +65 -6
101 lines not on this page · raw message
net/mac80211/ieee80211_rate.h +49 -27
117 lines not on this page · raw message
net/mac80211/ieee80211_sta.c +9 -26
@@ -1375,20 +1375,6 @@ static void ieee80211_rx_mgmt_assoc_resp(struct net_device *dev,return ; } -/* it probably doesn't, but if the frame includes an ERP value then -* update our stored copy */ -if (elems.erp_info && elems.erp_info_len >=1 ) { -struct ieee80211_sta_bss *bss - =ieee80211_rx_bss_get (dev, ifsta->bssid, - local->hw.conf.channel, - ifsta->ssid, ifsta->ssid_len); -if (bss) { - bss->erp_value = elems.erp_info[0 ]; - bss->has_erp_value =1 ; -ieee80211_rx_bss_put (dev, bss); - } - } -printk (KERN_DEBUG "%s: associated\n" , dev->name); ifsta->aid = aid; ifsta->ap_capab = capab_info;
@@ -1998,10 +1984,10 @@ static void ieee80211_rx_mgmt_probe_req(struct net_device *dev,ieee80211_sta_tx (dev, skb,0 ); } -void ieee80211_rx_mgmt_action (struct net_device *dev, -struct ieee80211_if_sta *ifsta, -struct ieee80211_mgmt *mgmt, -size_t len) +static void ieee80211_rx_mgmt_action (struct net_device *dev, +struct ieee80211_if_sta *ifsta, +struct ieee80211_mgmt *mgmt, +size_t len) {if (len <IEEE80211_MIN_ACTION_SIZE )return ;
@@ -2467,9 +2453,8 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,struct sk_buff *skb;struct ieee80211_mgmt *mgmt;struct ieee80211_tx_control control; -struct ieee80211_rate *rate;struct ieee80211_hw_mode *mode; -struct rate_control_extra extra; +struct rate_selection ratesel;u8 *pos;struct ieee80211_sub_if_data *sdata;
@@ -2554,18 +2539,16 @@ static int ieee80211_sta_join_ibss(struct net_device *dev, }memset (&control,0 ,sizeof (control)); -memset (&extra,0 ,sizeof (extra)); - extra.mode = local->oper_hw_mode; - rate =rate_control_get_rate (local, dev, skb, &extra); -if (!rate) { +rate_control_get_rate (dev, local->oper_hw_mode, skb, &ratesel); +if (!ratesel.rate) {printk (KERN_DEBUG "%s: Failed to determine TX rate " "for IBSS beacon\n" , dev->name);break ; } control.tx_rate = ((sdata->flags &IEEE80211_SDATA_SHORT_PREAMBLE ) && - (rate->flags &IEEE80211_RATE_PREAMBLE2 )) ? - rate->val2 : rate->val; + (ratesel.rate->flags &IEEE80211_RATE_PREAMBLE2 )) ? + ratesel.rate->val2 : ratesel.rate->val; control.antenna_sel_tx = local->hw.conf.antenna_sel_tx; control.power_level = local->hw.conf.power_level; control.flags |=IEEE80211_TXCTL_NO_ACK ;
net/mac80211/rc80211_pid.h new file +261 -0
261 lines not on this page · raw message
net/mac80211/rc80211_pid_algo.c new file +510 -0
510 lines not on this page · raw message
net/mac80211/rc80211_pid_debugfs.c new file +223 -0
223 lines not on this page · raw message
net/mac80211/rc80211_simple.c +11 -53
99 lines not on this page · raw message
net/mac80211/rx.c +77 -67
268 lines not on this page · raw message
net/mac80211/tx.c +101 -70
174 lines not on this page · raw message
net/wireless/nl80211.c +737 -0
737 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Signature · 2 lines
John W. Linville [email protected]
Part of the diff is not shown here. View the raw message.
David Miller
maintainerRe: (2nd attempt) Please pull 'upstream-davem' branch of wireless-2.6
From: "John W. Linville" <[email protected]>
Date: Fri, 21 Dec 2007 09:05:27 -0500
Quoted 10 lines
These are destined for 2.6.25. The patches fall mostly into two
categories: a new rate control algorithm for mac80211, and some cfg80211 enhancements (including mac80211 patches to use them).Also there are some small hits in the iwlwifi drivers related to rate control. I'll CC Jeff since his tree has a lot of iwlwifi symbol renames and those patches will conflict (or break the build, or both) when your tree and his finally come together.
Let me know if there are any problems!
Pulled, thanks a lot!