FreeWTP -- An Open Source CAPWAP WTP
Go to file
Andreas Schultz de0ffd5153 properly handle a DTLS handshake failure
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.
2016-08-17 15:18:35 +02:00
build add RFC 7494 CAPWAP elements 2016-08-17 11:55:56 +02:00
conf implement station inactivity timeout 2016-04-07 15:15:50 +02:00
docs First commit 2013-05-01 14:52:55 +02:00
m4 Add m4 folder 2013-05-01 15:00:11 +02:00
openwrt finally fix that typo 2016-08-17 14:06:56 +02:00
src properly handle a DTLS handshake failure 2016-08-17 15:18:35 +02:00
webservice remove dos style newlines 2016-02-05 17:38:49 +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 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 update README 2016-03-07 15:20:19 +01:00
Makefile.am The capwap data channel migrated from userspace to kernalspace 2014-09-10 21:58:23 +02:00
NEWS The capwap data channel migrated from userspace to kernalspace 2014-09-10 21:58:23 +02:00
NEWS.md release 1.3.2 2016-08-15 15:39:06 +02:00
README.md [wtp-kmod] replace some printk based tracing with ftrace events 2016-08-11 15:43:19 +02:00
configure.ac release 1.2.1 2016-05-06 17:58:27 +02:00

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:

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

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