madwifi update: include upstream fixes for ff handling, disable ff by default (not...
authorFelix Fietkau <nbd@openwrt.org>
Sat, 2 Jun 2007 02:22:01 +0000 (02:22 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 2 Jun 2007 02:22:01 +0000 (02:22 +0000)
SVN-Revision: 7440

package/madwifi/Makefile
package/madwifi/files/lib/wifi/madwifi.sh
package/madwifi/patches/114-ff_skb_fix.patch [deleted file]
package/madwifi/patches/121-ibss_hostap.patch
package/madwifi/patches/122-replayfail_workaround.patch [new file with mode: 0644]
package/madwifi/patches/309-micfail_detect.patch

index b68dcc4d984199b20680c7d38f22bd50bcdb8ef3..584b96707509f0bfb99bbb1b13a77a72fdd0c649 100644 (file)
@@ -10,14 +10,14 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=madwifi
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=madwifi
-PKG_VERSION:=r2414-20070601
+PKG_VERSION:=r2420-20070602
 PKG_BRANCH:=madwifi-ng
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_BRANCH)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://snapshots.madwifi.org/$(PKG_BRANCH)
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BRANCH)-$(PKG_VERSION)
 PKG_BRANCH:=madwifi-ng
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_BRANCH)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://snapshots.madwifi.org/$(PKG_BRANCH)
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BRANCH)-$(PKG_VERSION)
-PKG_MD5SUM:=a6d1c884520cccf8ef407b4d0a00de72
+PKG_MD5SUM:=1ba88326b8dc8c231562329fc2e39578
 
 include $(INCLUDE_DIR)/package.mk
 
 
 include $(INCLUDE_DIR)/package.mk
 
index 5d4adc58ff880fb7e3dea471369e322a9b9ec379..2635699adb4e7141c20f9f3d7741ab3438218bf5 100755 (executable)
@@ -109,9 +109,12 @@ enable_atheros() {
                        iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null 
                }
        
                        iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null 
                }
        
-               config_get_bool hidden "$vif" hidden
+               config_get_bool hidden "$vif" hidden 0
                iwpriv "$ifname" hide_ssid "$hidden"
 
                iwpriv "$ifname" hide_ssid "$hidden"
 
+               config_get_bool ff "$vif" ff 0
+               iwpriv "$ifname" ff "$ff"
+
                config_get wds "$vif" wds
                case "$wds" in
                        1|on|enabled) wds=1;;
                config_get wds "$vif" wds
                case "$wds" in
                        1|on|enabled) wds=1;;
diff --git a/package/madwifi/patches/114-ff_skb_fix.patch b/package/madwifi/patches/114-ff_skb_fix.patch
deleted file mode 100644 (file)
index 059afb8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur madwifi.old/net80211/ieee80211_input.c madwifi.dev/net80211/ieee80211_input.c
---- madwifi.old/net80211/ieee80211_input.c     2007-06-01 16:44:25.174897520 +0200
-+++ madwifi.dev/net80211/ieee80211_input.c     2007-06-01 17:43:52.153634328 +0200
-@@ -685,6 +685,7 @@
-                               IEEE80211_NODE_STAT(ni, rx_decap);
-                               goto err;
-                       }
-+                      skb1 = skb_clone(skb, GFP_ATOMIC);
-                       /* get to the tunneled headers */
-                       ath_hdr = (struct athl2p_tunnel_hdr *)
index 8a843a279bca501a9804823ab0c2354785c9d99e..d43618b73392fd06e96447d578a8386dc6cf2b4e 100644 (file)
@@ -112,16 +112,15 @@ diff -ur madwifi.old/ath/if_ath.c madwifi.dev/ath/if_ath.c
                sc->sc_nstavaps--;
                sc->sc_nostabeacons = 0;
        } else if (vap->iv_opmode == IEEE80211_M_MONITOR)
                sc->sc_nstavaps--;
                sc->sc_nostabeacons = 0;
        } else if (vap->iv_opmode == IEEE80211_M_MONITOR)
-@@ -3356,7 +3347,8 @@
-                HAL_RX_FILTER_MCAST;
-       if (ic->ic_opmode != IEEE80211_M_STA)
-               rfilt |= HAL_RX_FILTER_PROBEREQ;
--      if (ic->ic_opmode != IEEE80211_M_HOSTAP && (dev->flags & IFF_PROMISC))
-+      if ((ic->ic_opmode != IEEE80211_M_HOSTAP && (dev->flags & IFF_PROMISC)) ||
-+              ((sc->sc_nvaps > 0) && (sc->sc_nibssvaps > 0)))
-               rfilt |= HAL_RX_FILTER_PROM;
-       if (ic->ic_opmode == IEEE80211_M_STA ||
-           sc->sc_opmode == HAL_M_IBSS ||      /* NB: AHDEMO too */
+@@ -3368,7 +3367,7 @@
+               ((ic->ic_opmode == IEEE80211_M_HOSTAP) &&
+                (ic->ic_protmode != IEEE80211_PROT_NONE)))
+               rfilt |= HAL_RX_FILTER_BEACON;
+-      if (sc->sc_nmonvaps > 0)
++      if ((sc->sc_nmonvaps > 0) || ((sc->sc_nvaps > 0) && (sc->sc_nibssvaps > 0)))
+               rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON |
+                         HAL_RX_FILTER_PROBEREQ | HAL_RX_FILTER_PROM);
+       return rfilt;
 @@ -5809,12 +5801,19 @@
                        type = ieee80211_input(ni, skb, rs->rs_rssi, rs->rs_tstamp);
                        ieee80211_unref_node(&ni);
 @@ -5809,12 +5801,19 @@
                        type = ieee80211_input(ni, skb, rs->rs_rssi, rs->rs_tstamp);
                        ieee80211_unref_node(&ni);
diff --git a/package/madwifi/patches/122-replayfail_workaround.patch b/package/madwifi/patches/122-replayfail_workaround.patch
new file mode 100644 (file)
index 0000000..49f1a13
--- /dev/null
@@ -0,0 +1,13 @@
+diff -ur madwifi.old/net80211/ieee80211_linux.c madwifi.dev/net80211/ieee80211_linux.c
+--- madwifi.old/net80211/ieee80211_linux.c     2007-05-30 03:41:18.000000000 +0200
++++ madwifi.dev/net80211/ieee80211_linux.c     2007-06-02 01:43:40.818092096 +0200
+@@ -285,6 +285,9 @@
+               k->wk_cipher->ic_name, k->wk_keyix,
+               (unsigned long long)rsc );
++      /* disabled for now due to bogus events for unknown reasons */
++      return;
++
+       /* TODO: needed parameters: count, keyid, key type, src address, TSC */
+       snprintf(buf, sizeof(buf), "%s(keyid=%d %scast addr=%s)", tag,
+               k->wk_keyix,
index 8355c275dc86a51066eea007c06341b4c80d9822..a51915ef76a129284bc15c0e47ed6713e135545b 100644 (file)
@@ -246,20 +246,6 @@ diff -ur madwifi.old/net80211/ieee80211_input.c madwifi.dev/net80211/ieee80211_i
  #ifdef IEEE80211_DEBUG
  /*
   * Debugging support.
  #ifdef IEEE80211_DEBUG
  /*
   * Debugging support.
-diff -ur madwifi.old/net80211/ieee80211_linux.c madwifi.dev/net80211/ieee80211_linux.c
---- madwifi.old/net80211/ieee80211_linux.c     2007-05-30 03:41:18.000000000 +0200
-+++ madwifi.dev/net80211/ieee80211_linux.c     2007-06-01 11:45:05.003258624 +0200
-@@ -311,8 +311,8 @@
-       /* TODO: needed parameters: count, keyid, key type, src address, TSC */
-       snprintf(buf, sizeof(buf), "%s(keyid=%d %scast addr=%s)", tag,
--              keyix, IEEE80211_IS_MULTICAST(wh->i_addr1) ?  "broad" : "uni",
--              ether_sprintf(wh->i_addr1));
-+              keyix, IEEE80211_IS_MULTICAST(wh->i_addr2) ?  "broad" : "uni",
-+              ether_sprintf(wh->i_addr2));
-       memset(&wrqu, 0, sizeof(wrqu));
-       wrqu.data.length = strlen(buf);
-       wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf);
 diff -ur madwifi.old/net80211/ieee80211_proto.h madwifi.dev/net80211/ieee80211_proto.h
 --- madwifi.old/net80211/ieee80211_proto.h     2007-06-01 11:26:04.172691000 +0200
 +++ madwifi.dev/net80211/ieee80211_proto.h     2007-06-01 11:45:05.004258472 +0200
 diff -ur madwifi.old/net80211/ieee80211_proto.h madwifi.dev/net80211/ieee80211_proto.h
 --- madwifi.old/net80211/ieee80211_proto.h     2007-06-01 11:26:04.172691000 +0200
 +++ madwifi.dev/net80211/ieee80211_proto.h     2007-06-01 11:45:05.004258472 +0200
@@ -271,3 +257,16 @@ diff -ur madwifi.old/net80211/ieee80211_proto.h madwifi.dev/net80211/ieee80211_p
  
  /*
   * Return the size of the 802.11 header for a management or data frame.
  
  /*
   * Return the size of the 802.11 header for a management or data frame.
+--- madwifi.old/net80211/ieee80211_linux.c     2007-06-02 04:05:42.902538336 +0200
++++ madwifi.dev/net80211/ieee80211_linux.c     2007-06-02 04:05:55.302653232 +0200
+@@ -291,8 +291,8 @@
+       /* TODO: needed parameters: count, keyid, key type, src address, TSC */
+       snprintf(buf, sizeof(buf), "%s(keyid=%d %scast addr=%s)", tag,
+               k->wk_keyix,
+-              IEEE80211_IS_MULTICAST(wh->i_addr1) ?  "broad" : "uni",
+-              ether_sprintf(wh->i_addr1));
++              IEEE80211_IS_MULTICAST(wh->i_addr2) ?  "broad" : "uni",
++              ether_sprintf(wh->i_addr2));
+       memset(&wrqu, 0, sizeof(wrqu));
+       wrqu.data.length = strlen(buf);
+       wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf);