diff --git a/sulu/sulu-vendorext/files/etc/init.d/hmg_ap_to_mld_creds_sync b/sulu/sulu-vendorext/files/etc/init.d/hmg_ap_to_mld_creds_sync deleted file mode 100755 index 7e0c72d0e..000000000 --- a/sulu/sulu-vendorext/files/etc/init.d/hmg_ap_to_mld_creds_sync +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh /etc/rc.common -START=97 -USE_PROCD=1 - -# Function to find the first available MLD ID -find_available_mld_id() { - # Get all MLD sections and their IDs - for mld in $(uci show mapcontroller | grep "^mapcontroller.@mld\[" | cut -d'=' -f1); do - mld_id=$(uci -q get "$mld.id") - [ -z "$mld_id" ] && continue - - # Check if any AP is using this MLD ID - mld_in_use=0 - for ap in $(uci show mapcontroller | grep "^mapcontroller.@ap\[" | cut -d'=' -f1); do - ap_mld_id=$(uci -q get "$ap.mld_id") - if [ "$ap_mld_id" = "$mld_id" ]; then - mld_in_use=1 - break - fi - done - - # If no AP is using this MLD ID, it's available - if [ "$mld_in_use" -eq 0 ]; then - echo "$mld_id" - return 0 - fi - done - - # If we get here, no available MLD ID was found - return 1 -} - -start_service() { - # --- STEP 1: process fronthaul APs with mld_id --- - mld_ids=$(uci show mapcontroller | grep "^mapcontroller.@ap\[" | cut -d'=' -f1 | while read -r ap; do - [ "$(uci -q get "$ap.type")" = "fronthaul" ] || continue - uci -q get "$ap.mld_id" - done | sort -u | grep -v '^$') - - for mld_id in $mld_ids; do - ap_list="" - ssid_ref="" - key_ref="" - ssid_mismatch=0 - - # collect all fronthaul APs with this mld_id - for ap in $(uci show mapcontroller | grep "^mapcontroller.@ap\[" | cut -d'=' -f1); do - [ "$(uci -q get "$ap.type")" = "fronthaul" ] || continue - cur_id=$(uci -q get "$ap.mld_id") - [ "$cur_id" = "$mld_id" ] || continue - - cur_ssid=$(uci -q get "$ap.ssid") - cur_key=$(uci -q get "$ap.key") - ap_list="$ap_list $ap" - - if [ -z "$ssid_ref" ]; then - ssid_ref="$cur_ssid" - key_ref="$cur_key" - elif [ "$cur_ssid" != "$ssid_ref" ]; then - ssid_mismatch=1 - fi - done - - if [ "$ssid_mismatch" -eq 1 ]; then - for ap in $ap_list; do - logger -t mldsync "Removing mld_id from $ap due to SSID mismatch" - uci -q delete "$ap.mld_id" - done - else - for mld in $(uci show mapcontroller | grep "^mapcontroller.@mld\[" | cut -d'=' -f1); do - [ "$(uci -q get "$mld.id")" = "$mld_id" ] || continue - logger -t mldsync "Updating $mld with ssid=$ssid_ref and key=$key_ref" - uci -q set "$mld.ssid=$ssid_ref" - uci -q set "$mld.key=$key_ref" - done - fi - done - - # --- STEP 2: handle fronthaul APs with no mld_id but same SSID --- - for ssid in $(uci show mapcontroller | grep "^mapcontroller.@ap\[" | cut -d'=' -f1 | while read -r ap; do - [ "$(uci -q get "$ap.type")" = "fronthaul" ] || continue - [ -z "$(uci -q get "$ap.mld_id")" ] || continue - uci -q get "$ap.ssid" - done | sort | uniq); do - ap_group="" - key_ref="" - count=0 - - for ap in $(uci show mapcontroller | grep "^mapcontroller.@ap\[" | cut -d'=' -f1); do - [ "$(uci -q get "$ap.type")" = "fronthaul" ] || continue - [ "$(uci -q get "$ap.ssid")" = "$ssid" ] || continue - [ -z "$(uci -q get "$ap.mld_id")" ] || continue - ap_group="$ap_group $ap" - key_ref=$(uci -q get "$ap.key") - count=$((count + 1)) - done - - [ "$count" -lt 2 ] && continue - - # Find first available MLD ID - available_mld_id=$(find_available_mld_id) - if [ -z "$available_mld_id" ]; then - logger -t mldsync "Warning: No available MLD ID found for SSID group: $ssid" - continue - fi - - # Assign the available MLD ID to all APs in the group - for ap in $ap_group; do - logger -t mldsync "Assigning mld_id=$available_mld_id to $ap (ssid=$ssid)" - uci -q set "$ap.mld_id=$available_mld_id" - done - - # Update the corresponding MLD section - for mld in $(uci show mapcontroller | grep "^mapcontroller.@mld\[" | cut -d'=' -f1); do - [ "$(uci -q get "$mld.id")" = "$available_mld_id" ] || continue - logger -t mldsync "Updating $mld with ssid=$ssid and key=$key_ref (from unassigned group)" - uci -q set "$mld.ssid=$ssid" - uci -q set "$mld.key=$key_ref" - done - done - - uci -q commit mapcontroller -} - -service_triggers() { - procd_add_reload_trigger "mapcontroller" -}