diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index 875628f66a..c151bd4227 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2019-11-12 -PKG_SOURCE_VERSION:=e15147c272201eb17320c10ec95919e641bd03c5 -PKG_MIRROR_HASH:=af830967d3d9f20d8d3c01b1931e501e075984043e38c23ac649faced34e896a +PKG_SOURCE_DATE:=2020-06-06 +PKG_SOURCE_VERSION:=51e9fb8151e8f2c16ac1400bf4d64147ee7e8f5a +PKG_MIRROR_HASH:=d89b76cb28a4c15c044f1b11ae8bc3ef7087a49cafe3dfff191163c6641a74b5 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-tune b/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering similarity index 72% rename from package/network/config/netifd/files/etc/hotplug.d/net/20-smp-tune rename to package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering index ab9a90418e..8a86bf75f6 100644 --- a/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-tune +++ b/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering @@ -14,7 +14,7 @@ find_irq_cpu() { [ -n "$match" ] && { set -- $match shift - for cur in `seq 1 $NPROCS`; do + for cur in $(seq 1 $NPROCS); do [ "$1" -gt 0 ] && { cpu=$(($cur - 1)) break @@ -34,8 +34,8 @@ set_hex_val() { echo "$val" > "$file" } -default_ps="$(uci get "network.@globals[0].default_ps")" -[ -n "$default_ps" -a "$default_ps" != 1 ] && exit 0 +packet_steering="$(uci get "network.@globals[0].packet_steering")" +[ "$packet_steering" != 1 ] && exit 0 exec 512>/var/lock/smp_tune.lock flock 512 || exit 1 @@ -52,16 +52,16 @@ for dev in /sys/class/net/*; do irq_cpu="$(find_irq_cpu "$device")" irq_cpu_mask="$((1 << $irq_cpu))" - for q in ${dev}/queues/rx-*; do - set_hex_val "$q/rps_cpus" "$(($PROC_MASK & ~$irq_cpu_mask))" + for q in ${dev}/queues/tx-*; do + set_hex_val "$q/xps_cpus" "$PROC_MASK" done - ntxq="$(ls -d ${dev}/queues/tx-* | wc -l)" + # ignore dsa slave ports for RPS + subsys="$(readlink "${dev}/device/subsystem")" + subsys="$(basename "$subsys")" + [ "$subsys" = "mdio_bus" ] && continue - idx=$(($irq_cpu + 1)) - for q in ${dev}/queues/tx-*; do - set_hex_val "$q/xps_cpus" "$((1 << $idx))" - let "idx = idx + 1" - [ "$idx" -ge "$NPROCS" ] && idx=0 + for q in ${dev}/queues/rx-*; do + set_hex_val "$q/rps_cpus" "$PROC_MASK" done done diff --git a/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release b/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release new file mode 100644 index 0000000000..f1b384eecc --- /dev/null +++ b/package/network/config/netifd/files/etc/uci-defaults/14_migrate-dhcp-release @@ -0,0 +1,23 @@ +. /lib/functions.sh + +migrate_release() { + local config="$1" + local proto + local release + + config_get proto "$config" proto + config_get release "$config" release + + [ "$proto" = "dhcp" ] && [ -n "$release" ] && { + norelease="$((!$release))" + uci_set network "$config" norelease "$norelease" + uci_remove network "$config" release + } + +} + +config_load network +config_foreach migrate_release interface +uci commit network + +exit 0 diff --git a/package/network/config/netifd/files/lib/netifd/dhcp.script b/package/network/config/netifd/files/lib/netifd/dhcp.script index 00604f40e7..6585b641d6 100755 --- a/package/network/config/netifd/files/lib/netifd/dhcp.script +++ b/package/network/config/netifd/files/lib/netifd/dhcp.script @@ -46,10 +46,16 @@ setup_interface () { proto_add_dns_search "$i" done + # TODO: Deprecate timesvr in favor of timesrv + if [ -n "$timesvr" -a -z "$timesrv" ]; then + timesrv="$timesvr" + echo "Environment variable 'timesvr' will be deprecated; use 'timesrv' instead." + fi + proto_add_data [ -n "$ZONE" ] && json_add_string zone "$ZONE" [ -n "$ntpsrv" ] && json_add_string ntpserver "$ntpsrv" - [ -n "$timesvr" ] && json_add_string timeserver "$timesvr" + [ -n "$timesrv" ] && json_add_string timeserver "$timesrv" [ -n "$hostname" ] && json_add_string hostname "$hostname" [ -n "$message" ] && json_add_string message "$message" [ -n "$timezone" ] && json_add_int timezone "$timezone" diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh index 0d06eba06e..3034b2ba68 100755 --- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh +++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh @@ -14,7 +14,7 @@ proto_dhcp_init_config() { proto_config_add_string clientid proto_config_add_string vendorid proto_config_add_boolean 'broadcast:bool' - proto_config_add_boolean 'release:bool' + proto_config_add_boolean 'norelease:bool' proto_config_add_string 'reqopts:list(string)' proto_config_add_boolean 'defaultreqopts:bool' proto_config_add_string iface6rd @@ -35,8 +35,8 @@ proto_dhcp_setup() { local config="$1" local iface="$2" - local ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute - json_get_vars ipaddr hostname clientid vendorid broadcast release reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes classlessroute + local ipaddr hostname clientid vendorid broadcast norelease reqopts defaultreqopts iface6rd sendopts delegate zone6rd zone mtu6rd customroutes classlessroute + json_get_vars ipaddr hostname clientid vendorid broadcast norelease reqopts defaultreqopts iface6rd delegate zone6rd zone mtu6rd customroutes classlessroute local opt dhcpopts for opt in $reqopts; do @@ -50,7 +50,7 @@ proto_dhcp_setup() { [ "$defaultreqopts" = 0 ] && defaultreqopts="-o" || defaultreqopts= [ "$broadcast" = 1 ] && broadcast="-B" || broadcast= - [ "$release" = 1 ] && release="-R" || release= + [ "$norelease" = 1 ] && norelease="" || norelease="-R" [ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C" [ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd" [ "$iface6rd" != 0 -a -f /lib/netifd/proto/6rd.sh ] && append dhcpopts "-O 212" @@ -70,7 +70,7 @@ proto_dhcp_setup() { ${ipaddr:+-r $ipaddr} \ ${hostname:+-x "hostname:$hostname"} \ ${vendorid:+-V "$vendorid"} \ - $clientid $defaultreqopts $broadcast $release $dhcpopts + $clientid $defaultreqopts $broadcast $norelease $dhcpopts } proto_dhcp_renew() { diff --git a/package/network/config/netifd/files/lib/network/config.sh b/package/network/config/netifd/files/lib/network/config.sh index 0ded45edc4..4cd28e4ce1 100755 --- a/package/network/config/netifd/files/lib/network/config.sh +++ b/package/network/config/netifd/files/lib/network/config.sh @@ -6,13 +6,13 @@ find_config() { local device="$1" local ifdev ifl3dev ifobj - for ifobj in `ubus list network.interface.\*`; do + for ifobj in $(ubus list network.interface.\*); do interface="${ifobj##network.interface.}" ( json_load "$(ifstatus $interface)" json_get_var ifdev device json_get_var ifl3dev l3_device - if [[ "$device" = "$ifdev" ]] || [[ "$device" = "$ifl3dev" ]]; then + if [ "$device" = "$ifdev" ] || [ "$device" = "$ifl3dev" ]; then echo "$interface" exit 0 else diff --git a/package/network/config/netifd/files/sbin/ifup b/package/network/config/netifd/files/sbin/ifup index 5515b91f76..15be535bbf 100755 --- a/package/network/config/netifd/files/sbin/ifup +++ b/package/network/config/netifd/files/sbin/ifup @@ -37,7 +37,7 @@ done [ "$modes" = "down up" ] && ubus call network reload if [ -n "$ifup_all" ]; then - for interface in `ubus -S list 'network.interface.*'`; do + for interface in $(ubus -S list 'network.interface.*'); do if_call "${interface##network.interface.}" done [ -n "$setup_wifi" ] && /sbin/wifi up