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:
parent
1267f048da
commit
0de28706ca
2 changed files with 21 additions and 1 deletions
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
|||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=base-files
|
||||
PKG_RELEASE:=75
|
||||
PKG_RELEASE:=76
|
||||
|
||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||
PKG_BUILD_DEPENDS:=opkg/host
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue