Commit Graph

17 Commits

Author SHA1 Message Date
Robert McMahon 744bc35597 Fix tshark field names for RA/TA display
Replace invalid wlan.addr1/wlan.addr2 with wlan.ra/wlan.ta fields.
These fields are the correct tshark field names for Receiver Address
and Transmitter Address in monitor mode captures.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:01:36 -08:00
Robert McMahon 1e9191f6c7 Fix timeout handling and display RA/TA in test_monitor_tshark.sh
- Fix script exit on timeout: handle exit code 124 from timeout command
- Add RA (Receiver Address) and TA (Transmitter Address) display in initial test capture
- Update main capture to show RA/TA instead of SA/DA for better monitor mode visibility
- Use wlan.addr1 and wlan.addr2 fields for universal compatibility across frame types

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:00:08 -08:00
Robert McMahon 8d607a5f66 Improve packet display formatting in test_monitor_tshark.sh
- Replace raw tab-separated values with readable format
- Show 'Frame X: PLCP header (radiotap) = yes/no' instead of '1 1'
- Add field labels for main capture sample packets
- Show SA, DA, type, subtype, and PLCP status in readable format

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:56:46 -08:00
Robert McMahon 8576960251 Fix stats display in test_monitor_tshark.sh
- Filter out 'X packets captured' summary lines from packet count
- Only count lines with tab-separated fields (actual packet data)
- Add sync to force output flush
- Ensure stats always display immediately after capture
- Remove trap that was interfering with normal flow

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:55:54 -08:00
Robert McMahon fb7dca0137 Show capture statistics immediately after capture completes
- Display stats right after 'Capturing packets' line completes
- Show packet count, PLCP count, and packet rate immediately
- Move sample packets display after stats
- Reorganize output for better readability

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:54:11 -08:00
Robert McMahon b80a9d818b Fix test_monitor_tshark.sh to always show counters
- Add message that capture may take time
- Always display packet and PLCP counts
- Better parsing of tshark output
- Separate warnings/errors from packet data
- Show note if packets captured but no PLCP headers

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:52:07 -08:00
Robert McMahon cc180b7868 Improve test_monitor_tshark.sh output and error handling
- Add progress messages and debug output
- Show tshark warnings/errors
- Always display counters even if no packets captured
- Better handling of empty output
- Show sample packets when available
- Add DLT check before capture

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:51:54 -08:00
Robert McMahon a98a255147 Add PLCP header counting to test_monitor_tshark.sh
- Add radiotap.present field to capture output
- Count packets with PLCP headers (radiotap information)
- Display PLCP count in both test capture and final summary
- Show warning if no PLCP headers detected (may indicate wrong DLT)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:50:00 -08:00
Robert McMahon 5827518041 Fix compilation errors in monitor.c
- Add forward declaration for verify_monitor_mode
- Initialize cb to NULL in verify_monitor_mode
- Add missing nla_put_failure label and error handling

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:49:06 -08:00
Robert McMahon 680253c120 Improve test_monitor_tshark.sh: add duration option and better packet counting
- Add duration parameter (3rd argument, default 10 seconds, minimum 1 second)
- Change initial check to capture for 1 second instead of just 1 packet
- Count packets from actual capture output instead of running twice
- Fix field names (use wlan.fc.type/subtype instead of wlan.type)
- Show packet count summary at the end
- Display more packets (50 instead of 20)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:47:51 -08:00
Robert McMahon fa93fc26f1 Add tshark test script and fix monitor mode setup
- Add test_monitor_tshark.sh to verify monitor mode works with tshark
- Fix set_monitor_mode to wait for Netlink response
- Improve libpcap initialization with pcap_create/pcap_set_rfmon/pcap_activate
- Add interface up/down control before/after setting monitor mode
- Add verification step to confirm monitor mode was set correctly

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 13:44:28 -08:00
Robert McMahon 122484463f Improve channel verification and add debug output
- Add fallback channel verification using 'iw' command
- Show data link type on startup
- Print first 10 non-data frames for debugging
- Add periodic status during capture loop

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 11:54:48 -08:00
Robert McMahon 2fcc2e9691 Add channel verification after setting monitor mode
- Add get_current_channel() function to query actual channel/frequency
- Add freq_to_channel() helper to convert frequency back to channel
- Display verified channel and frequency after setting monitor mode
- Warn if requested channel doesn't match actual channel

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 11:52:56 -08:00
Robert McMahon f9acd111f6 Update README.md: fix pkg-config package name for Fedora
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 13:34:41 -08:00
Robert McMahon 7fc038afcf Add INSTALL.md with dependency installation instructions for Fedora and Debian
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 13:33:41 -08:00
Robert McMahon bd34a6c249 Fix build system issues
- Remove obsolete AC_PROG_CC_C99 macro
- Fix Makefile.am: remove undefined wireless_monitor_HEADERS
- Add missing automake helper scripts

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 13:30:32 -08:00
Robert McMahon 38fbce9061 Initial commit: Linux wireless monitor for ESP32 verification
A C program using GNU Automake for capturing and parsing 802.11 WiFi
frame headers in monitor mode. Designed to verify ESP32 monitor code
by comparing Linux vs ESP32 frame parsing.

Features:
- Monitor mode setup using libnl3
- Packet capture using libpcap
- 802.11 frame parsing (RA, TA, duration, retry flag)
- MAC address filtering (matches ESP32 filter behavior)
- Output format matches ESP32 debug logs for easy comparison

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 13:26:17 -08:00