meta-digi/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/virtwlans

47 lines
1.6 KiB
Bash

#!/bin/sh
#
# Copyright (C) 2017-2024, Digi International Inc.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at http://mozilla.org/MPL/2.0/.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
[ "$IFACE" = "wlan1" ] || exit 0
check_virtual_wlan_macs() {
# Check for default MAC addresses
if [ -s "/proc/device-tree/wireless/mac-address1" ] &&
[ -s "/proc/device-tree/wireless/mac-address2" ] &&
[ -s "/proc/device-tree/wireless/mac-address3" ]; then
:
else
echo "[WARN] Using default MAC addresses for virtual interfaces, please program them referring to the Digi U-Boot Documentation"
fi
}
if [ "$MODE" = "start" ]; then
# On ccmp1, there are not virtual wireless MACs, so skip the verification.
if ! grep -qs '\<digi,ccmp[1-2]\>' /proc/device-tree/compatible; then
check_virtual_wlan_macs
fi
if [ ! -d "/sys/class/net/wlan1" ]; then
# This will create a second wireless network device
iw dev wlan0 interface add wlan1 type __ap
fi
elif [ "$MODE" = "stop" ]; then
if [ -d "/sys/class/net/wlan1" ]; then
# Delete the wlan1 interface once it's down
iw dev wlan1 del
fi
fi