FreeWTP -- An Open Source CAPWAP WTP
Go to file
Andreas Schultz 247a65c7d5 correctly handle endianess when parseing RSNE
The length fields in the RSN elements are little endian. We
need to convert then to host order when reading.
2016-09-22 10:36:01 +02:00
docker-build add Dockerfile for reproducable building 2016-09-21 21:58:13 +02:00
docs First commit 2013-05-01 14:52:55 +02:00
etc [config] update default configuration 2016-08-29 21:16:27 +02:00
kmod rename kernel modules to wtp.ko 2016-08-23 09:18:16 +02:00
lib use WOLFSSL_CFLAGS from pkgconfig 2016-09-09 22:45:35 +02:00
m4 Add m4 folder 2013-05-01 15:00:11 +02:00
openwrt [config] update default configuration 2016-08-29 21:16:27 +02:00
src correctly handle endianess when parseing RSNE 2016-09-22 10:36:01 +02:00
.gitignore Add .gitignore (based on .hgignore) 2015-01-22 10:19:38 +01:00
.hgignore Fix fragment error 2014-09-21 11:20:35 +02:00
AUTHORS update README 2016-03-07 15:20:19 +01:00
COPYING upgrade version to v1.1.0 2016-03-07 15:40:32 +01:00
ChangeLog The capwap data channel migrated from userspace to kernalspace 2014-09-10 21:58:23 +02:00
INSTALL update README 2016-03-07 15:20:19 +01:00
LICENSE First commit 2013-05-01 14:52:55 +02:00
LICENSING fork SmartCAWPAP as FreeWTP 2016-08-23 08:55:15 +02:00
Makefile.am fork SmartCAWPAP as FreeWTP 2016-08-23 08:55:15 +02:00
NEWS The capwap data channel migrated from userspace to kernalspace 2014-09-10 21:58:23 +02:00
NEWS.md prepare v1.4.0 release 2016-08-23 08:55:15 +02:00
README.md fixed typo 2016-08-25 10:02:33 +02:00
configure.ac fork SmartCAWPAP as FreeWTP 2016-08-23 08:55:15 +02:00

README.md

README

RFC-5415 and RFC-5416 compliant CAPWAP WTP implementation.

This project started as a fork of SmartCAPWAP, but has since dropped the AC part on focuses on WTP functionality only (hence the new name).

STATUS

NOTE: The WTP implementation has been ported to libev

WTP tested and working features:

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

FreeWTP:

autoreconf -f -i
./configure --disable-ac
make
make install

Debugging / Tracing

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

echo 0 > /sys/kernel/debug/tracing/tracing_on