syzkaller/executor
Aleksandr Nogikh 9133037195 all: integrate with mac80211_hwsim
Two virtual wireless devices are instantiated during network devices
initialization.

A new flag (-wifi) is added that controls whether these virtual wifi
devices are instantiated and configured during proc initialization.

Also, two new pseudo syscalls are added:
1. syz_80211_inject_frame(mac_addr, packet, packet_len) -- injects an
arbitrary packet into the wireless stack. It is injected as if it
originated from the device identitied by mac_addr.
2. syz_80211_join_ibss(interface_name, ssid, ssid_len, mode) --
puts a specific network interface into IBSS state and joins an IBSS
network.

Arguments of syz_80211_join_ibss:
1) interface_name -- null-terminated string that identifies
a wireless interface
2) ssid, ssid_len -- SSID of an IBSS network to join to
3) mode -- mode of syz_80211_join_ibss operation (see below)

Modes of operation:
JOIN_IBSS_NO_SCAN (0x0) -- channel scan is not performed and
syz_80211_join_ibss waits until the interface reaches IF_OPER_UP.
JOIN_IBSS_BG_SCAN (0x1) -- channel scan is performed (takes ~ 9
seconds), syz_80211_join_ibss does not await IF_OPER_UP.
JOIN_IBSS_BG_NO_SCAN (0x2) -- channel scan is not performed,
syz_80211_join_ibss does not await IF_OPER_UP.

Local testing ensured that these syscalls are indeed able to set up an
operating network and inject packets into mac80211.
2020-09-22 10:12:23 +02:00
..
android executor: minor cleanup of android sandbox 2020-03-11 12:09:17 +01:00
common_akaros.h executor: fix do_sandbox_none on akaros and test 2019-01-31 11:35:53 +01:00
common_bsd.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_fuchsia.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_kvm_amd64.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_kvm_arm64.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_linux.h all: integrate with mac80211_hwsim 2020-09-22 10:12:23 +02:00
common_test.h sys/test/test: add a hanging test 2020-09-12 13:03:27 +02:00
common_usb_linux.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_usb_netbsd.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_usb.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
common_windows.h executor: fix do_sandbox_none on akaros and test 2019-01-31 11:35:53 +01:00
common.h executor: forbid inlining of 'remove_dir' 2020-09-18 09:58:50 +02:00
executor_akaros.h executor: change syscall argument type to intptr_t 2019-05-07 08:48:35 +02:00
executor_bsd.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00
executor_fuchsia.h executor/fuchsia: Don't map memory as executable. 2020-06-05 16:46:48 -03:00
executor_linux.h executor: detect gvisor 2020-09-12 13:03:35 +02:00
executor_test.h executor: change syscall argument type to intptr_t 2019-05-07 08:48:35 +02:00
executor_windows.h executor: change syscall argument type to intptr_t 2019-05-07 08:48:35 +02:00
executor.cc all: integrate with mac80211_hwsim 2020-09-22 10:12:23 +02:00
gen.go executor: enable KVM generator only on AMD64 arch 2020-06-17 17:43:56 +02:00
kvm_gen.cc Makefile: enable clang-tidy in presubmit tests 2020-08-04 16:54:02 +02:00
kvm.h sys: improve kvm description 2017-01-28 19:58:31 +01:00
kvm.S executor: remove unused kvm_asm64_vm86 2019-01-17 10:52:20 +01:00
kvm.S.h all: fix marking of auto-generated files 2020-07-29 13:36:11 +02:00
nocover.h executor: Protect the coverage buffer 2019-06-04 16:24:36 +02:00
stub.go .golangci.yml: enable godot checker 2020-06-05 12:23:19 +02:00
style_test.go executor: fix definition of __NR_io_uring_setup 2020-09-15 08:40:10 +02:00
test_linux.h executor: add some code style checks 2020-08-06 15:27:41 +02:00
test.h executor: warn about C89-style var declarations 2020-08-14 09:40:08 +02:00