Changeset 27653


Ignore:
Timestamp:
2011-07-17T19:10:30+02:00 (7 years ago)
Author:
jow
Message:

[package] 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.

Location:
trunk/package/base-files
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/base-files/Makefile

    r27630 r27653  
    1111 
    1212PKG_NAME:=base-files 
    13 PKG_RELEASE:=75 
     13PKG_RELEASE:=76 
    1414 
    1515PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ 
  • trunk/package/base-files/files/lib/network/config.sh

    r27616 r27653  
    88                sysctl -n -e -w "$1=$2" >/dev/null || \ 
    99                sysctl -n -e "$1" 
     10} 
     11 
     12map_sysctls() { 
     13        local cfg="$1" 
     14        local ifn="$2" 
     15 
     16        local fam 
     17        for fam in ipv4 ipv6; do 
     18                if [ -d /proc/sys/net/$fam ]; then 
     19                        local key 
     20                        for key in /proc/sys/net/$fam/*/$ifn/*; do 
     21                                local val 
     22                                config_get val "$cfg" "${fam}_${key##*/}" 
     23                                [ -n "$val" ] && echo -n "$val" > "$key" 
     24                        done 
     25                fi 
     26        done 
    1027} 
    1128 
     
    157174                        ifconfig "$iface" hw ether "$vifmac" up 
    158175                } 
     176 
     177                # Apply sysctl settings 
     178                map_sysctls "$config" "$iface" 
    159179        } 
    160180 
Note: See TracChangeset for help on using the changeset viewer.