ucentral: development update

* another huge data model v2 update

Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2021-05-16 16:40:06 +02:00
parent 0b9087bd44
commit 5a941a18d1
23 changed files with 553 additions and 36 deletions

View File

@@ -6,7 +6,7 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/ucentral-client.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-02-15
PKG_SOURCE_VERSION:=7abb7afa812e47dd6d19912ceb826abfb6f84bad
PKG_SOURCE_VERSION:=f90775e85fcfda8480cd1d3dca9ca44f71cb9807
PKG_LICENSE:=BSD-3-Clause
PKG_MAINTAINER:=John Crispin <john@phrozen.org>

View File

@@ -1,7 +1,5 @@
config stats stats
option clients 1
option ssid 1
option lldp 1
option interval 600
config health health
option interval 600
option interval 120

View File

@@ -3,7 +3,7 @@
START=99
USE_PROCD=1
PROG=/usr/share/ucentral/ucentral.uc
PROG=/usr/share/ucentral/state.uc
service_triggers() {
procd_add_reload_trigger ustats
@@ -23,6 +23,6 @@ start_service() {
config_get interval 'health' 'interval' 0
[ "$interval" -eq 0 ] || {
ubus call ucentral config '{"health": $interval }'
ubus call ucentral config '{"health": '$interval' }'
}
}

View File

@@ -0,0 +1,45 @@
{
"uuid": 1,
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"services": [ "dhcp-snooping" ],
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "LAN",
"role": "downstream",
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
],
"metrics": {
"dhcp-snooping": {
"filters": [ "ack", "discover", "offer", "request", "solicit", "reply", "renew" ]
}
}
}

View File

@@ -0,0 +1,46 @@
{
"uuid": 1,
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"services": [ "igmp" ],
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "LAN",
"role": "downstream",
"services": [ "igmp" ],
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
],
"services": {
"igmp": {
"enable": true
}
}
}

View File

@@ -0,0 +1,47 @@
{
"uuid": 1,
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"services": [ "lldp" ],
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "LAN",
"role": "downstream",
"services": [ "lldp" ],
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
],
"services": {
"lldp": {
"describe": "uCentral",
"location": "universe"
}
}
}

View File

@@ -1,4 +1,5 @@
{
"uuid": 1,
"radios": [
{
"band": "6G",
@@ -38,6 +39,7 @@
{
"name": "LAN",
"role": "downstream",
"services": [ "http" ],
"ethernet": [
{
"select-ports": [
@@ -73,5 +75,10 @@
}
]
}
]
],
"services": {
"http": {
"http-port": 80
}
}
}

View File

@@ -0,0 +1,78 @@
{
"uuid": 1,
"radios": [
{
"band": "6G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
},
{
"band": "5G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
},
{
"band": "2G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
}
],
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"tunnel": {
"proto": "mesh"
},
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
},
"ssids": [
{
"name": "Maverick",
"wifi-bands": [
"5G"
],
"bss-mode": "mesh",
"encryption": {
"proto": "psk2",
"key": "aaaaaaaa",
"ieee80211w": "optional"
}
}
]
},
{
"name": "LAN",
"role": "downstream",
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
]
}

View File

@@ -0,0 +1,48 @@
{
"uuid": 1,
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "LAN",
"role": "downstream",
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
],
"metrics": {
"statistics": {
"interval": 120,
"types": [ "ssids", "lldp", "clients" ]
},
"health": {
"interval": 120
}
}
}

View File

@@ -1,4 +1,5 @@
{
"uuid": 1,
"radios": [
{
"band": "6G",

View File

@@ -0,0 +1,50 @@
{
"uuid": 1,
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"services": [ "igmp" ],
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "LAN",
"role": "downstream",
"services": [ "igmp" ],
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
}
}
],
"services": {
"ssh": {
"port": 22,
"authorized-keys": [
"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP/JpJ/KHtKKImzISBDwLO0/EwytIr4pGZQXcP6GCSHchLMyfjf147KNlF9gC+3FibzqKH02EiQspVhRgfuK6y0= alice@home"
],
"password-authentication": false
}
}
}

View File

@@ -1,4 +1,5 @@
{
"uuid": 1,
"radios": [
{
"band": "6G",

View File

@@ -0,0 +1,94 @@
{
"uuid": 1,
"radios": [
{
"band": "6G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
},
{
"band": "5G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
},
{
"band": "2G",
"country": "CA",
"channel-mode": "HE",
"channel-width": 80
}
],
"interfaces": [
{
"name": "WAN",
"role": "upstream",
"ethernet": [
{
"select-ports": [
"WAN*"
]
}
],
"ipv4": {
"addressing": "dynamic"
}
},
{
"name": "VXLAN",
"role": "upstream",
"vlan": {
"id": 100
},
"tunnel": {
"proto": "vxlan",
"peer-address": "192.168.178.9",
"peer-port": 4789
},
"ipv4": {
"addressing": "static",
"subnet": "10.0.0.1/24"
}
},
{
"name": "LAN",
"role": "downstream",
"ethernet": [
{
"select-ports": [
"LAN*"
]
}
],
"ipv4": {
"addressing": "static",
"subnet": "192.168.1.1/24",
"dhcp": {
"lease-first": 10,
"lease-count": 100,
"lease-time": "6h"
}
},
"ssids": [
{
"name": "Maverick",
"wifi-bands": [
"5G",
"2G"
],
"bss-mode": "ap",
"encryption": {
"proto": "none",
"ieee80211w": "optional"
},
"roaming": {
"message-exchange": "ds",
"generate-psk": true
}
}
]
}
]
}

View File

@@ -17,3 +17,6 @@ config_foreach section_del dhcp dhcp
config_load firewall
config_foreach section_del zone firewall
config_foreach section_del forwarding firewall
config_load igmpproxy
config_foreach section_del phyint igmpproxy

View File

@@ -4,4 +4,3 @@ uci set rtty.@rtty[-1].id=$(cat /sys/class/net/eth0/address | tr -d :)
uci set rtty.@rtty[-1].description="$(cat /tmp/sysinfo/model)"
uci set rtty.@rtty[-1].ssl=1
uci set rtty.@rtty[-1].port='5912'
uci commit rtty

View File

@@ -1,8 +1,2 @@
#!/bin/sh
uci set uhttpd.main.listen_http=''
uci set uhttpd.main.listen_https=''
uci set rtty.@rtty[-1].id=$(cat /sys/class/net/eth0/address | tr -d :)
uci set rtty.@rtty[-1].description="$(cat /tmp/sysinfo/model)"
uci set rtty.@rtty[-1].ssl=1
uci set rtty.@rtty[-1].port='5912'
uci commit rtty
uci delete uhttpd.main

View File

@@ -6,7 +6,7 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/ucentral-event.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-04-13
PKG_SOURCE_VERSION:=cc77fd23ed6b24739976a312b709834a4d73f1bf
PKG_SOURCE_VERSION:=58112ec4963d51232177df6aee5be7260dd8d8e5
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=BSD-3-Clause

View File

@@ -0,0 +1,2 @@
config event dhcp
option type dhcp

View File

@@ -6,7 +6,7 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/ucentral-schema.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-02-15
PKG_SOURCE_VERSION:=d32522a125ea5b3418fb5cf3992c963260bfbd97
PKG_SOURCE_VERSION:=c64a0eee031d24a458b2b6b112a3711b2634feac
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=BSD-3-Clause

View File

@@ -9,7 +9,7 @@ PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_SOURCE_URL=https://github.com/blogic/udhcpsnoop.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-04-12
PKG_SOURCE_VERSION:=85ee2f9dbc08482bde88ca1a8afbc50e9ccb99db
PKG_SOURCE_VERSION:=70938a8a23f8fcd46744ec9844b23e963d6a738c
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

View File

@@ -6,7 +6,7 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=https://git.openwrt.org/project/usteer.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-04-19
PKG_SOURCE_VERSION:=2b1c740ce33509b314c248eb191d21ba504160ba
PKG_SOURCE_VERSION:=dc383d43610cf441f865aa14d7e8ccd16301d53c
PKG_BUILD_PARALLEL:=1

View File

@@ -1,4 +1,111 @@
config usteer
# The network interface for inter-AP communication
option 'network' 'lan'
# Log messages to syslog (0/1)
option 'syslog' '1'
# Minimum level of logged messages
# 0 = fatal
# 1 = info
# 2 = verbose
# 3 = some debug messages
# 4 = network packet information
# 5 = all debug messages
option 'debug_level' '2'
# Maximum amount of time (ms) a station may be blocked due to policy decisions
#option sta_block_timeout 30000
# Maximum amount of time (ms) a local unconnected station is tracked
#option local_sta_timeout 120000
# Local station information update interval (ms)
#option local_sta_update 1000
# Maximum number of consecutive times a station may be blocked by policy
#option max_retry_band 5
# Maximum idle time of a station entry (ms) to be considered for policy decisions
#option seen_policy_timeout 30000
# Minimum number of stations delta between APs before load balancing policy is active
#option load_balancing_threshold 5
# Minimum number of stations delta between bands before band steering policy is active
#option band_steering_threshold 5
# Interval (ms) between sending state updates to other APs
#option remote_update_interval 1000
# Allow rejecting assoc requests for steering purposes (0/1)
#option assoc_steering 0
# Minimum signal-to-noise ratio or signal level (dBm) to allow connections
#option min_connect_snr 0
# Minimum signal-to-noise ratio or signal level (dBm) to remain connected
#option min_snr 0
# Minimum signal-to-noise ratio or signal level (dBm) before attempting to trigger
# client scans for roaming
#option roam_scan_snr 0
# Maximum number of client roaming scan trigger attempts
#option roam_scan_tries 3
# Minimum time (ms) between client roaming scan trigger attempts
#option roam_scan_interval 10000
# Minimum signal-to-noise ratio or signal level (dBm) before attempting to trigger
# forced client roaming
#option roam_trigger_snr 0
# Minimum time (ms) between client roaming trigger attempts
#option roam_trigger_interval 60000
# Timeout (in 100ms beacon intervals) for client roam requests
#option roam_kick_delay 100
# Minimum signal strength difference until AP steering policy is active
#option signal_diff_threshold 0
# Initial delay (ms) before responding to probe requests (to allow other APs to see packets as well)
#option initial_connect_delay 0
# Enable kicking client on excessive channel load (0/1)
#option load_kick_enabled 0
# Minimum channel load (%) before kicking clients
#option load_kick_threshold 75
# Minimum amount of time (ms) that channel load is above threshold before starting to kick clients
#option load_kick_delay 10000
# Minimum number of connected clients before kicking based on channel load
#option load_kick_min_clients 10
# Reason code on client kick based on channel load (default: WLAN_REASON_DISASSOC_AP_BUSY)
#option load_kick_reason_code 5
# Script to run after bringing up a node
#option node_up_script ''
# Message types to include in log
# Available types:
# - probe_req_accept
# - probe_req_deny
# - auth_req_accept
# - auth_req_deny
# - assoc_req_accept
# - assoc_req_deny
# - load_kick_trigger
# - load_kick_reset
# - load_kick_min_clients
# - load_kick_no_client
# - load_kick_client
# - signal_kick
#list event_log_types ''
# List of SSIDs to enable steering on
#list ssid_list ''

View File

@@ -1,19 +1,19 @@
From 370c5dd8d4f2ee66b231062653d2de4c2f2ecd69 Mon Sep 17 00:00:00 2001
From 4b8fbdd73b3da67eeffd9612642218a1b9dc417d Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Fri, 4 Dec 2020 16:29:35 +0100
Subject: [PATCH 19/21] lldp: add TIP tweaks
Subject: [PATCH 01/18] lldp: add TIP tweaks
Signed-off-by: John Crispin <john@phrozen.org>
---
.../network/services/lldpd/files/lldpd.config | 16 +---------------
package/network/services/lldpd/files/lldpd.init | 8 ++++++++
2 files changed, 9 insertions(+), 15 deletions(-)
.../network/services/lldpd/files/lldpd.config | 16 ----------------
package/network/services/lldpd/files/lldpd.init | 6 +++++-
2 files changed, 5 insertions(+), 17 deletions(-)
diff --git a/package/network/services/lldpd/files/lldpd.config b/package/network/services/lldpd/files/lldpd.config
index 5e7c51ba7e..66a1bfa197 100644
index 5e7c51ba7e..b37dda87bf 100644
--- a/package/network/services/lldpd/files/lldpd.config
+++ b/package/network/services/lldpd/files/lldpd.config
@@ -1,20 +1,6 @@
@@ -1,20 +1,4 @@
config lldpd config
- option enable_cdp 1
- option enable_fdp 1
@@ -33,10 +33,9 @@ index 5e7c51ba7e..66a1bfa197 100644
-
- # interfaces to listen on
- list interface "loopback"
+ list interface "wan"
list interface "lan"
- list interface "lan"
diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init
index 7a5b25e016..8200556786 100644
index 7a5b25e016..4f613ec664 100644
--- a/package/network/services/lldpd/files/lldpd.init
+++ b/package/network/services/lldpd/files/lldpd.init
@@ -10,6 +10,10 @@ LLDPSOCKET=/var/run/lldpd.socket
@@ -50,14 +49,12 @@ index 7a5b25e016..8200556786 100644
find_release_info()
{
[ -s /etc/os-release ] && . /etc/os-release
@@ -38,6 +42,10 @@ write_lldpd_conf()
@@ -37,7 +41,7 @@ write_lldpd_conf()
local iface ifnames=""
for iface in $ifaces; do
local ifname=""
if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then
+ if [ -e "/sys/class/net/$ifname/bridge" -o -e "/sys/class/net/$ifname/lower_bridge" ] ; then
+ local ports=$(jsonfilter -i /etc/board.json -e "@.network.$iface.ifname")
+ [ "${ports// /,}" ] && ifname="${ports// /,}"
+ fi
- if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then
+ if [ -e "/sys/class/net/$iface" ]; then
append ifnames "${ifname:-$iface}" ","
fi
done