FreeWTP -- An Open Source CAPWAP WTP
de0ffd5153
early DTLS handshake failures would not terminate the read loop and cause the remaining handshake bytes to be feed to packet reader, causing an error assertion. Rework the main read loop to terminate it when the read event is not longer active and stop the read event on handshake failure. Also, make the DTLS handshake erorr message a bit more readable by appending the WolfSSL error message to it. Fixes issue #8. |
||
---|---|---|
build | ||
conf | ||
docs | ||
m4 | ||
openwrt | ||
src | ||
webservice | ||
.gitignore | ||
.hgignore | ||
AUTHORS | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
LICENSE | ||
LICENSING | ||
Makefile.am | ||
NEWS | ||
NEWS.md | ||
README.md |
README
RFC-5415 and RFC-5416 compliant CAPWAP WTP (and AC) implementation.
This fork is currently focusing on the WTP side only.
STATUS
NOTE: The WTP has been ported to libev, the AC has not been adjusted and is therefor broken for the moment.
WTP tested and working features:
- 802.11b
- 802.11g
- 802.11a
- WMM/WME (mostly)
- Local MAC
- single radio, single WLAN mode
- 802.11n (draft-ietf-opsawg-capwap-extension-06)
- WPA2-PSK
Only cards with cfg80211 netlink API are supported. The following devices have been tested:
- Atheros AR9280 (Compex WLE200NX)
- Mediatek MT7602E, MT7612E (ZBT WG2626, ALL-WR1200AC_WRT)
Planned WTP features:
- WPA2 Enterprise
- 802.11r - BSS fast transition
- Hybrid-MAC (RFC-7494)
INSTALLATION
Requirements
NOTE: To run WTP you must have a wireless card that has Linux driver based on the Generic IEEE 802.11 Networking Stack (mac80211).
- Linux 4.4 or newer
- automake 1.9 or newer
- autoconf
- libconfig-dev
- libjson0-dev
- libnl-dev
- libev-dev
- libtool
- libxml2-dev
- wolfssl 3.8 or newer
Build
WolfSSL:
./configure --enable-dtls --enable-ipv6 --enable-aesgcm \
--enable-aesccm --enable-aesni --enable-poly1305 \
--enable-ecc --enable-ecc25519 --enable-chacha \
--enable-supportedcurves --enable-dh --enable-psk \
--disable-des3 --disable-arc4 --prefix=/usr/
make
make install
SmartCAPWAP:
autoreconf -f -i
./configure --disable-ac
make
make install
Debugging / Traceing
The smartcapwap kernel module defines a number of static ftrace events. For a detailed guide on how to use those, see: https://www.kernel.org/doc/Documentation/trace/ftrace.txt
A sample trace session might lock like this:
echo 1 > /sys/kernel/debug/tracing/events/capwap/enable
echo 1 > /sys/kernel/debug/tracing/tracing_on
cat /sys/kernel/debug/tracing/trace_pipe
<...>-890 [000] ...1 12030.725012: sc_capwap_create: session:9e04b10c75b3c6537da18d38da5bc70d
<...>-890 [000] ...1 12030.725048: sc_capwap_sendkeepalive: session:9e04b10c75b3c6537da18d38da5bc70d
<...>-890 [000] ...1 12030.725052: sc_capwap_createkeepalive: session:9e04b10c75b3c6537da18d38da5bc70d
<...>-890 [000] ...1 12030.725053: sc_capwap_send: session:9e04b10c75b3c6537da18d38da5bc70d
ksoftirqd/0-3 [000] ..s1 12030.727270: sc_capwap_parsingpacket: session:9e04b10c75b3c6537da18d38da5bc70d skb:ffff8802306c8900
wtp-890 [001] ...1 12060.764008: sc_capwap_sendkeepalive: session:9e04b10c75b3c6537da18d38da5bc70d
wtp-890 [001] ...1 12060.764530: sc_capwap_createkeepalive: session:9e04b10c75b3c6537da18d38da5bc70d
wtp-890 [001] ...1 12060.764637: sc_capwap_send: session:9e04b10c75b3c6537da18d38da5bc70d
<idle>-0 [000] ..s2 12060.787527: sc_capwap_parsingpacket: session:9e04b10c75b3c6537da18d38da5bc70d skb:ffff8800b8a85900
wtp-890 [001] ...1 12082.953847: sc_capwap_resetsession: session:9e04b10c75b3c6537da18d38da5bc70d
wtp-890 [001] ...1 12082.954005: sc_capwap_close: session:9e04b10c75b3c6537da18d38da5bc70d
wtp-890 [001] ...1 12082.954130: sc_capwap_freesession: session:9e04b10c75b3c6537da18d38da5bc70d