Go to file
Ilgiz Kamelyev 0d2f1e55dd scan_wpa_interface now accepts:
--channel FREQ:WIDTH repeatable
--ssid SSID repeatable
--ie bytes:HEX repeatable
2026-04-26 15:48:47 +05:00
deploy Document configuration yaml files 2026-04-24 17:38:19 +05:00
etc/wf-agent implemented a general diagnostic command, get_runtime_snapshot, for querying live state from the running application. The first implemented section is listeners, but the response container is intentionally generic so observability and module-state sections can be added later without changing the command name again. 2026-04-25 21:31:45 +05:00
generated/python реализация команды получения от dbus свойств "WFDIEs - ay - (read)" для пути типа fi.w1.wpa_supplicant1 2026-04-26 10:11:31 +05:00
plan Initial repository snapshot 2026-04-23 20:54:42 +05:00
src scan_wpa_interface now accepts: 2026-04-26 15:48:47 +05:00
tests scan_wpa_interface now accepts: 2026-04-26 15:48:47 +05:00
tools Fix config loading and formatting 2026-04-23 20:59:15 +05:00
.gitignore Add JSON logging for command websocket 2026-04-25 10:02:50 +05:00
Makefile Add development toolchain baseline 2026-04-23 21:04:38 +05:00
README.md scan_wpa_interface now accepts: 2026-04-26 15:48:47 +05:00
README.txt Add final runtime and systemd documentation 2026-04-24 10:30:47 +05:00
pyproject.toml Generate python bindings for event protobuf contracts 2026-04-23 21:21:25 +05:00
pyrightconfig.json Generate python bindings for event protobuf contracts 2026-04-23 21:21:25 +05:00
requirements-dev.txt Initial repository snapshot 2026-04-23 20:54:42 +05:00
requirements.txt Initial repository snapshot 2026-04-23 20:54:42 +05:00

README.md

WF-Agent Gen4 artifact bundle

Includes:

  • versioned .proto source contracts
  • YAML configuration layout
  • code generation scripts
  • runtime/dev dependency manifests
  • systemd service example
  • sysusers.d and tmpfiles.d examples
  • bootstrap skeleton for app.main
  • loader skeleton for multi-YAML config
  • minimal smoke tests

Typical workflow:

  1. Install deps
  2. Generate protobuf bindings
  3. Load /etc/wf-agent/app.yaml as root config
  4. Run tests
  5. Extend bootstrap into full runtime

CLI example:

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_state \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_capabilities \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_scanning \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_ifname \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_current_bss \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_current_network \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_current_auth_mode \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_country \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_country \
  --index 0 \
  --value RU

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_ap_scan \
  --index 0 \
  --value 2

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_bss_expire_age \
  --index 0 \
  --value 180

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_bss_expire_count \
  --index 0 \
  --value 7

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_fast_reauth \
  --index 0 \
  --value false

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_interface_scan_interval \
  --index 0 \
  --value 30

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_disconnect_reason \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_bss_paths \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_network_paths \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_interface_blobs \
  --object-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_wfdies

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_debug_level

python -m app.cli --config-file /etc/wf-agent/app.yaml create_wpa_supplicant_interface \
  --ifname wlan0 \
  --driver nl80211 \
  --bridge-ifname br0 \
  --interface-config-file /etc/wpa_supplicant.conf

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_interface \
  --ifname wlan0

python -m app.cli --config-file /etc/wf-agent/app.yaml remove_wpa_supplicant_interface \
  --interface-path /fi/w1/wpa_supplicant1/Interfaces/0

python -m app.cli --config-file /etc/wf-agent/app.yaml scan_wpa_interface \
  --index 0 \
  --argument Type=active \
  --argument AllowRoam=true \
  --channel 2412:20 \
  --channel 5180:80 \
  --ssid TestNet \
  --ssid Guest \
  --ie bytes:010203

python -m app.cli --config-file /etc/wf-agent/app.yaml add_wpa_interface_network \
  --index 0 \
  --argument ssid=TestNet \
  --argument psk=secret

python -m app.cli --config-file /etc/wf-agent/app.yaml tdls_status_wpa_interface \
  --index 0 \
  --peer-address aa:bb:cc:dd:ee:ff

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_supplicant_debug_level \
  --value debug

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_supplicant_debug_timestamp \
  --value true

python -m app.cli --config-file /etc/wf-agent/app.yaml set_wpa_supplicant_debug_show_keys \
  --value false

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_debug_timestamp

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_debug_show_keys

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_interfaces

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_eap_methods

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_supplicant_capabilities

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_network_enabled \
  --object-path /fi/w1/wpa_supplicant1/Networks/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_network_properties \
  --object-path /fi/w1/wpa_supplicant1/Networks/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_bssid \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_ssid \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_wpa \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_rsn \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_wps \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_ies \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_privacy \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_mode \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_frequency \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_rates \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_signal \
  --object-path /fi/w1/wpa_supplicant1/BSS/1

python -m app.cli --config-file /etc/wf-agent/app.yaml get_wpa_bss_age \
  --object-path /fi/w1/wpa_supplicant1/BSS/1