summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTil Kaiser2024-11-22 14:20:10 +0000
committerRobert Marko2025-10-06 17:06:26 +0000
commit055d877a207afa6a270c6bee7e7f92969a41d66e (patch)
tree8d6426ae1a364d43067ddff1cdfa15e0e30e52ba
parent8edcd772db0086898b09d73d359bdc9d96b241ba (diff)
downloadopenwrt-055d877a207afa6a270c6bee7e7f92969a41d66e.tar.gz
base-files: add ucidef_set_interface_netdev_range function
The ucidef_set_interface* functions can be used to add network interfaces to a default network configuration. Such network interfaces often have the same base interface name (e.g., eth* or lan*). On devices with many network ports, adding all ports to the default config can become inconvenient. This commit adds a new uci function ucidef_set_interface_netdev_range, which adds network interfaces for a specific port range to a given OpenWrt interface. The first parameter is the OpenWrt interface, the second is the base interface name, the third is the port start, and the fourth is the port end range. Signed-off-by: Til Kaiser <mail@tk154.de> Link: https://github.com/openwrt/openwrt/pull/17251 Signed-off-by: Robert Marko <robimarko@gmail.com>
-rw-r--r--package/base-files/files/lib/functions/uci-defaults.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 5293ce12c0..f77ce4ab27 100644
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -771,6 +771,27 @@ ucidef_add_wlan() {
ucidef_wlan_idx="$((ucidef_wlan_idx + 1))"
}
+ucidef_set_interface_netdev_range() {
+ local interface="$1"
+ local base_netdev="$2"
+ local start="$3"
+ local stop="$4"
+ local netdevs
+ local i
+
+ if [ "$stop" -ge "$start" ]; then
+ i="$start"
+ netdevs="$base_netdev$i"
+
+ while [ "$i" -lt "$stop" ]; do
+ i=$((i + 1))
+ netdevs="$netdevs $base_netdev$i"
+ done
+
+ ucidef_set_interface "$interface" device "$netdevs"
+ fi
+}
+
board_config_update() {
json_init
[ -f ${CFG} ] && json_load "$(cat ${CFG})"