Commit Graph

19 Commits

Author SHA1 Message Date
Robert McMahon bc282a348a Fix KEEP_PCAP not working with sudo
- Add --keep-pcap command-line flag that works with sudo
- Environment variable KEEP_PCAP still works with 'sudo -E'
- Usage: sudo ./test_monitor_tshark.sh wlan0 36 10 --keep-pcap
- Or: KEEP_PCAP=1 sudo -E ./test_monitor_tshark.sh wlan0 36 10

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:15:23 -08:00
Robert McMahon ba4fb72a40 Add diagnostics for pcap file capture issues
- Check if pcap file exists and show its size
- Count raw packets in pcap file using capinfos or tshark
- Add sync after capture to ensure file is written
- This will help diagnose why main capture shows few/no packets

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:13:19 -08:00
Robert McMahon 73358f9223 Add cleanup message and option to keep temporary pcap file
- Show message when deleting temporary pcap file
- Add KEEP_PCAP environment variable option to keep the file for analysis
  Usage: KEEP_PCAP=1 sudo ./test_monitor_tshark.sh wlan0 36 10

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:10:36 -08:00
Robert McMahon 84a16cf62b Add unique RA/TA pair counting to test_monitor_tshark.sh
Display unique RA/TA pairs with frame counts, sorted by count (descending).
This helps identify which devices are communicating with each other and
the volume of traffic between each pair.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:08:25 -08:00
Robert McMahon 39058bdbf3 Output temporary pcap filename for debugging
Display the name of the temporary pcap file being used for capture.
This helps with debugging and allows users to inspect the file if needed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:07:28 -08:00
Robert McMahon 5ee50bc184 Fix capture by using pcap file intermediate step
Capture to a temporary pcap file first, then parse it. This prevents
tshark from exiting early when encountering frames without RA/TA fields
during live capture. The capture phase won't error on missing fields,
and the parsing phase uses a display filter to only extract RA/TA from
frames that have them.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:06:59 -08:00
Robert McMahon aed791efae Suppress stderr to allow tshark to continue despite field errors
Redirect stderr to /dev/null to suppress 'Some fields aren't valid' errors
when tshark encounters frames without RA/TA fields. This should allow
tshark to continue capturing instead of exiting early.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:05:34 -08:00
Robert McMahon 189444c88f Add display filter to capture only frames with RA/TA
Use tshark display filter to only capture frames that have RA or TA fields.
This prevents tshark from erroring when encountering management frames
that don't have these fields, which was causing early termination of captures.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:04:11 -08:00
Robert McMahon a50c03166c Improve tshark error handling and packet counting
- Add -q flag to suppress tshark summary output
- Handle exit code 1 (field availability issues) as non-fatal
- Better filter out tshark status messages from packet counting
- Improve packet line detection to exclude status messages

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:02:50 -08:00
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 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