====== Wifi Notes ====== This page is largely a personal collection of notes from my discussions with [[/AdrianChadd|AdrianChadd]] on the %%FreeBSD%% wireless networking stack and how to work effectively with the stack. ==== Debugging pre-requisites ==== * Enable ''%%iwn(4)%%'' debugging to syslog with ''%%sysctl dev.iwn.0.debug=0x1%%'' * Ensure you have a kernel with ''%%option IWN_DEBUG%%'' added ==== 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 [[http://www.freshports.org/benchmarks/iperf/|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