mirror of
https://github.com/aircrack-ng/rtl8812au.git
synced 2024-11-22 13:24:36 +00:00
Fix injected frames drop + platform fixes
This commit is contained in:
parent
37235d4153
commit
7c899d1b5b
24
Makefile
24
Makefile
@ -157,6 +157,7 @@ CONFIG_PLATFORM_HISILICON = n
|
||||
CONFIG_PLATFORM_NV_TK1 = n
|
||||
CONFIG_PLATFORM_RTL8197D = n
|
||||
CONFIG_PLATFORM_ARM_ODROIDC2 = n
|
||||
CONFIG_PLATFORM_PPC = n
|
||||
###############################################################
|
||||
|
||||
CONFIG_DRVEXT_MODULE = n
|
||||
@ -1006,7 +1007,7 @@ EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04
|
||||
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
|
||||
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/aarch64/arm64/ )
|
||||
ARCH ?= $(SUBARCH)
|
||||
CROSS_COMPILE ?=
|
||||
KVER := $(shell uname -r)
|
||||
@ -1263,13 +1264,15 @@ endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||
ARCH := arm
|
||||
CROSS_COMPILE := /home/share/CusEnv/FreeScale/arm-eabi-4.4.3/bin/arm-eabi-
|
||||
KSRC ?= /home/share/CusEnv/FreeScale/FS_kernel_env
|
||||
CROSS_COMPILE ?=
|
||||
KVER ?= $(shell uname -r)
|
||||
KSRC := /lib/modules/$(KVER)/build
|
||||
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
||||
INSTALL_PREFIX :=
|
||||
endif
|
||||
|
||||
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X
|
||||
ARCH := mips
|
||||
@ -1512,6 +1515,17 @@ CROSS_COMPILE := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/out/andr
|
||||
KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_PPC), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
|
||||
SUBARCH := $(shell uname -m | sed -e s/ppc/powerpc/)
|
||||
ARCH ?= $(SUBARCH)
|
||||
CROSS_COMPILE ?=
|
||||
KVER ?= $(shell uname -r)
|
||||
KSRC := /lib/modules/$(KVER)/build
|
||||
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
||||
INSTALL_PREFIX :=
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W3P1), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
|
||||
|
@ -4221,6 +4221,21 @@ int rtw_ieee80211_radiotap_iterator_init(
|
||||
int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns);
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
||||
static struct xmit_frame* monitor_alloc_mgtxmitframe(struct xmit_priv *pxmitpriv) {
|
||||
int tries;
|
||||
int delay = 300;
|
||||
struct xmit_frame *pmgntframe = NULL;
|
||||
|
||||
for(tries = 3; tries >= 0; tries--) {
|
||||
pmgntframe = alloc_mgtxmitframe(pxmitpriv);
|
||||
if(pmgntframe != NULL)
|
||||
return pmgntframe;
|
||||
rtw_udelay_os(delay);
|
||||
delay += delay/2;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -4264,6 +4279,11 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
if (unlikely(skb->len < rtap_len))
|
||||
goto fail;
|
||||
|
||||
if ((pmgntframe = monitor_alloc_mgtxmitframe(pxmitpriv)) == NULL) {
|
||||
DBG_COUNTER(padapter->tx_logs.core_tx_err_pxmitframe);
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
||||
ret = rtw_ieee80211_radiotap_iterator_init(&iterator, rtap_hdr, skb->len, NULL);
|
||||
while (!ret) {
|
||||
ret = rtw_ieee80211_radiotap_iterator_next(&iterator);
|
||||
@ -4344,11 +4364,7 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
// dot11_hdr = (struct ieee80211_hdr *)skb->data;
|
||||
// frame_ctl = le16_to_cpu(dot11_hdr->frame_control);
|
||||
/* Check if the QoS bit is set */
|
||||
|
||||
if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL) {
|
||||
rtw_udelay_os(500);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
pattrib = &pmgntframe->attrib;
|
||||
update_monitor_frame_attrib(padapter, pattrib);
|
||||
|
||||
@ -4377,10 +4393,11 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
|
||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||
dump_mgntframe(padapter, pmgntframe);
|
||||
DBG_COUNTER(padapter->tx_logs.core_tx);
|
||||
|
||||
fail:
|
||||
rtw_skb_free(skb);
|
||||
return 0;
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
PACKAGE_NAME="realtek-rtl8812au"
|
||||
PACKAGE_VERSION="5.2.20~20180622"
|
||||
PACKAGE_VERSION="5.2.20~20180625"
|
||||
BUILT_MODULE_NAME[0]="8812au"
|
||||
PROCS_NUM=`nproc`
|
||||
[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
|
||||
|
@ -3,12 +3,13 @@
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
TODO:
|
||||
- Add support for namespaces (NS)
|
||||
- Fix count for frames in RadioTap header (add to stats)
|
||||
- Enable TX queue in monitor mode
|
||||
- Place signal quality and per antenna rssi into radiotap header
|
||||
- Calculate signal quality in the monitor mode
|
||||
- Add channels 151 and 153
|
||||
- Unmask all available channels
|
||||
- Disable power saving mode
|
||||
- Switch channels to 80 MHz widt in monitor mode
|
||||
- Enable channel 14 and 80 MHz width in the regdom
|
||||
- Switch channel in monitor mode
|
||||
@ -22,8 +23,15 @@
|
||||
|
||||
+++ And propably alot more. We'll see.
|
||||
|
||||
[2018.06.25]
|
||||
- Fix injected frames drop
|
||||
- Fixed compilation on some ARM platforms
|
||||
- Added support for PPC platform
|
||||
- Minor cleanups
|
||||
|
||||
|
||||
[2018.06.23]
|
||||
- Added more VID/PID's + moved 1 to correct place
|
||||
- Moved changelogs into "docs/" folder
|
||||
|
||||
[2018.06.22]
|
||||
- Enabled monitor mode
|
||||
|
@ -1,4 +0,0 @@
|
||||
#DHCP client
|
||||
DEVICE=wlan0
|
||||
BOOTPROTO=dhcp
|
||||
ONBOOT=yes
|
@ -80,7 +80,7 @@
|
||||
#ifdef CONFIG_SINGLE_XMIT_BUF
|
||||
#define NR_XMIT_EXTBUFF (1)
|
||||
#else
|
||||
#define NR_XMIT_EXTBUFF (32)
|
||||
#define NR_XMIT_EXTBUFF (64)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RTL8812A
|
||||
|
@ -522,10 +522,9 @@ int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev)
|
||||
if (pkt) {
|
||||
if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) {
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
||||
rtw_monitor_xmit_entry((struct sk_buff *)pkt, pnetdev);
|
||||
ret = rtw_monitor_xmit_entry((struct sk_buff *)pkt, pnetdev);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, pkt->truesize);
|
||||
ret = _rtw_xmit_entry(pkt, pnetdev);
|
||||
}
|
||||
|
20
runwpa
20
runwpa
@ -1,20 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "`which iwconfig`" = "" ] ; then
|
||||
echo "WARNING:Wireless tool not exist!"
|
||||
echo " Please install it!"
|
||||
exit
|
||||
else
|
||||
if [ `uname -r | cut -d. -f2` -eq 4 ]; then
|
||||
wpa_supplicant -D ipw -c wpa1.conf -i wlan0
|
||||
else
|
||||
if [ `iwconfig -v |awk '{print $4}' | head -n 1` -lt 18 ] ; then
|
||||
wpa_supplicant -D ipw -c wpa1.conf -i wlan0
|
||||
else
|
||||
wpa_supplicant -D wext -c wpa1.conf -i wlan0
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
|
16
wlan0dhcp
16
wlan0dhcp
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
var0=`ps aux|awk '/dhclient wlan0/'|awk '$11!="awk"{print $2}'`
|
||||
|
||||
kill $var0
|
||||
cp ifcfg-wlan0 /etc/sysconfig/network-scripts/
|
||||
|
||||
dhclient wlan0
|
||||
|
||||
var1=`ifconfig wlan0 |awk '/inet/{print $2}'|awk -F: '{print $2}'`
|
||||
|
||||
|
||||
rm -f /etc/sysconfig/network-scripts/ifcfg-wlan0
|
||||
|
||||
echo "get ip: $var1"
|
||||
|
Loading…
Reference in New Issue
Block a user