mirror of
https://github.com/chinawrj/rtl8812au
synced 2024-09-19 20:50:52 +00:00
commit
33aeeca968
80
.travis.yml
Normal file
80
.travis.yml
Normal file
@ -0,0 +1,80 @@
|
||||
language: c
|
||||
compiler: gcc
|
||||
sudo: required
|
||||
|
||||
before_install:
|
||||
- export ALL_DEB=$(wget --quiet -O - ${KERNEL_URL}v${KVER}/ | grep -o 'href=".*"' | grep -m1 all | cut -d '"' -f 2)
|
||||
- export KVER_BUILD=$(echo $ALL_DEB | cut -d '_' -f 1 | cut -c15-)
|
||||
- wget ${KERNEL_URL}v${KVER}/$(wget --quiet -O - ${KERNEL_URL}v${KVER}/ | grep -o 'href=".*"' | grep headers | grep generic | grep -m1 amd64 | cut -d '"' -f 2)
|
||||
- wget ${KERNEL_URL}v${KVER}/$ALL_DEB
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y dpkg # to upgrade to dpkg >= 1.17.5ubuntu5.8, which fixes https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/1730627
|
||||
- sudo dpkg -i *.deb
|
||||
|
||||
script:
|
||||
- make CC=$COMPILER KVER=$KVER_BUILD-generic
|
||||
|
||||
env:
|
||||
global:
|
||||
- KERNEL_URL=http://kernel.ubuntu.com/~kernel-ppa/mainline/
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||
packages:
|
||||
- gcc-5
|
||||
- libelf-dev
|
||||
- libssl1.1
|
||||
env: COMPILER=gcc-5 KVER=4.20-rc1
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||
packages:
|
||||
- gcc-6
|
||||
- libelf-dev
|
||||
- libssl1.1
|
||||
env: COMPILER=gcc-6 KVER=4.19.1
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||
packages:
|
||||
- gcc-7
|
||||
- libelf-dev
|
||||
- libssl1.1
|
||||
env: COMPILER=gcc-7 KVER=4.19.1
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- gcc-5
|
||||
env: COMPILER=gcc-5 KVER=4.4.97
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- gcc-4.9
|
||||
env: COMPILER=gcc-4.9 KVER=3.16.50
|
||||
- compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- gcc-5
|
||||
env: COMPILER=gcc-5 KVER=3.14.79
|
||||
|
27
Makefile
27
Makefile
@ -7,6 +7,10 @@ EXTRA_CFLAGS += -Wextra
|
||||
#EXTRA_CFLAGS += -pedantic
|
||||
#EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
|
||||
|
||||
#EXTRA_CFLAGS += -Wno-tautological-compare
|
||||
#EXTRA_CFLAGS += -Wno-incompatible-pointer-types
|
||||
#EXTRA_CFLAGS += -Wno-switch
|
||||
EXTRA_CFLAGS += -Wno-cast-function-type
|
||||
EXTRA_CFLAGS += -Wno-unused-variable
|
||||
EXTRA_CFLAGS += -Wno-unused-value
|
||||
EXTRA_CFLAGS += -Wno-unused-label
|
||||
@ -108,6 +112,7 @@ CONFIG_PLATFORM_ARM_S3C6K4 = n
|
||||
CONFIG_PLATFORM_MIPS_RMI = n
|
||||
CONFIG_PLATFORM_RTD2880B = n
|
||||
CONFIG_PLATFORM_MIPS_AR9132 = n
|
||||
CONFIG_PLATFORM_OPENWRT_NEO2 = n
|
||||
CONFIG_PLATFORM_RTK_DMP = n
|
||||
CONFIG_PLATFORM_MIPS_PLM = n
|
||||
CONFIG_PLATFORM_MSTAR389 = n
|
||||
@ -809,6 +814,16 @@ KVER:= 3.1.10
|
||||
KSRC:= /usr/src/Mstar_kernel/3.1.10/
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_ANDROID_ARM64), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -fno-pic
|
||||
|
||||
EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC -DCONFIG_RADIO_WORK
|
||||
#Enable this to have two interfaces:
|
||||
#EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
|
||||
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||
EXTRA_CFLAGS += -DCONFIG_P2P_IPS
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_ANDROID_X86), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
|
||||
@ -913,6 +928,16 @@ CROSS_COMPILE := aarch64-openwrt-linux-
|
||||
KSRC := /home/greearb/git/openwrt-neo2-dev/build_dir/target-aarch64_cortex-a53_musl/linux-sunxi_cortexa53/linux-4.14.78
|
||||
endif
|
||||
|
||||
# This is how I built for openwrt Neo2 platform. --Ben
|
||||
ifeq ($(CONFIG_PLATFORM_OPENWRT_NEO2), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||
ARCH := arm64
|
||||
CROSS_COMPILE := aarch64-openwrt-linux-
|
||||
#export PATH=$PATH:/home/greearb/git/openwrt-neo2-dev/staging_dir/toolchain-aarch64_cortex-a53_gcc-7.3.0_musl/bin/
|
||||
#export STAGING_DIR=/home/greearb/git/openwrt-neo2-dev/staging_dir
|
||||
KSRC := /home/greearb/git/openwrt-neo2-dev/build_dir/target-aarch64_cortex-a53_musl/linux-sunxi_cortexa53/linux-4.14.78
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PLATFORM_DMP_PHILIPS), y)
|
||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM
|
||||
ARCH := mips
|
||||
@ -1659,7 +1684,7 @@ export CONFIG_RTL8821AU = m
|
||||
all: modules
|
||||
|
||||
modules:
|
||||
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules
|
||||
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) O="$(KBUILD_OUTPUT)" modules
|
||||
|
||||
strip:
|
||||
$(CROSS_COMPILE)strip $(MODULE_NAME).ko --strip-unneeded
|
||||
|
@ -174,7 +174,7 @@ void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *d
|
||||
u8 bmatch = _FALSE;
|
||||
u8 *pie = pnetwork->IEs;
|
||||
u8 *p = NULL, *dst_ie = NULL, *premainder_ie = NULL, *pbackup_remainder_ie = NULL;
|
||||
u32 i, offset, ielen, ie_offset, remainder_ielen = 0;
|
||||
u32 i, offset, ielen = 0, ie_offset, remainder_ielen = 0;
|
||||
|
||||
for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pnetwork->IELength;) {
|
||||
pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i);
|
||||
@ -4740,10 +4740,10 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct
|
||||
sta->wpa2_pairwise_cipher = pairwise_cipher & sec->wpa2_pairwise_cipher;
|
||||
|
||||
if (!sta->wpa2_group_cipher)
|
||||
status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
|
||||
status = WLAN_STATUS_INVALID_GROUP_CIPHER;
|
||||
|
||||
if (!sta->wpa2_pairwise_cipher)
|
||||
status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
|
||||
status = WLAN_STATUS_INVALID_PAIRWISE_CIPHER;
|
||||
} else
|
||||
status = WLAN_STATUS_INVALID_IE;
|
||||
|
||||
@ -4760,10 +4760,10 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct
|
||||
sta->wpa_pairwise_cipher = pairwise_cipher & sec->wpa_pairwise_cipher;
|
||||
|
||||
if (!sta->wpa_group_cipher)
|
||||
status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
|
||||
status = WLAN_STATUS_INVALID_GROUP_CIPHER;
|
||||
|
||||
if (!sta->wpa_pairwise_cipher)
|
||||
status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
|
||||
status = WLAN_STATUS_INVALID_PAIRWISE_CIPHER;
|
||||
} else
|
||||
status = WLAN_STATUS_INVALID_IE;
|
||||
|
||||
|
@ -1287,7 +1287,7 @@ ParseRes rtw_ieee802_11_parse_elems(u8 *start, uint len,
|
||||
elems->timeout_int = pos;
|
||||
elems->timeout_int_len = elen;
|
||||
break;
|
||||
case WLAN_EID_HT_CAP:
|
||||
case WLAN_EID_HT_CAPABILITY:
|
||||
elems->ht_capabilities = pos;
|
||||
elems->ht_capabilities_len = elen;
|
||||
break;
|
||||
@ -1303,7 +1303,7 @@ ParseRes rtw_ieee802_11_parse_elems(u8 *start, uint len,
|
||||
elems->vht_operation = pos;
|
||||
elems->vht_operation_len = elen;
|
||||
break;
|
||||
case WLAN_EID_VHT_OP_MODE_NOTIFY:
|
||||
case WLAN_EID_OPMODE_NOTIF:
|
||||
elems->vht_op_mode_notify = pos;
|
||||
elems->vht_op_mode_notify_len = elen;
|
||||
break;
|
||||
@ -1550,7 +1550,7 @@ void dump_ht_cap_ie(void *sel, const u8 *ie, u32 ie_len)
|
||||
const u8 *ht_cap_ie;
|
||||
sint ht_cap_ielen;
|
||||
|
||||
ht_cap_ie = rtw_get_ie(ie, WLAN_EID_HT_CAP, &ht_cap_ielen, ie_len);
|
||||
ht_cap_ie = rtw_get_ie(ie, WLAN_EID_HT_CAPABILITY, &ht_cap_ielen, ie_len);
|
||||
if (!ie || ht_cap_ie != ie)
|
||||
return;
|
||||
|
||||
|
@ -4152,7 +4152,8 @@ void issue_p2p_GO_request(_adapter *padapter, u8 *raddr)
|
||||
u8 action = P2P_PUB_ACTION_ACTION;
|
||||
u32 p2poui = cpu_to_be32(P2POUI);
|
||||
u8 oui_subtype = P2P_GO_NEGO_REQ;
|
||||
u8 wpsie[255] = { 0x00 }, p2pie[255] = { 0x00 };
|
||||
u8 *wpsie;
|
||||
u8 p2pie[ 255 ] = { 0x00 };
|
||||
u8 wpsielen = 0, p2pielen = 0, i;
|
||||
u8 channel_cnt_24g = 0, channel_cnt_5gl = 0, channel_cnt_5gh = 0;
|
||||
u16 len_channellist_attr = 0;
|
||||
@ -4550,7 +4551,8 @@ void issue_p2p_GO_response(_adapter *padapter, u8 *raddr, u8 *frame_body, uint l
|
||||
u8 action = P2P_PUB_ACTION_ACTION;
|
||||
u32 p2poui = cpu_to_be32(P2POUI);
|
||||
u8 oui_subtype = P2P_GO_NEGO_RESP;
|
||||
u8 wpsie[255] = { 0x00 }, p2pie[255] = { 0x00 };
|
||||
u8 *wpsie;
|
||||
u8 p2pie[ 255 ] = { 0x00 };
|
||||
u8 p2pielen = 0, i;
|
||||
uint wpsielen = 0;
|
||||
u16 wps_devicepassword_id = 0x0000;
|
||||
@ -4576,6 +4578,8 @@ void issue_p2p_GO_response(_adapter *padapter, u8 *raddr, u8 *frame_body, uint l
|
||||
if (pmgntframe == NULL)
|
||||
return;
|
||||
|
||||
wpsie = rtw_zmalloc(256);
|
||||
|
||||
RTW_INFO("[%s] In, result = %d\n", __FUNCTION__, result);
|
||||
/* update attribute */
|
||||
pattrib = &pmgntframe->attrib;
|
||||
@ -4958,6 +4962,8 @@ void issue_p2p_GO_response(_adapter *padapter, u8 *raddr, u8 *frame_body, uint l
|
||||
|
||||
dump_mgntframe(padapter, pmgntframe);
|
||||
|
||||
kfree(wpsie);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
@ -8994,12 +9000,12 @@ void issue_auth(_adapter *padapter, struct sta_info *psta, unsigned short status
|
||||
/* setting auth algo number */
|
||||
val16 = (u16)psta->authalg;
|
||||
|
||||
if (status != _STATS_SUCCESSFUL_)
|
||||
val16 = 0;
|
||||
|
||||
if (val16) {
|
||||
val16 = cpu_to_le16(val16);
|
||||
use_shared_key = 1;
|
||||
|
||||
} else {
|
||||
val16 = 0;
|
||||
}
|
||||
|
||||
pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&val16, &(pattrib->pktlen));
|
||||
|
@ -512,9 +512,7 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, const u8 *hwaddr)
|
||||
|
||||
/* _enter_critical_bh(&(pfree_sta_queue->lock), &irqL); */
|
||||
_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
|
||||
if (_rtw_queue_empty(pfree_sta_queue) == _TRUE) {
|
||||
/* _exit_critical_bh(&(pfree_sta_queue->lock), &irqL); */
|
||||
_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
|
||||
if (!pstapriv->padapter->pnetdev || _rtw_queue_empty(pfree_sta_queue) == _TRUE) {
|
||||
psta = NULL;
|
||||
} else {
|
||||
psta = LIST_CONTAINOR(get_next(&pfree_sta_queue->queue), struct sta_info, list);
|
||||
@ -800,6 +798,11 @@ u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta)
|
||||
|
||||
#ifdef CONFIG_NATIVEAP_MLME
|
||||
|
||||
if (psta->cmn.aid > 31) {
|
||||
pr_err("***** psta->aid (%d) out of bounds\n", psta->cmn.aid);
|
||||
return _FAIL;
|
||||
}
|
||||
|
||||
if (pmlmeinfo->state == _HW_STATE_AP_) {
|
||||
rtw_tim_map_clear(padapter, pstapriv->sta_dz_bitmap, psta->cmn.aid);
|
||||
rtw_tim_map_clear(padapter, pstapriv->tim_bitmap, psta->cmn.aid);
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#include <drv_types.h>
|
||||
#include <hal_data.h>
|
||||
#include <net/cfg80211.h>
|
||||
|
||||
#if defined(PLATFORM_LINUX) && defined (PLATFORM_WINDOWS)
|
||||
#error "Shall be Linux or Windows, but not both!\n"
|
||||
|
@ -20,4 +20,15 @@ RESULT=$?
|
||||
|
||||
echo "Finished running dkms install steps."
|
||||
|
||||
|
||||
if echo "net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf; then
|
||||
echo "Disabled IPv6 Successfuly "
|
||||
sysctl -p
|
||||
else
|
||||
echo "Could not disable IPv6"
|
||||
fi
|
||||
|
||||
|
||||
exit $RESULT
|
||||
|
@ -1,5 +1,5 @@
|
||||
PACKAGE_NAME="realtek-rtl88xxau"
|
||||
PACKAGE_VERSION="5.3.4~20190216"
|
||||
PACKAGE_VERSION="5.3.4~20190406"
|
||||
CLEAN="'make' clean"
|
||||
BUILT_MODULE_NAME[0]=88XXau
|
||||
PROCS_NUM=`nproc`
|
||||
|
@ -11155,13 +11155,12 @@ exit:
|
||||
|
||||
void rtw_dump_cur_efuse(PADAPTER padapter)
|
||||
{
|
||||
int i =0;
|
||||
int mapsize =0;
|
||||
u16 mapsize =0;
|
||||
HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter);
|
||||
|
||||
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN , (void *)&mapsize, _FALSE);
|
||||
|
||||
if (mapsize <= 0 || mapsize > EEPROM_MAX_SIZE) {
|
||||
if (mapsize > EEPROM_MAX_SIZE) {
|
||||
RTW_ERR("wrong map size %d\n", mapsize);
|
||||
return;
|
||||
}
|
||||
@ -11180,14 +11179,14 @@ u32 Hal_readPGDataFromConfigFile(PADAPTER padapter)
|
||||
{
|
||||
HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter);
|
||||
u32 ret = _FALSE;
|
||||
u32 maplen = 0;
|
||||
u16 maplen = 0;
|
||||
|
||||
EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN , (void *)&maplen, _FALSE);
|
||||
|
||||
if (maplen < 256 || maplen > EEPROM_MAX_SIZE) {
|
||||
RTW_ERR("eFuse length error :%d\n", maplen);
|
||||
return _FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
ret = rtw_read_efuse_from_file(EFUSE_MAP_PATH, hal_data->efuse_eeprom_data, maplen);
|
||||
|
||||
|
@ -31,8 +31,6 @@
|
||||
#include "phydm_precomp.h"
|
||||
|
||||
#define READ_AND_CONFIG_MP(ic, txt) (odm_read_and_config_mp_##ic##txt(dm))
|
||||
#define READ_AND_CONFIG_TC(ic, txt) (odm_read_and_config_tc_##ic##txt(dm))
|
||||
|
||||
|
||||
#define READ_AND_CONFIG READ_AND_CONFIG_MP
|
||||
|
||||
|
@ -101,10 +101,9 @@ typedef struct _ADAPTER _adapter, ADAPTER, *PADAPTER;
|
||||
#include <rtw_ioctl.h>
|
||||
#include <rtw_ioctl_set.h>
|
||||
#include <rtw_ioctl_query.h>
|
||||
#include <rtw_ioctl_rtl.h>
|
||||
#include <osdep_intf.h>
|
||||
#include <rtw_eeprom.h>
|
||||
#include <sta_info.h>
|
||||
#include "sta_info.h"
|
||||
#include <rtw_event.h>
|
||||
#include <rtw_mlme_ext.h>
|
||||
#include <rtw_mi.h>
|
||||
|
@ -15,6 +15,9 @@
|
||||
#ifndef __IEEE80211_H
|
||||
#define __IEEE80211_H
|
||||
|
||||
#if defined(PLATFORM_LINUX) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
|
||||
#include <linux/ieee80211.h>
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_RTL8711FW
|
||||
|
||||
@ -627,6 +630,7 @@ struct ieee80211_snap_hdr {
|
||||
#define WLAN_CAPABILITY_SHORT_SLOT (1<<10)
|
||||
|
||||
/* Status codes */
|
||||
#if !defined(PLATFORM_LINUX) || LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)
|
||||
#define WLAN_STATUS_SUCCESS 0
|
||||
#define WLAN_STATUS_UNSPECIFIED_FAILURE 1
|
||||
#define WLAN_STATUS_CAPS_UNSUPPORTED 10
|
||||
@ -653,11 +657,12 @@ struct ieee80211_snap_hdr {
|
||||
#define WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA 7
|
||||
#define WLAN_REASON_DISASSOC_STA_HAS_LEFT 8
|
||||
#define WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH 9
|
||||
#endif
|
||||
#define WLAN_REASON_MESH_PEER_CANCELED 52
|
||||
#define WLAN_REASON_MESH_MAX_PEERS 53
|
||||
#define WLAN_REASON_MESH_CONFIG 54
|
||||
#define WLAN_REASON_MESH_CLOSE 55
|
||||
#define WLAN_REASON_MESH_MAX_RETRIES 56
|
||||
#define WLAN_REASON_MESH_MAX_RETRIES 56
|
||||
#define WLAN_REASON_MESH_CONFIRM_TIMEOUT 57
|
||||
#define WLAN_REASON_MESH_INVALID_GTK 58
|
||||
#define WLAN_REASON_MESH_INCONSISTENT_PARAM 59
|
||||
@ -681,6 +686,7 @@ struct ieee80211_snap_hdr {
|
||||
)
|
||||
|
||||
/* Information Element IDs */
|
||||
#if !defined(PLATFORM_LINUX) || LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)
|
||||
#define WLAN_EID_SSID 0
|
||||
#define WLAN_EID_SUPP_RATES 1
|
||||
#define WLAN_EID_FH_PARAMS 2
|
||||
@ -702,7 +708,7 @@ struct ieee80211_snap_hdr {
|
||||
#define WLAN_EID_IBSS_DFS 41
|
||||
/* EIDs defined by IEEE 802.11h - END */
|
||||
#define WLAN_EID_ERP_INFO 42
|
||||
#define WLAN_EID_HT_CAP 45
|
||||
#define WLAN_EID_HT_CAPABILITY 45
|
||||
#define WLAN_EID_RSN 48
|
||||
#define WLAN_EID_EXT_SUPP_RATES 50
|
||||
#define WLAN_EID_MOBILITY_DOMAIN 54
|
||||
@ -725,10 +731,11 @@ struct ieee80211_snap_hdr {
|
||||
#define WLAN_EID_AMPE 139
|
||||
#define WLAN_EID_MIC 140
|
||||
#define WLAN_EID_VENDOR_SPECIFIC 221
|
||||
#define WLAN_EID_GENERIC (WLAN_EID_VENDOR_SPECIFIC)
|
||||
#define WLAN_EID_VHT_CAPABILITY 191
|
||||
#define WLAN_EID_VHT_OPERATION 192
|
||||
#define WLAN_EID_VHT_OP_MODE_NOTIFY 199
|
||||
#define WLAN_EID_OPMODE_NOTIF 199
|
||||
#endif
|
||||
#define WLAN_EID_GENERIC (WLAN_EID_VENDOR_SPECIFIC)
|
||||
|
||||
#define IEEE80211_MGMT_HDR_LEN 24
|
||||
#define IEEE80211_DATA_HDR3_LEN 24
|
||||
|
@ -15,6 +15,10 @@
|
||||
#ifndef __OSDEP_SERVICE_H_
|
||||
#define __OSDEP_SERVICE_H_
|
||||
|
||||
#include <linux/version.h>
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
||||
#include <linux/sched/signal.h>
|
||||
#endif
|
||||
|
||||
#define _FAIL 0
|
||||
#define _SUCCESS 1
|
||||
|
@ -209,6 +209,7 @@ enum WIFI_STATUS_CODE {
|
||||
#define WLAN_STATUS_ASSOC_DENIED_RATES 18
|
||||
#endif
|
||||
/* entended */
|
||||
#if !defined(PLATFORM_LINUX) || LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)
|
||||
/* IEEE 802.11b */
|
||||
#define WLAN_STATUS_ASSOC_DENIED_NOSHORT 19
|
||||
#define WLAN_STATUS_ASSOC_DENIED_NOPBCC 20
|
||||
@ -226,16 +227,17 @@ enum WIFI_STATUS_CODE {
|
||||
#define WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION 31
|
||||
/* IEEE 802.11i */
|
||||
#define WLAN_STATUS_INVALID_IE 40
|
||||
#define WLAN_STATUS_GROUP_CIPHER_NOT_VALID 41
|
||||
#define WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID 42
|
||||
#define WLAN_STATUS_AKMP_NOT_VALID 43
|
||||
#define WLAN_STATUS_UNSUPPORTED_RSN_IE_VERSION 44
|
||||
#define WLAN_STATUS_INVALID_RSN_IE_CAPAB 45
|
||||
#define WLAN_STATUS_CIPHER_REJECTED_PER_POLICY 46
|
||||
#define WLAN_STATUS_TS_NOT_CREATED 47
|
||||
#define WLAN_STATUS_DIRECT_LINK_NOT_ALLOWED 48
|
||||
#define WLAN_STATUS_DEST_STA_NOT_PRESENT 49
|
||||
#define WLAN_STATUS_DEST_STA_NOT_QOS_STA 50
|
||||
#define WLAN_STATUS_INVALID_GROUP_CIPHER 41
|
||||
#define WLAN_STATUS_INVALID_PAIRWISE_CIPHER 42
|
||||
#define WLAN_STATUS_INVALID_AKMP 43
|
||||
#define WLAN_STATUS_UNSUPP_RSN_VERSION 44
|
||||
#define WLAN_STATUS_INVALID_RSN_IE_CAP 45
|
||||
#define WLAN_STATUS_CIPHER_SUITE_REJECTED 46
|
||||
#define WLAN_STATUS_WAIT_TS_DELAY 47
|
||||
#define WLAN_STATUS_NO_DIRECT_LINK 48
|
||||
#define WLAN_STATUS_STA_NOT_PRESENT 49
|
||||
#define WLAN_STATUS_STA_NOT_QSTA 50
|
||||
#endif
|
||||
#define WLAN_STATUS_ASSOC_DENIED_LISTEN_INT_TOO_LARGE 51
|
||||
/* IEEE 802.11r */
|
||||
#define WLAN_STATUS_INVALID_FT_ACTION_FRAME_COUNT 52
|
||||
@ -243,7 +245,6 @@ enum WIFI_STATUS_CODE {
|
||||
#define WLAN_STATUS_INVALID_MDIE 54
|
||||
#define WLAN_STATUS_INVALID_FTIE 55
|
||||
|
||||
|
||||
enum WIFI_REG_DOMAIN {
|
||||
DOMAIN_FCC = 1,
|
||||
DOMAIN_IC = 2,
|
||||
|
@ -4638,7 +4638,11 @@ static int cfg80211_rtw_del_virtual_intf(struct wiphy *wiphy,
|
||||
pwdev_priv = adapter_wdev_data(adapter);
|
||||
|
||||
if (ndev == pwdev_priv->pmon_ndev) {
|
||||
unregister_netdevice(ndev);
|
||||
/* unregister only monitor device
|
||||
* because only monitor can be added
|
||||
*/
|
||||
if(wdev->iftype == NL80211_IFTYPE_MONITOR)
|
||||
unregister_netdevice(ndev);
|
||||
pwdev_priv->pmon_ndev = NULL;
|
||||
pwdev_priv->ifname_mon[0] = '\0';
|
||||
RTW_INFO(FUNC_NDEV_FMT" remove monitor ndev\n", FUNC_NDEV_ARG(ndev));
|
||||
@ -4823,6 +4827,18 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
|
||||
ret = rtw_add_beacon(adapter, settings->beacon.head, settings->beacon.head_len,
|
||||
settings->beacon.tail, settings->beacon.tail_len);
|
||||
|
||||
// In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
||||
if(ret == 0) {
|
||||
if(settings->beacon.proberesp_ies && settings->beacon.proberesp_ies_len > 0) {
|
||||
rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)settings->beacon.proberesp_ies,
|
||||
settings->beacon.proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
||||
}
|
||||
if(settings->beacon.assocresp_ies && settings->beacon.assocresp_ies_len < 0) {
|
||||
rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)settings->beacon.assocresp_ies,
|
||||
settings->beacon.assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
||||
}
|
||||
}
|
||||
|
||||
adapter->mlmeextpriv.mlmext_info.hidden_ssid_mode = settings->hidden_ssid;
|
||||
|
||||
if (settings->ssid && settings->ssid_len) {
|
||||
@ -4859,6 +4875,18 @@ static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *nd
|
||||
|
||||
ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
|
||||
|
||||
// In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
||||
if(ret == 0) {
|
||||
if(info->proberesp_ies && info->proberesp_ies_len > 0) {
|
||||
rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->proberesp_ies,
|
||||
info->proberesp_ies_len, 0x2/*PROBE_RESP*/);
|
||||
}
|
||||
if(info->assocresp_ies && info->assocresp_ies_len > 0) {
|
||||
rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *)info->assocresp_ies,
|
||||
info->assocresp_ies_len, 0x4/*ASSOC_RESP*/);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -5242,15 +5270,7 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev,
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
||||
u8 *mac
|
||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0))
|
||||
const u8 *mac
|
||||
#else
|
||||
struct station_del_parameters *params
|
||||
#endif
|
||||
)
|
||||
static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev, struct station_del_parameters *params)
|
||||
{
|
||||
int ret = 0;
|
||||
_irqL irqL;
|
||||
@ -5262,11 +5282,7 @@ static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0))
|
||||
target_mac = mac;
|
||||
#else
|
||||
target_mac = params->mac;
|
||||
#endif
|
||||
|
||||
RTW_INFO("+"FUNC_NDEV_FMT" mac=%pM\n", FUNC_NDEV_ARG(ndev), target_mac);
|
||||
|
||||
|
@ -354,12 +354,7 @@ void rtw_cfg80211_deinit_rfkill(struct wiphy *wiphy);
|
||||
#endif
|
||||
|
||||
#define rtw_cfg80211_connect_result(wdev, bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp) cfg80211_connect_result(wdev_to_ndev(wdev), bssid, req_ie, req_ie_len, resp_ie, resp_ie_len, status, gfp)
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0))
|
||||
#define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, gfp)
|
||||
#else
|
||||
#define rtw_cfg80211_disconnected(wdev, reason, ie, ie_len, locally_generated, gfp) cfg80211_disconnected(wdev_to_ndev(wdev), reason, ie, ie_len, locally_generated, gfp)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RTW_80211R
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
|
||||
|
@ -1069,7 +1069,7 @@ void *wifi_get_country_code(char *ccode)
|
||||
if (!ccode)
|
||||
return NULL;
|
||||
if (wifi_control_data && wifi_control_data->get_country_code)
|
||||
return wifi_control_data->get_country_code(ccode);
|
||||
return wifi_control_data->get_country_code(ccode, 0);
|
||||
return NULL;
|
||||
}
|
||||
#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)) */
|
||||
|
@ -45,11 +45,7 @@ struct sk_buff *dbg_rtw_cfg80211_vendor_event_alloc(struct wiphy *wiphy, struct
|
||||
struct sk_buff *skb;
|
||||
unsigned int truesize = 0;
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
|
||||
skb = cfg80211_vendor_event_alloc(wiphy, len, event_id, gfp);
|
||||
#else
|
||||
skb = cfg80211_vendor_event_alloc(wiphy, wdev, len, event_id, gfp);
|
||||
#endif
|
||||
|
||||
if (skb)
|
||||
truesize = skb->truesize;
|
||||
@ -144,11 +140,8 @@ struct sk_buff *rtw_cfg80211_vendor_event_alloc(
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
|
||||
skb = cfg80211_vendor_event_alloc(wiphy, len, event_id, gfp);
|
||||
#else
|
||||
skb = cfg80211_vendor_event_alloc(wiphy, wdev, len, event_id, gfp);
|
||||
#endif
|
||||
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user