Commit Graph

315 Commits

Author SHA1 Message Date
Andreas Schultz
7293ce43da [ac] drop old libjson compatibility
json-c >= 0.11 is required now
2016-03-24 17:15:12 +01:00
Andreas Schultz
64012e792c update README, 802.11n is supported now 2016-03-24 17:15:12 +01:00
Andreas Schultz
94e232abe4 build without AC by default 2016-03-24 17:15:12 +01:00
Andreas Schultz
afd76e003d fix non-debug builds 2016-03-24 17:15:12 +01:00
Andreas Schultz
40071fb06d fix AC compilation 2016-03-24 17:15:12 +01:00
Andreas Schultz
e8241b2d3f fix libnl-genl detection for libnl3 2016-03-24 17:15:12 +01:00
Andreas Schultz
29295d1434 [ac] rename last remaining CyaSSL refrence to wolfSSL 2016-03-24 17:15:12 +01:00
Andreas Schultz
2109c62b80 implement basic 802.11n support
Add suport to enable 80211n support on the BSS and set
station parameters through the "Add Station" procedure.

Setting 802.11n radio parameters is rudementary and does
not work yet.
2016-03-24 17:15:11 +01:00
Andreas Schultz
e3a977e40a [wtp] rework wtp_radio_setconfiguration
no functional changes, only code shuffeling:
* move 802.11 IE handling into function
* rework deep if conditions to be simple
* reformat
2016-03-24 17:15:11 +01:00
Andreas Schultz
730f110a25 [wtp] implement vendor specific elements 2016-03-24 17:15:11 +01:00
Andreas Schultz
471d1058c4 [wtp] prepare message elements for vendor element handling
convert message element type into a struct{ vendor, type }.
Vendor will be 0 for all RFC types.
2016-03-08 10:21:51 +01:00
Andreas Schultz
140be9b143 simplify element list handling
Doing all the work to create a list element only to fail when we can
not decode the element is a waste of effort.
Decode the element first and only on success handle the list operations.
2016-03-07 18:25:49 +01:00
Andreas Schultz
38f7681608 constify capwap_message_elements_ops 2016-03-07 18:25:49 +01:00
Andreas Schultz
627a38a556 move the category setting into the element ops
this prepares the element ops for decoding vendor
ies into seperate types.

It also makes sense to keep all information about a IE
in one place.
2016-03-07 18:09:13 +01:00
Andreas Schultz
1436fc9e5f rename overly verbose capwap_message_elements_ops
The struct is already conveys the scope of the operations,
repeating it in the name of ops again is redundant and
bloats the resulting source code.

Rename the opt to shorter versions.
2016-03-07 17:12:48 +01:00
Andreas Schultz
78a8a75c6b start 802.11n 2016-03-07 16:23:49 +01:00
Andreas Schultz
1d95a62061 upgrade version to v1.1.0 2016-03-07 15:40:32 +01:00
Andreas Schultz
667d7a59e7 transition to WolfSSL API
Rename all remaining CyaSSL API references to WolfSSL.
Newer WolfSSL have significant DTLS fixes and security
improvements. Continuing to support old CyaSSL releases
would impact the perfomance of encrypted WTP sessions.
2016-03-07 15:32:36 +01:00
Andreas Schultz
94d6702d9a upgrade WolfSSL dependency to 3.8.0 for DTLS fixes 2016-03-07 15:22:06 +01:00
Andreas Schultz
f732261226 update README 2016-03-07 15:20:19 +01:00
Andreas Schultz
d366a98717 add support for new NL80211_ATTR_IFACE_SOCKET_OWNER netlink attribute 2016-03-07 14:45:43 +01:00
Andreas Schultz
973bf5eab7 disable IPv6 on WTP AP interface 2016-03-04 18:39:08 +01:00
Andreas Schultz
58741d302f update CAPWAP support kernel patch
reduce debug output, only report ono-IPv4 packets.
2016-03-04 17:08:37 +01:00
Andreas Schultz
0175052cf1 set transport header when injecting 802.3 frames
Resetting the headers is not enoug, we have to make sure
the transport header points the right position and the
skb->protocol is initialized to the payload protocol.
2016-03-04 17:05:56 +01:00
Andreas Schultz
5f98005414 handle WTP QoS IE 2016-03-04 17:04:21 +01:00
Andreas Schultz
d93cd1044d reformat WTP config file reader 2016-03-03 16:44:56 +01:00
Andreas Schultz
2b489947c2 add support for setting the STA WME fields from WMM 2016-03-03 16:44:15 +01:00
Andreas Schultz
4d56938321 reindent ieee80211_retrieve_information_elements_position 2016-03-03 15:27:29 +01:00
Andreas Schultz
d68bc01d00 change supportedrates config setting to the actual MBit value
supportedrates is now a list instead on an array and float values
(e.g. 5.5) are permited.
2016-03-03 08:59:49 +01:00
Andreas Schultz
8dc30ae3c4 rework socket and discovery handling
Swtich sockets to connected when talking to a specific AC. Use
unconnected UDP sockets only during DISCOVERY.

In JOIN, we need send our local address. The old, routing table
based local address discovery is broken for many reasons (VRF,
policy routing, ...). With a connected socket, we can the same
information with a simple getsockname.

During DISCOVERY we are talking to all potential AC's at once.
So using an unconnected socket makes still sense.
2016-03-02 15:13:56 +01:00
Andreas Schultz
067eb8d11a remove socket.o reference from kernel build 2016-02-29 15:45:23 +01:00
Andreas Schultz
484002b3e6 add support for CAPWAP IEEE 802.11 Information Element to AssocResponse 2016-02-29 15:30:54 +01:00
Andreas Schultz
a85f07f18a change buffer data type in hexdump logging to unsigned char 2016-02-29 15:30:19 +01:00
Andreas Schultz
e4a5abba65 add support for CAPWAP IEEE 802.11 Information Element 2016-02-29 14:32:02 +01:00
Andreas Schultz
9fee37a994 rework wifi type and rate logic
Hard coding basic rates is wrong. Each Wifi types does expect
some default basic rates. However those rates are not set in
stone and the AC is permited to set then to whatever it deems
ok. This might prevent client from connecting, but it still is
the AC decission to do so.

This is first step towards a more flexible basic rate handling.
2016-02-29 14:26:13 +01:00
Andreas Schultz
3bfd0c5642 logging: add alternate log syntax 2016-02-29 14:23:58 +01:00
Andreas Schultz
c66dc85c04 add hexdump log formater 2016-02-29 14:23:41 +01:00
Andreas Schultz
47b18b3763 update kernel support patch 2016-02-25 12:40:35 +01:00
Andreas Schultz
b80073b756 inject 802.11 frames through the normal device queue 2016-02-25 12:39:19 +01:00
Andreas Schultz
0c19932b58 send 802.3 frames through the normal device TX path
Injecting 802.11 frames underneath the device logic bypasses
the queue logik and leads to delay. Pass 802.3 frames through
the normal device TX chain.

This has the added benefit that AF_PACKET sockets (e.g. tcpdump)
see the send frames.
2016-02-22 16:56:03 +01:00
Andreas Schultz
f3119eec8d rework kernel socket handling to use udp tunnel infrastructure
Reimplmenting what is already there doesn't make sense. Switch
to the existing and UDP tunnel support code and handle the data
channel as a connected UDP socket
2016-02-22 16:54:54 +01:00
Andreas Schultz
cc5b38f322 impelment station binding to wlanid
* add a kernel bash hash list to track station to
  radio and wlan id binding
* enforce binding on recv
* configure binding through netlink interface from
  WTP process
2016-02-18 19:36:22 +01:00
Andreas Schultz
a6d0efe91a wtp: rework kernel socket handling
Switch to a connected UDP kernel socket. Comparing the
local and remote IPs is no longer required and handling
different IP versions and UDP types is automatic.

The WTP logic needs to reopen the socket on demand now.
2016-02-18 15:06:39 +01:00
Andreas Schultz
cae859e42f [debug] add debug trace logging for some procedures 2016-02-17 11:56:03 +01:00
Andreas Schultz
c71a9db6ed remove IEEE 802.11 WTP Radio Information from responses
RFC 5416 does require IEEE 802.11 WTP Radio Information for
Discovery and Join Response Messages in Chapter 5. However
Chapter 6.25 indicates that this IE should only be included
in the request messages.
2016-02-17 11:52:59 +01:00
Andreas Schultz
3a9a673d71 register pernet support befor anything else 2016-02-08 17:33:31 +01:00
Andreas Schultz
1ee42c1881 unsigned long is 64bit on some platforms, use the 32bit datatype instead 2016-02-08 17:33:00 +01:00
Andreas Schultz
f6711c3b14 Vendor Payload can appear multiple times, make it a list element 2016-02-08 17:31:40 +01:00
Andreas Schultz
385832a010 start with network namespace support
This is incomplete. There are several places left where a global
variable is used (e.g. there can only be one AC session).
2016-02-05 17:43:15 +01:00
Andreas Schultz
69ca3d3256 change __genl_const to const
__genl_const was depreciated some time ago.
2016-02-05 17:42:43 +01:00