X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/922c0b910df7440c41cb51d5df1856a3110a0498..d779c21114e94a3e8f8bcfb362f2480f3e4e65e6:/package/madwifi/patches/346-protmode_trig.patch?ds=sidebyside

diff --git a/package/madwifi/patches/346-protmode_trig.patch b/package/madwifi/patches/346-protmode_trig.patch
index cf28aaab4..5b5cec6e9 100644
--- a/package/madwifi/patches/346-protmode_trig.patch
+++ b/package/madwifi/patches/346-protmode_trig.patch
@@ -1,8 +1,6 @@
-Index: madwifi-trunk-r3314/net80211/ieee80211.c
-===================================================================
---- madwifi-trunk-r3314.orig/net80211/ieee80211.c	2008-04-21 05:22:20.000000000 +0200
-+++ madwifi-trunk-r3314/net80211/ieee80211.c	2008-04-21 05:23:46.000000000 +0200
-@@ -333,7 +333,9 @@
+--- a/net80211/ieee80211.c
++++ b/net80211/ieee80211.c
+@@ -333,7 +333,9 @@ ieee80211_ifattach(struct ieee80211com *
  			IEEE80211_MS_TO_TU(IEEE80211_BMISSTHRESH_DEFAULT_MS), 
  			ic->ic_lintval), ic->ic_lintval);
  	}
@@ -13,11 +11,9 @@ Index: madwifi-trunk-r3314/net80211/ieee80211.c
  	IEEE80211_LOCK_INIT(ic, "ieee80211com");
  	IEEE80211_VAPS_LOCK_INIT(ic, "ieee80211com_vaps");
  	TAILQ_INIT(&ic->ic_vaps);
-Index: madwifi-trunk-r3314/net80211/ieee80211_input.c
-===================================================================
---- madwifi-trunk-r3314.orig/net80211/ieee80211_input.c	2008-04-21 05:22:32.000000000 +0200
-+++ madwifi-trunk-r3314/net80211/ieee80211_input.c	2008-04-21 05:23:46.000000000 +0200
-@@ -3412,16 +3412,32 @@
+--- a/net80211/ieee80211_input.c
++++ b/net80211/ieee80211_input.c
+@@ -3411,14 +3411,18 @@ ieee80211_recv_mgmt(struct ieee80211vap
  			IEEE80211_IS_CHAN_ANYG(ic->ic_curchan)) {
  
  			/* Assume no ERP IE == 11b AP */
@@ -40,38 +36,20 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_input.c
 +				ic->ic_protmode_lasttrig = jiffies;
  			}
  		}
-+		if ((ic->ic_flags & IEEE80211_F_USEPROT) &&
-+			(ic->ic_protmode_lasttrig + ic->ic_protmode_timeout * HZ <
-+				jiffies)) {
-+			struct ieee80211vap *tmpvap;
-+
-+			/* expire protection mode */
-+			ic->ic_flags &= ~IEEE80211_F_USEPROT;
-+			TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
-+				tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
-+			}
-+		}
-+
  
- 		/*
- 		 * If scanning, just pass information to the scan module.
-Index: madwifi-trunk-r3314/net80211/ieee80211_ioctl.h
-===================================================================
---- madwifi-trunk-r3314.orig/net80211/ieee80211_ioctl.h	2008-04-21 05:22:20.000000000 +0200
-+++ madwifi-trunk-r3314/net80211/ieee80211_ioctl.h	2008-04-21 05:23:46.000000000 +0200
-@@ -643,6 +643,8 @@
+--- a/net80211/ieee80211_ioctl.h
++++ b/net80211/ieee80211_ioctl.h
+@@ -643,6 +643,8 @@ enum {
  	IEEE80211_PARAM_BEACON_MISS_THRESH_MS	= 74,	/* Beacon miss threshold (in ms) */
  	IEEE80211_PARAM_MAXRATE			= 75,	/* Maximum rate (by table index) */
- 	IEEE80211_PARAM_MINRATE			= 76,	/* Maximum rate (by table index) */
+ 	IEEE80211_PARAM_MINRATE			= 76,	/* Minimum rate (by table index) */
 +	IEEE80211_PARAM_PROTMODE_RSSI		= 77,	/* RSSI Threshold for enabling protection mode */
 +	IEEE80211_PARAM_PROTMODE_TIMEOUT	= 78,	/* Timeout for expiring protection mode */
  };
  
  #define	SIOCG80211STATS			(SIOCDEVPRIVATE+2)
-Index: madwifi-trunk-r3314/net80211/ieee80211_var.h
-===================================================================
---- madwifi-trunk-r3314.orig/net80211/ieee80211_var.h	2008-04-21 05:22:20.000000000 +0200
-+++ madwifi-trunk-r3314/net80211/ieee80211_var.h	2008-04-21 05:41:45.000000000 +0200
+--- a/net80211/ieee80211_var.h
++++ b/net80211/ieee80211_var.h
 @@ -128,6 +128,9 @@
  
  #define	IEEE80211_APPIE_MAX	1024
@@ -82,7 +60,7 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_var.h
  #define IEEE80211_PWRCONSTRAINT_VAL(ic) \
  	(((ic)->ic_bsschan->ic_maxregpower > (ic)->ic_curchanmaxpwr) ? \
  	    (ic)->ic_bsschan->ic_maxregpower - (ic)->ic_curchanmaxpwr : 0)
-@@ -324,6 +327,9 @@
+@@ -324,6 +327,9 @@ struct ieee80211com {
  	u_int16_t ic_newtxpowlimit; 		/* tx power limit to change to (in 0.5 dBm) */
  	u_int16_t ic_uapsdmaxtriggers; 		/* max triggers that could arrive */
  	u_int8_t ic_coverageclass; 		/* coverage class */
@@ -92,11 +70,9 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_var.h
  
  	/* Channel state:
  	 *
-Index: madwifi-trunk-r3314/net80211/ieee80211_wireless.c
-===================================================================
---- madwifi-trunk-r3314.orig/net80211/ieee80211_wireless.c	2008-04-21 05:22:20.000000000 +0200
-+++ madwifi-trunk-r3314/net80211/ieee80211_wireless.c	2008-04-21 05:23:46.000000000 +0200
-@@ -2312,6 +2312,12 @@
+--- a/net80211/ieee80211_wireless.c
++++ b/net80211/ieee80211_wireless.c
+@@ -2312,6 +2312,12 @@ ieee80211_ioctl_setparam(struct net_devi
  		    IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan))
  			retv = ENETRESET;
  		break;
@@ -109,7 +85,7 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_wireless.c
  	case IEEE80211_PARAM_MCASTCIPHER:
  		if ((vap->iv_caps & cipher2cap(value)) == 0 &&
  		    !ieee80211_crypto_available(vap, value))
-@@ -2955,6 +2961,12 @@
+@@ -2955,6 +2961,12 @@ ieee80211_ioctl_getparam(struct net_devi
  	case IEEE80211_PARAM_PROTMODE:
  		param[0] = ic->ic_protmode;
  		break;
@@ -122,7 +98,7 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_wireless.c
  	case IEEE80211_PARAM_MCASTCIPHER:
  		param[0] = rsn->rsn_mcastcipher;
  		break;
-@@ -5346,6 +5358,14 @@
+@@ -5346,6 +5358,14 @@ static const struct iw_priv_args ieee802
  	  IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "protmode" },
  	{ IEEE80211_PARAM_PROTMODE,
  	  0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_protmode" },
@@ -137,3 +113,23 @@ Index: madwifi-trunk-r3314/net80211/ieee80211_wireless.c
  	{ IEEE80211_PARAM_MCASTCIPHER,
  	  IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "mcastcipher" },
  	{ IEEE80211_PARAM_MCASTCIPHER,
+--- a/net80211/ieee80211_node.c
++++ b/net80211/ieee80211_node.c
+@@ -1877,6 +1877,17 @@ ieee80211_node_timeout(unsigned long arg
+ 
+ 	ieee80211_scan_timeout(ic);
+ 	ieee80211_timeout_stations(&ic->ic_sta);
++	if ((ic->ic_flags & IEEE80211_F_USEPROT) &&
++		(ic->ic_protmode_lasttrig + ic->ic_protmode_timeout * HZ <
++			jiffies)) {
++		struct ieee80211vap *tmpvap;
++
++		/* expire protection mode */
++		ic->ic_flags &= ~IEEE80211_F_USEPROT;
++		TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
++			tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
++		}
++	}
+ 
+ 	ic->ic_inact.expires = jiffies + IEEE80211_INACT_WAIT * HZ;
+ 	add_timer(&ic->ic_inact);