Commit Graph

425 Commits

Author SHA1 Message Date
Andreas Schultz 067f920d81 reformat some overly long code lines 2016-03-29 11:48:28 +02:00
Tobias Hintze ad27e80521 Merge pull request #2 from nm-mrt/dns-support
Handle no DNS at system start
2016-03-25 13:16:20 +01:00
Moritz Rosenthal f9bb716dac Changed name of addr_capwap.socket to addr_capwap.sockaddr
Changed FQDN size from 128 to 256 according to RFC1035
2016-03-25 12:41:43 +01:00
Tobias Hintze f0a7b848f4 whitespace fix 2016-03-24 17:15:12 +01:00
Andreas Schultz ea87da11ba [wtp] use goto error exit instead of deep nested if conditions
Convert WTP main() function to linux kernel style goto error exits.
2016-03-24 17:15:12 +01:00
Andreas Schultz 3b7c0adda7 [wtp] move overly deep indented wtp descriptor config parser into function 2016-03-24 17:15:12 +01:00
Andreas Schultz aa5af8056b [wtp] move overly deep indented config parser into function 2016-03-24 17:15:12 +01:00
Andreas Schultz fbe31bda21 rename variable to avoid potential type clash 2016-03-24 17:15:12 +01:00
Andreas Schultz 8e0b88cc4e [wtp] update config for 802.11n support 2016-03-24 17:15:12 +01:00
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
Moritz Rosenthal 7b9f515bd7 If there is no DNS available on system start the capwap-wtp will stop while evaluating the configuration. I fixed that by checking if the address was yet translated on every address access. If not a DNS request is started before continuing. 2016-03-24 07:09:29 +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