project/usteer.git
2 years agopolicy: avoid creating kick loop for client
David Bauer [Sun, 3 Oct 2021 13:53:25 +0000 (15:53 +0200)]
policy: avoid creating kick loop for client

When checking whether a client is allowed to associate to a node, the
lower ceiling for kicking clients was not taken into account when
assoc-steering is disabled.

The problem behind this is, that a configured lower barrier for
disassociating clients (kicking) would kick the client immediatly after
association. In the worst scenario the client immediatly associates
again to the station and ends up in a kick loop.

Don't allow associating when a min_snr is configured and the client
signal is below this value.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agosta: add sta_connection_state enum
David Bauer [Mon, 27 Sep 2021 17:35:55 +0000 (19:35 +0200)]
sta: add sta_connection_state enum

Make the connection state of a sta-info more readable by introducing an
enum for the STA connection state.

Also switch come comparison cases to use the explicit enum values to
make the code more readable.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoremote: include node BSSID into messages
David Bauer [Tue, 21 Sep 2021 14:41:23 +0000 (16:41 +0200)]
remote: include node BSSID into messages

Add the node BSSID to messages exchanged between usteer hosts. This way,
a foreign node can determine the node reported by a STA using beacon
reports.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agousteer: add BSSID to node struct
David Bauer [Tue, 21 Sep 2021 14:02:16 +0000 (16:02 +0200)]
usteer: add BSSID to node struct

Add the node BSSID to the usteer_node struct. This will be helpful in
the future when evaluating beacon reports from STAs.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoremote: fix memory leak on host removal
David Bauer [Sun, 5 Sep 2021 16:05:49 +0000 (18:05 +0200)]
remote: fix memory leak on host removal

The host address is allocated on the heap, hence it has to be freed when
freeing the containing struct.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoremote: fix incorrect use of strcmp result
David Bauer [Sun, 5 Sep 2021 16:03:21 +0000 (18:03 +0200)]
remote: fix incorrect use of strcmp result

When checking if the hostaddresses match up, the result returned from
strcmp was incorrectly evaluated. strcmp returns 0 in case both strings
match.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agogitignore: add .patch files
David Bauer [Tue, 7 Sep 2021 18:55:51 +0000 (20:55 +0200)]
gitignore: add .patch files

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agogitignore: add vscode directory
David Bauer [Sun, 5 Sep 2021 00:44:32 +0000 (02:44 +0200)]
gitignore: add vscode directory

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agocontrib: add libpcap build dependency
David Bauer [Sun, 15 Nov 2020 20:48:32 +0000 (21:48 +0100)]
contrib: add libpcap build dependency

Add a build dependency for libpcap, as it is required for the monitor
utility but not usteer itself. Use a build-dependency, as the monitor
utility executable is not packaged.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agolocal-node: don't read pointer after clear
David Bauer [Tue, 21 Sep 2021 16:51:57 +0000 (18:51 +0200)]
local-node: don't read pointer after clear

The name pointer provided by ubus get's cleared after the first call to
ubus_register_subscriber in usteer_get_node. The leads to an incorrect
ifindex returned by if_nametoindex due to the 0 characters long string.

Work around this issue by reusing the interface name already stored in
the local node struct.

Fixes querying the wrong interface with netlink, resulting in incorrect
SSIDs used for the nodes.

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agousteer: add support for IPv6 remote exchange
Jan Braun [Sun, 5 Sep 2021 00:43:59 +0000 (02:43 +0200)]
usteer: add support for IPv6 remote exchange

This adds optional support for message exchange using IPv6 multicast
messaging. This has the ability for routers and switches between nodes
to route traffic between usteer nodes multicast-aware.

By default, IPv4 is used. IPv6 can be enabled by configuring the ipv6
option to 1.

Signed-off-by: Jan Braun <keksgesicht23@gmail.com>
[squash commits - adapt usock usage]
Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agoremote: use port macro for destination port
David Bauer [Wed, 8 Sep 2021 07:53:26 +0000 (09:53 +0200)]
remote: use port macro for destination port

Signed-off-by: David Bauer <mail@david-bauer.net>
2 years agomain: add a command line option for dumping remote node data
Felix Fietkau [Wed, 7 Jul 2021 09:37:50 +0000 (11:37 +0200)]
main: add a command line option for dumping remote node data

Run for a given number of seconds and dump all found remote hosts/nodes as
JSON data

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoconfig: reduce remote node timeout to 10 update intervals
Felix Fietkau [Tue, 6 Jul 2021 17:50:02 +0000 (19:50 +0200)]
config: reduce remote node timeout to 10 update intervals

Even when there are network issues, we shouldn't keep stale data
around for so long

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoadd support for defining global host info
Felix Fietkau [Tue, 6 Jul 2021 17:44:01 +0000 (19:44 +0200)]
add support for defining global host info

Change the '*' in the node info update cmd to refer to host info instead

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoubus: add support for getting a list of remote hosts
Felix Fietkau [Tue, 6 Jul 2021 17:23:59 +0000 (19:23 +0200)]
ubus: add support for getting a list of remote hosts

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoremote: track remote hosts as a separate data structure
Felix Fietkau [Tue, 6 Jul 2021 17:14:36 +0000 (19:14 +0200)]
remote: track remote hosts as a separate data structure

Will be used to track host info

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorename script_data to node_info
Felix Fietkau [Tue, 6 Jul 2021 12:29:24 +0000 (14:29 +0200)]
rename script_data to node_info

It's a more descriptive name, and we will have host_info later as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agorename a few functions in preparation for renaming script_data to node_info
Felix Fietkau [Tue, 6 Jul 2021 12:28:28 +0000 (14:28 +0200)]
rename a few functions in preparation for renaming script_data to node_info

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoubus: add api for modifying node script data
Felix Fietkau [Tue, 6 Jul 2021 08:29:20 +0000 (10:29 +0200)]
ubus: add api for modifying node script data

This is replicated across nodes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoubus: display script data when dumping node info
Felix Fietkau [Mon, 5 Jul 2021 13:51:10 +0000 (15:51 +0200)]
ubus: display script data when dumping node info

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 years agoconfig: check for empty ssid list
Felix Fietkau [Tue, 6 Jul 2021 09:00:35 +0000 (11:00 +0200)]
config: check for empty ssid list

Without this check, an empty ssid list array results in a config with no nodes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoopenwrt: add missing config handling for event log types
Felix Fietkau [Thu, 13 May 2021 14:10:33 +0000 (16:10 +0200)]
openwrt: add missing config handling for event log types

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomake list of steering-enabled SSIDs configurable
Felix Fietkau [Thu, 13 May 2021 14:06:16 +0000 (16:06 +0200)]
make list of steering-enabled SSIDs configurable

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoopenwrt: add documentation for uci options in the config file
Felix Fietkau [Wed, 12 May 2021 11:33:14 +0000 (13:33 +0200)]
openwrt: add documentation for uci options in the config file

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agorework log handling
Felix Fietkau [Fri, 16 Apr 2021 12:15:15 +0000 (14:15 +0200)]
rework log handling

- make logging events more structured
- add fine grained control over log events
- make it possible to receive more detailed events via ubus

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoopenwrt: fix path to daemon in init script
Felix Fietkau [Fri, 16 Apr 2021 12:29:12 +0000 (14:29 +0200)]
openwrt: fix path to daemon in init script

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agopolicy: always accept assoc requests by default
Felix Fietkau [Mon, 12 Apr 2021 10:14:05 +0000 (12:14 +0200)]
policy: always accept assoc requests by default

Only steer using probe responses to avoid connection issues

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agopolicy: always accept auth requests
Felix Fietkau [Mon, 12 Apr 2021 10:10:17 +0000 (12:10 +0200)]
policy: always accept auth requests

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoMerge pull request #1 from thuehn/patch-1
John Crispin [Thu, 19 Nov 2020 20:37:44 +0000 (21:37 +0100)]
Merge pull request #1 from thuehn/patch-1

[fix] binary file name should be usteerd

3 years ago[fix] binary file name should be usteerd
Dr.-Ing. Thomas Hühn [Thu, 19 Nov 2020 15:46:12 +0000 (16:46 +0100)]
[fix] binary file name should be usteerd

the binary file name to be copied while install it in the OpenWrt package should be usteerd not usteer

3 years agousteer: Initial import
Felix Fietkau [Wed, 21 Mar 2018 15:40:05 +0000 (16:40 +0100)]
usteer: Initial import

Signed-off-by: Felix Fietkau <nbd@nbd.name>