Wifi Notes
This page is largely a personal collection of notes from my discussions with AdrianChadd on the FreeBSD wireless networking stack and how to work effectively with the stack.
Debugging pre-requisites
- Enable
iwn(4)debugging to syslog withsysctl dev.iwn.0.debug=0x1 - Ensure you have a kernel with
option IWN_DEBUGadded
Debugging with experimental traffic
In order to verify the rates and performance of the iwn(4) it is recommended that you have a local wireless network (WLAN) which attaches to a traditional LAN. The network should look something like this:
+––––––––––––––––+
| Router/Gateway |
+––––––––––––––+–+
^ |
| | +–––––––––––––+
| +–––>+ Wireless AP |
| +–––––––––––+–+
| v
+–––––––––––––––––+–––+ +––––+–––––––––––+
| FreeBSD workstation | | FreeBSD laptop |
+–––––––––––––––––––––+ +––––––––––––––––+
- On the workstation set up iperf
- Enable the debugging flags above on the laptop
- Use iperf + UDP to determine whether the laptop is seeing sends or receives experience performance degradation
Disorganized Notes
- Look at iwn_rate_to_plcp() for reversing the plcp debug flag (if_iwn.c)
- Look at TX_STATUS code for the status flag (if_iwnreg.h)
- Learn how to compile the wireless stack as modules entirely instead of in the kernel object