base-files: implement a generic mechanism to map per-interface sysctls to uci. - option ipv4_xyz is mapped to /proc/sys/net/ipv4/{conf,neigh}/xyz - option ipv6_xyz is mapped to /proc/sys/net/ipv6/{conf,neigh}/xyz This allows e.g. "option ipv6_proxy_ndp 1" to enable NDP proxying on wan. Fixes ticket #8699.

SVN-Revision: 27653
This commit is contained in:
Jo-Philipp Wich
2011-07-17 17:10:30 +00:00
parent 1267f048da
commit 0de28706ca
2 changed files with 21 additions and 1 deletions

View File

@@ -9,6 +9,23 @@ do_sysctl() {
sysctl -n -e "$1"
}
map_sysctls() {
local cfg="$1"
local ifn="$2"
local fam
for fam in ipv4 ipv6; do
if [ -d /proc/sys/net/$fam ]; then
local key
for key in /proc/sys/net/$fam/*/$ifn/*; do
local val
config_get val "$cfg" "${fam}_${key##*/}"
[ -n "$val" ] && echo -n "$val" > "$key"
done
fi
done
}
find_config() {
local iftype device iface ifaces ifn
for ifn in $interfaces; do
@@ -156,6 +173,9 @@ prepare_interface() {
ifconfig "$iface" down
ifconfig "$iface" hw ether "$vifmac" up
}
# Apply sysctl settings
map_sysctls "$config" "$iface"
}
# Setup VLAN interfaces