feat: Seamless WiFi roaming — unified SSID/key + 802.11r/k/v
Private WiFi: unified SSID "Parahub" with shared key "parahub.io" across all nodes (was per-node random SSID/key, breaking roaming). Added 802.11r (Fast BSS Transition ~50ms), 802.11k (neighbor AP reports), 802.11v (AP-assisted roaming) with local FT key generation (no inter-node key sync needed). Mesh backhaul ID renamed from "parahub-mesh" to "parahub.io/mesh". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,8 +21,8 @@ BASE_MAC=$(cat /sys/class/net/br-lan/address 2>/dev/null || cat /sys/class/net/e
|
||||
NODE_SUFFIX=$(echo "$BASE_MAC" | awk -F: '{print toupper($5$6)}')
|
||||
|
||||
HOSTNAME="Parahub-${NODE_SUFFIX}"
|
||||
PRIVATE_SSID="Parahub_${NODE_SUFFIX}"
|
||||
MESH_ID="parahub-mesh"
|
||||
PRIVATE_SSID="Parahub"
|
||||
MESH_ID="parahub.io/mesh"
|
||||
PUBLIC_SSID="parahub.io/free"
|
||||
|
||||
# ============================================================================
|
||||
@@ -52,7 +52,8 @@ GUEST_IP="10.${GUEST_O1}.${GUEST_O2}.1"
|
||||
# 3. KEY GENERATION
|
||||
# ============================================================================
|
||||
|
||||
PRIVATE_KEY=$(head -c 128 /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 12)
|
||||
# Shared private WiFi key — same on all nodes for seamless 802.11r roaming
|
||||
PRIVATE_KEY="parahub.io"
|
||||
# Shared mesh SAE key — same across all Parahub nodes for auto-peering
|
||||
MESH_KEY="ndIPclyqSn9LaCki"
|
||||
|
||||
@@ -337,7 +338,7 @@ set wireless.mesh_5g.key='${MESH_KEY}'
|
||||
set wireless.mesh_5g.network='bat0_hardif_mesh1'
|
||||
WIFI_5G_MESH
|
||||
|
||||
# Private AP on 5GHz (better throughput)
|
||||
# Private AP on 5GHz (better throughput, 802.11r/k/v for seamless roaming)
|
||||
uci batch <<-WIFI_5G_PRIV
|
||||
set wireless.private_5g=wifi-iface
|
||||
set wireless.private_5g.device='${RADIO_5G}'
|
||||
@@ -346,6 +347,12 @@ set wireless.private_5g.ssid='${PRIVATE_SSID}'
|
||||
set wireless.private_5g.encryption='sae'
|
||||
set wireless.private_5g.key='${PRIVATE_KEY}'
|
||||
set wireless.private_5g.network='private'
|
||||
set wireless.private_5g.ieee80211r='1'
|
||||
set wireless.private_5g.ft_over_ds='0'
|
||||
set wireless.private_5g.ft_psk_generate_local='1'
|
||||
set wireless.private_5g.mobility_domain='pa01'
|
||||
set wireless.private_5g.ieee80211k='1'
|
||||
set wireless.private_5g.ieee80211v='1'
|
||||
WIFI_5G_PRIV
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user