FreeWTP -- An Open Source CAPWAP WTP
Go to file
Moritz Rosenthal 8e34c700a6 Added definition of GPSACP message element (#10) 2017-05-30 16:19:46 +02:00
docker-build add Dockerfile for reproducable building 2016-09-21 21:58:13 +02:00
docs Added definition of GPSACP message element (#10) 2017-05-30 16:19:46 +02:00
etc remove some left over SmaretCAPWAP messages and AC pieces 2016-11-08 15:01:08 +01:00
kernel-patches split kernel and OpenWRT/LEDE patches 2016-11-09 11:15:13 +01:00
kmod remove some left over SmaretCAPWAP messages and AC pieces 2016-11-08 15:01:08 +01: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 split kernel and OpenWRT/LEDE patches 2016-11-09 11:15:13 +01:00
src split STA deletion into immediate and delayed action 2016-11-11 13:32:44 +01: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 remove some left over SmaretCAPWAP messages and AC pieces 2016-11-08 15:01:08 +01:00
ChangeLog The capwap data channel migrated from userspace to kernalspace 2014-09-10 21:58:23 +02:00
INSTALL split kernel and OpenWRT/LEDE patches 2016-11-09 11:15:13 +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 release v1.4.1 2016-11-15 15:15:45 +01:00
README.md split kernel and OpenWRT/LEDE patches 2016-11-09 11:15:13 +01: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

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:

  • 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
  • libnl-dev
  • libev-dev
  • libtool
  • wolfssl 3.8 or newer

Build

Linux Kernel:

Apply the appropriate path from kernel-patches to your kernel, enable CAPWAP WTP support and rebuild you kernel.

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 wtp capwap 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