summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorArpan Kapoor2020-08-16 19:42:36 +0530
committerArpan Kapoor2020-08-16 19:45:47 +0530
commitd4c2f49ebb1840581d9e4323f13eefc82cc687ba (patch)
tree3c88b203f5a6e6c62cb77b8349dbf11fdcf3e1b1
parent1f6c87a7d3acefddd19e40b04df3358fb2fc01e5 (diff)
downloadaur-hostapd-rtl871xdrv.tar.gz
similar to community build
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD89
-rw-r--r--config322
-rw-r--r--hostapd-noscan.patch76
-rw-r--r--openvswitch.patch137
5 files changed, 364 insertions, 281 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 79f07b73fde2..538ddf3856fd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = hostapd-rtl871xdrv
pkgdesc = IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
pkgver = 2.9
- pkgrel = 1
+ pkgrel = 2
url = http://w1.fi/hostapd/
arch = i686
arch = x86_64
@@ -9,23 +9,30 @@ pkgbase = hostapd-rtl871xdrv
arch = armv6h
arch = armv7h
arch = aarch64
- license = GPL
+ license = BSD
makedepends = git
- depends = openssl
+ depends = glibc
depends = libnl
+ depends = openssl
+ depends = sqlite
provides = hostapd
options = emptydirs
+ backup = etc/hostapd/hostapd.accept
+ backup = etc/hostapd/hostapd.conf
+ backup = etc/hostapd/hostapd.deny
+ backup = etc/hostapd/hostapd.eap_user
+ backup = etc/hostapd/hostapd.radius_clients
+ backup = etc/hostapd/hostapd.vlan
+ backup = etc/hostapd/hostapd.wpa_psk
source = https://w1.fi/releases/hostapd-2.9.tar.gz
source = git+https://github.com/pritambaral/hostapd-rtl871xdrv.git
source = config
source = hostapd.service
- source = hostapd-noscan.patch
- source = openvswitch.patch
+ validpgpkeys = EC4AA0A991A5F2464582D52D2B6EF432EFC895FA
sha256sums = 881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7
sha256sums = SKIP
- sha256sums = a39e011bf0c3f2d21db8816a7e608a99b9d598c7b559d58d026f10e4359d428d
+ sha256sums = 87445203a518864e704b85fa970d90940e9a5d9b401ceb802d11caab6c07a495
sha256sums = 989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e
- sha256sums = c15b4310f21b41254e4d4485bc04e36926572f213e7c4d3a17038fdff19529b5
pkgname = hostapd-rtl871xdrv
diff --git a/PKGBUILD b/PKGBUILD
index 70eca0d3525a..f6a803684f92 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,38 +3,43 @@
_pkgname=hostapd
pkgname="${_pkgname}-rtl871xdrv"
pkgver=2.9
-pkgrel=1
+pkgrel=2
pkgdesc='IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
url='http://w1.fi/hostapd/'
-license=('GPL')
-depends=('openssl' 'libnl')
+license=('BSD')
+depends=('glibc' 'libnl' 'openssl' 'sqlite')
+backup=("etc/${_pkgname}/${_pkgname}."{accept,conf,deny,eap_user,radius_clients,vlan,wpa_psk})
makedepends=('git')
provides=("${_pkgname}")
options=(emptydirs)
-source=(https://w1.fi/releases/"${_pkgname}-${pkgver}".tar.gz
+source=("https://w1.fi/releases/${_pkgname}-${pkgver}.tar.gz"
git+https://github.com/pritambaral/hostapd-rtl871xdrv.git
config
- hostapd.service
- hostapd-noscan.patch
- openvswitch.patch)
+ hostapd.service)
sha256sums=('881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7'
'SKIP'
- 'SKIP'
- '989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e'
- '5ad1aadcd7682e517cab6afb474df6b9abad1a08dbe2bb40571a1b91c33f6f09'
- '64c06b5f6f58923446fd9351c596c759dec130997677f8b9f013c8ce360fbd98')
+ '87445203a518864e704b85fa970d90940e9a5d9b401ceb802d11caab6c07a495'
+ '989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e')
+validpgpkeys=('EC4AA0A991A5F2464582D52D2B6EF432EFC895FA') # Jouni Malinen
prepare() {
cd "${_pkgname}-${pkgver}"
- local i; for i in "${source[@]}"; do
- case $i in
- *.patch)
- msg2 "Applying patch ${i}"
- patch -p1 -i "${srcdir}/${i}"
- ;;
- esac
- done
+ # fix include locations in main configuration file
+ sed -e 's|/etc/hostapd|/etc/hostapd/hostapd|g' \
+ -e 's|/var/run|/run|g' \
+ -e 's|radius_attr.sqlite|/var/lib/hostapd/radius_attr.sqlite|g' \
+ -e 's|hostapd.cred|/var/lib/hostapd/hostapd.cred|g' \
+ -e 's|hostapd.ap_settings|/var/lib/hostapd/hostapd.ap_settings|g' \
+ -e 's|hostapd_wps_pin_requests|hostapd/wps_pin_requests|g' \
+ -i "${_pkgname}/${_pkgname}.conf"
+ # extract license
+ cat "${_pkgname}/README" |head -n47 |tail -n5 > LICENSE
+ # link build configuration into place:
+ # an up-to-date version of the build configuration can be found in
+ # hostapd/defconfig and should be diffed with the packaged one before every
+ # build
+ ln -sv "${srcdir}/config" "${_pkgname}/.config"
# Realtek patch
patch -Np1 -i "${srcdir}/hostapd-rtl871xdrv/rtlxdrv.patch"
@@ -45,35 +50,29 @@ prepare() {
build() {
cd "${_pkgname}-${pkgver}/hostapd"
- cp ../../config .config
- sed -i 's#/etc/hostapd#/etc/hostapd/hostapd#' hostapd.conf
- export CFLAGS="$CFLAGS $(pkg-config --cflags libnl-3.0)"
make
}
package() {
- # Systemd unit
- install -Dm644 hostapd.service "${pkgdir}/usr/lib/systemd/system/hostapd.service"
-
cd "${_pkgname}-${pkgver}"
-
- # License
- install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${_pkgname}/COPYING"
-
- cd hostapd
-
- # Binaries
- install -d "${pkgdir}/usr/bin"
- install -t "${pkgdir}/usr/bin" hostapd hostapd_cli
-
- # Configuration
- install -d "${pkgdir}/etc/hostapd"
- install -d "${pkgdir}/usr/share/doc/hostapd"
- install -m644 -t "${pkgdir}/usr/share/doc/hostapd" \
- hostapd.{accept,conf,deny,eap_user,radius_clients,sim_db,vlan,wpa_psk} \
- wired.conf hlr_auc_gw.milenage_db
-
- # Man pages
- install -Dm644 hostapd.8 "${pkgdir}/usr/share/man/man8/hostapd.8"
- install -Dm644 hostapd_cli.1 "${pkgdir}/usr/share/man/man1/hostapd_cli.1"
+ make -C "${_pkgname}" install DESTDIR="${pkgdir}" BINDIR="/usr/bin"
+ # systemd service
+ install -vDm 644 "../${_pkgname}.service" \
+ -t "$pkgdir/usr/lib/systemd/system/"
+ # license
+ install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/${_pkgname}/"
+ # config
+ install -d "$pkgdir/etc/hostapd"
+ install -vDm 640 "${_pkgname}/${_pkgname}."{accept,conf,deny,eap_user,radius_clients,vlan,wpa_psk} \
+ -t "${pkgdir}/etc/${_pkgname}"
+ # docs
+ install -vDm 644 "${_pkgname}/"{hostapd.sim_db,wired.conf,hlr_auc_gw.{txt,milenage_db}} \
+ "${_pkgname}/"{README*,ChangeLog} \
+ -t "${pkgdir}/usr/share/doc/${_pkgname}"
+ # man pages
+ install -vDm 644 "${_pkgname}/${_pkgname}.8" -t "$pkgdir/usr/share/man/man8/"
+ install -vDm 644 "${_pkgname}/${_pkgname}_cli.1" \
+ -t "$pkgdir/usr/share/man/man1/"
+ # state dir
+ install -vdm 750 "${pkgdir}/var/lib/${_pkgname}"
}
diff --git a/config b/config
index cd338643e753..08005f26b488 100644
--- a/config
+++ b/config
@@ -15,8 +15,34 @@ CONFIG_DRIVER_HOSTAP=y
# Driver interface for wired authenticator
CONFIG_DRIVER_WIRED=y
-# Driver interface for Prism54 driver
-CONFIG_DRIVER_PRISM54=y
+# Driver interface for drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+
+# QCA vendor extensions to nl80211
+#CONFIG_DRIVER_NL80211_QCA=y
+
+# driver_nl80211.c requires libnl. If you are compiling it yourself
+# you may need to point hostapd to your version of libnl.
+#
+#CFLAGS += -I$<path to libnl include files>
+#LIBS += -L$<path to libnl library files>
+
+# Use libnl v2.0 (or 3.0) libraries.
+#CONFIG_LIBNL20=y
+
+# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)
+CONFIG_LIBNL32=y
+
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+#CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+#LIBS += -L/usr/local/lib
+#LIBS_p += -L/usr/local/lib
+#LIBS_c += -L/usr/local/lib
+
+# Driver interface for no driver (e.g., RADIUS server only)
+#CONFIG_DRIVER_NONE=y
# IEEE 802.11F/IAPP
CONFIG_IAPP=y
@@ -24,18 +50,18 @@ CONFIG_IAPP=y
# WPA2/IEEE 802.11i RSN pre-authentication
CONFIG_RSN_PREAUTH=y
-# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)
-CONFIG_PEERKEY=y
-
# IEEE 802.11w (management frame protection)
-# This version is an experimental implementation based on IEEE 802.11w/D1.0
-# draft and is subject to change since the standard has not yet been finalized.
-# Driver support is also needed for IEEE 802.11w.
CONFIG_IEEE80211W=y
+# Support Operating Channel Validation
+#CONFIG_OCV=y
+
# Integrated EAP server
CONFIG_EAP=y
+# EAP Re-authentication Protocol (ERP) in integrated EAP server
+CONFIG_ERP=y
+
# EAP-MD5 for the integrated EAP server
CONFIG_EAP_MD5=y
@@ -60,12 +86,19 @@ CONFIG_EAP_SIM=y
# EAP-AKA for the integrated EAP server
CONFIG_EAP_AKA=y
+# EAP-AKA' for the integrated EAP server
+# This requires CONFIG_EAP_AKA to be enabled, too.
+#CONFIG_EAP_AKA_PRIME=y
+
# EAP-PAX for the integrated EAP server
CONFIG_EAP_PAX=y
# EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK)
CONFIG_EAP_PSK=y
+# EAP-pwd for the integrated EAP server (secure authentication with a password)
+#CONFIG_EAP_PWD=y
+
# EAP-SAKE for the integrated EAP server
CONFIG_EAP_SAKE=y
@@ -74,6 +107,35 @@ CONFIG_EAP_GPSK=y
# Include support for optional SHA256 cipher suite in EAP-GPSK
CONFIG_EAP_GPSK_SHA256=y
+# EAP-FAST for the integrated EAP server
+#CONFIG_EAP_FAST=y
+
+# EAP-TEAP for the integrated EAP server
+# Note: The current EAP-TEAP implementation is experimental and should not be
+# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number
+# of conflicting statements and missing details and the implementation has
+# vendor specific workarounds for those and as such, may not interoperate with
+# any other implementation. This should not be used for anything else than
+# experimentation and interoperability testing until those issues has been
+# resolved.
+#CONFIG_EAP_TEAP=y
+
+# Wi-Fi Protected Setup (WPS)
+CONFIG_WPS=y
+# Enable UPnP support for external WPS Registrars
+CONFIG_WPS_UPNP=y
+# Enable WPS support with NFC config method
+CONFIG_WPS_NFC=y
+
+# EAP-IKEv2
+#CONFIG_EAP_IKEV2=y
+
+# Trusted Network Connect (EAP-TNC)
+#CONFIG_EAP_TNC=y
+
+# EAP-EKE for the integrated EAP server
+#CONFIG_EAP_EKE=y
+
# PKCS#12 (PFX) support (used to read private key and certificate file from
# a file that usually has extension .p12 or .pfx)
CONFIG_PKCS12=y
@@ -85,22 +147,250 @@ CONFIG_RADIUS_SERVER=y
# Build IPv6 support for RADIUS operations
CONFIG_IPV6=y
-CONFIG_DRIVER_NL80211=y
+# IEEE Std 802.11r-2008 (Fast BSS Transition)
+CONFIG_IEEE80211R=y
+
+# Use the hostapd's IEEE 802.11 authentication (ACL), but without
+# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)
+#CONFIG_DRIVER_RADIUS_ACL=y
+# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y
-CONFIG_LIBNL32=y
+# Wireless Network Management (IEEE Std 802.11v-2011)
+# Note: This is experimental and not complete implementation.
+#CONFIG_WNM=y
+
+# IEEE 802.11ac (Very High Throughput) support
+CONFIG_IEEE80211AC=y
+
+# IEEE 802.11ax HE support
+# Note: This is experimental and work in progress. The definitions are still
+# subject to change and this should not be expected to interoperate with the
+# final IEEE 802.11ax version.
+#CONFIG_IEEE80211AX=y
+
+# Remove debugging code that is printing out debug messages to stdout.
+# This can be used to reduce the size of the hostapd considerably if debugging
+# code is not needed.
+#CONFIG_NO_STDOUT_DEBUG=y
+
+# Add support for writing debug log to a file: -f /tmp/hostapd.log
+# Disabled by default.
+#CONFIG_DEBUG_FILE=y
+
+# Send debug messages to syslog instead of stdout
+#CONFIG_DEBUG_SYSLOG=y
+
+# Add support for sending all debug messages (regardless of debug verbosity)
+# to the Linux kernel tracing facility. This helps debug the entire stack by
+# making it easy to record everything happening from the driver up into the
+# same file, e.g., using trace-cmd.
+#CONFIG_DEBUG_LINUX_TRACING=y
+
+# Remove support for RADIUS accounting
+#CONFIG_NO_ACCOUNTING=y
+
+# Remove support for RADIUS
+#CONFIG_NO_RADIUS=y
+
+# Remove support for VLANs
+#CONFIG_NO_VLAN=y
+
+# Enable support for fully dynamic VLANs. This enables hostapd to
+# automatically create bridge and VLAN interfaces if necessary.
+#CONFIG_FULL_DYNAMIC_VLAN=y
+
+# Use netlink-based kernel API for VLAN operations instead of ioctl()
+# Note: This requires libnl 3.1 or newer.
+#CONFIG_VLAN_NETLINK=y
+
+# Remove support for dumping internal state through control interface commands
+# This can be used to reduce binary size at the cost of disabling a debugging
+# option.
+#CONFIG_NO_DUMP_STATE=y
+
+# Enable tracing code for developer debugging
+# This tracks use of memory allocations and other registrations and reports
+# incorrect use with a backtrace of call (or allocation) location.
+#CONFIG_WPA_TRACE=y
+# For BSD, comment out these.
+#LIBS += -lexecinfo
+#LIBS_p += -lexecinfo
+#LIBS_c += -lexecinfo
+
+# Use libbfd to get more details for developer debugging
+# This enables use of libbfd to get more detailed symbols for the backtraces
+# generated by CONFIG_WPA_TRACE=y.
+#CONFIG_WPA_TRACE_BFD=y
+# For BSD, comment out these.
+#LIBS += -lbfd -liberty -lz
+#LIBS_p += -lbfd -liberty -lz
+#LIBS_c += -lbfd -liberty -lz
+
+# hostapd depends on strong random number generation being available from the
+# operating system. os_get_random() function is used to fetch random data when
+# needed, e.g., for key generation. On Linux and BSD systems, this works by
+# reading /dev/urandom. It should be noted that the OS entropy pool needs to be
+# properly initialized before hostapd is started. This is important especially
+# on embedded devices that do not have a hardware random number generator and
+# may by default start up with minimal entropy available for random number
+# generation.
+#
+# As a safety net, hostapd is by default trying to internally collect
+# additional entropy for generating random data to mix in with the data
+# fetched from the OS. This by itself is not considered to be very strong, but
+# it may help in cases where the system pool is not initialized properly.
+# However, it is very strongly recommended that the system pool is initialized
+# with enough entropy either by using hardware assisted random number
+# generator or by storing state over device reboots.
+#
+# hostapd can be configured to maintain its own entropy store over restarts to
+# enhance random number generation. This is not perfect, but it is much more
+# secure than using the same sequence of random numbers after every reboot.
+# This can be enabled with -e<entropy file> command line option. The specified
+# file needs to be readable and writable by hostapd.
+#
+# If the os_get_random() is known to provide strong random data (e.g., on
+# Linux/BSD, the board in question is known to have reliable source of random
+# data from /dev/urandom), the internal hostapd random pool can be disabled.
+# This will save some in binary size and CPU use. However, this should only be
+# considered for builds that are known to be used on devices that meet the
+# requirements described above.
+#CONFIG_NO_RANDOM_POOL=y
+
+# Should we attempt to use the getrandom(2) call that provides more reliable
+# yet secure randomness source than /dev/random on Linux 3.17 and newer.
+# Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
+#CONFIG_GETRANDOM=y
+
+# Should we use poll instead of select? Select is used by default.
+#CONFIG_ELOOP_POLL=y
+
+# Should we use epoll instead of select? Select is used by default.
+#CONFIG_ELOOP_EPOLL=y
+
+# Should we use kqueue instead of select? Select is used by default.
+#CONFIG_ELOOP_KQUEUE=y
+
+# Select TLS implementation
+# openssl = OpenSSL (default)
+# gnutls = GnuTLS
+# internal = Internal TLSv1 implementation (experimental)
+# linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental)
+# none = Empty template
+#CONFIG_TLS=openssl
+
+# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1)
+# can be enabled to get a stronger construction of messages when block ciphers
+# are used.
+#CONFIG_TLSV11=y
+
+# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2)
+# can be enabled to enable use of stronger crypto algorithms.
+#CONFIG_TLSV12=y
+
+# Select which ciphers to use by default with OpenSSL if the user does not
+# specify them.
+#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW"
+
+# If CONFIG_TLS=internal is used, additional library and include paths are
+# needed for LibTomMath. Alternatively, an integrated, minimal version of
+# LibTomMath can be used. See beginning of libtommath.c for details on benefits
+# and drawbacks of this option.
+#CONFIG_INTERNAL_LIBTOMMATH=y
+#ifndef CONFIG_INTERNAL_LIBTOMMATH
+#LTM_PATH=/usr/src/libtommath-0.39
+#CFLAGS += -I$(LTM_PATH)
+#LIBS += -L$(LTM_PATH)
+#LIBS_p += -L$(LTM_PATH)
+#endif
+# At the cost of about 4 kB of additional binary size, the internal LibTomMath
+# can be configured to include faster routines for exptmod, sqr, and div to
+# speed up DH and RSA calculation considerably
+#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
+
+# Interworking (IEEE 802.11u)
+# This can be used to enable functionality to improve interworking with
+# external networks.
+#CONFIG_INTERWORKING=y
+
+# Hotspot 2.0
+#CONFIG_HS20=y
+
+# Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file
+CONFIG_SQLITE=y
+
+# Enable Fast Session Transfer (FST)
+#CONFIG_FST=y
+
+# Enable CLI commands for FST testing
+#CONFIG_FST_TEST=y
+
+# Testing options
+# This can be used to enable some testing options (see also the example
+# configuration file) that are really useful only for testing clients that
+# connect to this hostapd. These options allow, for example, to drop a
+# certain percentage of probe requests or auth/(re)assoc frames.
+#
+#CONFIG_TESTING_OPTIONS=y
+# Automatic Channel Selection
+# This will allow hostapd to pick the channel automatically when channel is set
+# to "acs_survey" or "0". Eventually, other ACS algorithms can be added in
+# similar way.
+#
+# Automatic selection is currently only done through initialization, later on
+# we hope to do background checks to keep us moving to more ideal channels as
+# time goes by. ACS is currently only supported through the nl80211 driver and
+# your driver must have survey dump capability that is filled by the driver
+# during scanning.
+#
+# You can customize the ACS survey algorithm with the hostapd.conf variable
+# acs_num_scans.
+#
+# Supported ACS drivers:
+# * ath9k
+# * ath5k
+# * ath10k
+#
+# For more details refer to:
+# http://wireless.kernel.org/en/users/Documentation/acs
+#
CONFIG_ACS=y
-CONFIG_IEEE80211AC=y
+# Multiband Operation support
+# These extentions facilitate efficient use of multiple frequency bands
+# available to the AP and the devices that may associate with it.
+#CONFIG_MBO=y
-CONFIG_OPENVSWITCH=y
+# Client Taxonomy
+# Has the AP retain the Probe Request and (Re)Association Request frames from
+# a client, from which a signature can be produced which can identify the model
+# of client device like "Nexus 6P" or "iPhone 5s".
+#CONFIG_TAXONOMY=y
-CONFIG_IEEE80211R=y
+# Fast Initial Link Setup (FILS) (IEEE 802.11ai)
+#CONFIG_FILS=y
+# FILS shared key authentication with PFS
+#CONFIG_FILS_SK_PFS=y
-CONFIG_WPS=y
+# Include internal line edit mode in hostapd_cli. This can be used to provide
+# limited command line editing and history support.
+#CONFIG_WPA_CLI_EDIT=y
-CONFIG_WPS2=y
+# Opportunistic Wireless Encryption (OWE)
+# Experimental implementation of draft-harkins-owe-07.txt
+#CONFIG_OWE=y
-CONFIG_WPS_UPNP=y
+# Airtime policy support
+#CONFIG_AIRTIME_POLICY=y
+
+# Override default value for the wpa_disable_eapol_key_retries configuration
+# parameter. See that parameter in hostapd.conf for more details.
+#CFLAGS += -DDEFAULT_WPA_DISABLE_EAPOL_KEY_RETRIES=1
+
+# custom configuration options
+CONFIG_MESH=y
+CONFIG_SAE=y
+CONFIG_WPS2=y
diff --git a/hostapd-noscan.patch b/hostapd-noscan.patch
deleted file mode 100644
index 8dd48fb1db3f..000000000000
--- a/hostapd-noscan.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -wbBur hostapd-2.8/hostapd/config_file.c hostapd-2.8.q/hostapd/config_file.c
---- hostapd-2.8/hostapd/config_file.c 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8.q/hostapd/config_file.c 2019-04-25 14:59:57.594749041 +0300
-@@ -2858,6 +2858,8 @@
- bss->wpa_gmk_rekey = atoi(pos);
- } else if (os_strcmp(buf, "wpa_ptk_rekey") == 0) {
- bss->wpa_ptk_rekey = atoi(pos);
-+ } else if (os_strcmp(buf, "noscan") == 0) {
-+ conf->noscan = atoi(pos);
- } else if (os_strcmp(buf, "wpa_group_update_count") == 0) {
- char *endp;
- unsigned long val = strtoul(pos, &endp, 0);
-@@ -3390,6 +3392,8 @@
- bss->ieee80211w = 1;
- #endif /* CONFIG_OCV */
- #ifdef CONFIG_IEEE80211N
-+ } else if (os_strcmp(buf, "noscan") == 0) {
-+ conf->noscan = atoi(pos);
- } else if (os_strcmp(buf, "ieee80211n") == 0) {
- conf->ieee80211n = atoi(pos);
- } else if (os_strcmp(buf, "ht_capab") == 0) {
-diff -wbBur hostapd-2.8/src/ap/ap_config.h hostapd-2.8.q/src/ap/ap_config.h
---- hostapd-2.8/src/ap/ap_config.h 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8.q/src/ap/ap_config.h 2019-04-25 15:01:32.981414600 +0300
-@@ -801,6 +801,7 @@
-
- int ht_op_mode_fixed;
- u16 ht_capab;
-+ int noscan;
- int ieee80211n;
- int secondary_channel;
- int no_pri_sec_switch;
-diff -wbBur hostapd-2.8/src/ap/hw_features.c hostapd-2.8.q/src/ap/hw_features.c
---- hostapd-2.8/src/ap/hw_features.c 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8.q/src/ap/hw_features.c 2019-04-25 14:58:10.278083605 +0300
-@@ -477,7 +477,7 @@
- int ret;
-
- /* Check that HT40 is used and PRI / SEC switch is allowed */
-- if (!iface->conf->secondary_channel || iface->conf->no_pri_sec_switch)
-+ if (!iface->conf->secondary_channel || iface->conf->no_pri_sec_switch || iface->conf->noscan)
- return 0;
-
- hostapd_set_state(iface, HAPD_IFACE_HT_SCAN);
-@@ -730,7 +730,7 @@
- if (!hostapd_is_usable_chan(iface, iface->conf->channel, 1))
- return 0;
-
-- if (!iface->conf->secondary_channel)
-+ if (!iface->conf->secondary_channel || iface->conf->noscan)
- return 1;
-
- if (!iface->conf->ht40_plus_minus_allowed)
-diff -wbBur hostapd-2.8/src/ap/ieee802_11_ht.c hostapd-2.8.q/src/ap/ieee802_11_ht.c
---- hostapd-2.8/src/ap/ieee802_11_ht.c 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8.q/src/ap/ieee802_11_ht.c 2019-04-25 14:58:10.278083605 +0300
-@@ -252,6 +252,9 @@
- return;
- }
-
-+ if (iface->conf->noscan)
-+ return;
-+
- if (len < IEEE80211_HDRLEN + 2 + sizeof(*bc_ie)) {
- wpa_printf(MSG_DEBUG,
- "Ignore too short 20/40 BSS Coexistence Management frame");
-@@ -412,6 +415,9 @@
- if (iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G)
- return;
-
-+ if (iface->conf->noscan)
-+ return;
-+
- wpa_printf(MSG_INFO, "HT: Forty MHz Intolerant is set by STA " MACSTR
- " in Association Request", MAC2STR(sta->addr));
-
diff --git a/openvswitch.patch b/openvswitch.patch
deleted file mode 100644
index 09120cfa3d9e..000000000000
--- a/openvswitch.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-diff -wbBur hostapd-2.8.q/src/drivers/drivers.mak hostapd-2.8/src/drivers/drivers.mak
---- hostapd-2.8.q/src/drivers/drivers.mak 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8/src/drivers/drivers.mak 2019-04-25 15:05:36.981411804 +0300
-@@ -136,6 +136,10 @@
- NEED_RFKILL=y
- endif
-
-+ifdef CONFIG_OPENVSWITCH
-+DRV_CFLAGS += -DCONFIG_OPENVSWITCH
-+endif
-+
- ifdef NEED_NETLINK
- DRV_OBJS += ../src/drivers/netlink.o
- endif
-diff -wbBur hostapd-2.8.q/src/drivers/drivers.mk hostapd-2.8/src/drivers/drivers.mk
---- hostapd-2.8.q/src/drivers/drivers.mk 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8/src/drivers/drivers.mk 2019-04-25 15:05:36.981411804 +0300
-@@ -128,6 +128,10 @@
- NEED_RFKILL=y
- endif
-
-+ifdef CONFIG_OPENVSWITCH
-+DRV_CFLAGS += -DCONFIG_OPENVSWITCH
-+endif
-+
- ifdef NEED_NETLINK
- DRV_OBJS += src/drivers/netlink.c
- endif
-diff -wbBur hostapd-2.8.q/src/drivers/linux_ioctl.c hostapd-2.8/src/drivers/linux_ioctl.c
---- hostapd-2.8.q/src/drivers/linux_ioctl.c 2019-04-21 10:10:22.000000000 +0300
-+++ hostapd-2.8/src/drivers/linux_ioctl.c 2019-04-25 15:05:36.981411804 +0300
-@@ -15,6 +15,69 @@
- #include "common/linux_bridge.h"
- #include "linux_ioctl.h"
-
-+#ifdef CONFIG_OPENVSWITCH
-+#include <sys/wait.h>
-+#include <sys/stat.h>
-+
-+#define run_prog(p, ...) ({ \
-+ struct stat q; \
-+ int rc = -1, status; \
-+ if(stat(p, &q) == 0) \
-+ { \
-+ pid_t pid = fork(); \
-+ if (!pid) \
-+ exit(execl(p, p, ##__VA_ARGS__, NULL)); \
-+ if (pid < 0) { \
-+ rc = -1; \
-+ } else { \
-+ while ((rc = waitpid(pid, &status, 0)) == -1 && errno == EINTR); \
-+ rc = (rc == pid && WIFEXITED(status)) ? WEXITSTATUS(status) : -1; \
-+ } \
-+ } \
-+ rc; \
-+})
-+
-+int ovs_br_get(char *brname, const char *ifname)
-+{
-+ FILE *f;
-+ char cmd[64];
-+ char *c;
-+ struct stat q;
-+
-+ if(stat("/usr/bin/ovs-vsctl", &q) != 0)
-+ return -1;
-+
-+ brname[0] = '\0';
-+ sprintf(cmd, "/usr/bin/ovs-vsctl iface-to-br %s", ifname);
-+ f = popen(cmd, "r");
-+ if (!f)
-+ return -1;
-+ c = fgets(brname, IFNAMSIZ, f);
-+ pclose(f);
-+ if (c && strlen(brname)) {
-+ /* Ignore newline */
-+ if ((c = strchr(brname, '\n')))
-+ *c = '\0';
-+ return 0;
-+ }
-+ return -1;
-+}
-+
-+int ovs_br_add_if(const char *brname, const char *ifname)
-+{
-+ if (run_prog("/usr/bin/ovs-vsctl", "add-port", brname, ifname))
-+ return -1;
-+ return 0;
-+}
-+
-+int ovs_br_del_if(const char *brname, const char *ifname)
-+{
-+ if (run_prog("/usr/bin/ovs-vsctl", "del-port", brname, ifname))
-+ return -1;
-+ return 0;
-+}
-+
-+#endif
-
- int linux_set_iface_flags(int sock, const char *ifname, int dev_up)
- {
-@@ -152,6 +215,11 @@
- struct ifreq ifr;
- int ifindex;
-
-+#ifdef CONFIG_OPENVSWITCH
-+ if (!ovs_br_add_if(brname, ifname))
-+ return 0;
-+#endif
-+
- ifindex = if_nametoindex(ifname);
- if (ifindex == 0)
- return -1;
-@@ -177,6 +245,11 @@
- struct ifreq ifr;
- int ifindex;
-
-+#ifdef CONFIG_OPENVSWITCH
-+ if (!ovs_br_del_if(brname, ifname))
-+ return 0;
-+#endif
-+
- ifindex = if_nametoindex(ifname);
- if (ifindex == 0)
- return -1;
-@@ -199,6 +272,11 @@
- char path[128], brlink[128], *pos;
- ssize_t res;
-
-+#ifdef CONFIG_OPENVSWITCH
-+ if (!ovs_br_get(brname, ifname))
-+ return 0;
-+#endif
-+
- os_snprintf(path, sizeof(path), "/sys/class/net/%s/brport/bridge",
- ifname);
- res = readlink(path, brlink, sizeof(brlink));