From 3b1b179354e545e69df7cab5f89d39839348addc Mon Sep 17 00:00:00 2001 From: padavanonly Date: Tue, 15 Oct 2024 00:02:54 +0800 Subject: [PATCH] sync --- package/network/config/netifd/Makefile | 13 +- .../config/netifd/files/etc/init.d/network | 3 +- .../netifd/files/etc/init.d/packet_steering | 18 +++ .../netifd/files/lib/netifd/dhcp.script | 1 + .../netifd/files/lib/netifd/proto/dhcp.sh | 4 +- package/network/config/netifd/files/sbin/ifup | 38 ----- .../libexec/network/packet-steering.sh} | 11 +- .../patches/001-mtk-wifi-compatiable.patch | 77 +++++++++ ...port-for-configuring-device-link-spe.patch | 148 ------------------ ...101-ignore-wireless-brsnoop-settings.patch | 11 -- .../102-add-disabled-vif-for-wireless.patch | 59 ------- 11 files changed, 111 insertions(+), 272 deletions(-) create mode 100755 package/network/config/netifd/files/etc/init.d/packet_steering rename package/network/config/netifd/files/{etc/hotplug.d/net/20-smp-packet-steering => usr/libexec/network/packet-steering.sh} (85%) mode change 100644 => 100755 create mode 100644 package/network/config/netifd/patches/001-mtk-wifi-compatiable.patch delete mode 100644 package/network/config/netifd/patches/100-Revert-device-add-support-for-configuring-device-link-spe.patch delete mode 100644 package/network/config/netifd/patches/101-ignore-wireless-brsnoop-settings.patch delete mode 100644 package/network/config/netifd/patches/102-add-disabled-vif-for-wireless.patch diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index 771146830a..acfabf05e0 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,15 +5,15 @@ PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2021-10-30 -PKG_SOURCE_VERSION:=8f82742ca4f47f459284f3a07323d04da72ea5f6 -PKG_MIRROR_HASH:=5e519bb1aec9bb30782213f32f19f12e874c909e42826618dd4332ded816d2fe +PKG_SOURCE_DATE:=2024-01-04 +PKG_SOURCE_VERSION:=c18cc79d50002ab8529c21184aceb016c61ac61c +PKG_MIRROR_HASH:=0a1080ade51dc4a55249c8899d4d384f665e0d21075adab24ea23a2808165e05 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:= -PKG_BUILD_PARALLEL:=1 +PKG_BUILD_FLAGS:=lto include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk @@ -32,10 +32,7 @@ endef TARGET_CFLAGS += \ -I$(STAGING_DIR)/usr/include/libnl-tiny \ - -I$(STAGING_DIR)/usr/include \ - -flto - -TARGET_LDFLAGS += -flto -fuse-linker-plugin + -I$(STAGING_DIR)/usr/include CMAKE_OPTIONS += \ -DLIBNL_LIBS=-lnl-tiny \ diff --git a/package/network/config/netifd/files/etc/init.d/network b/package/network/config/netifd/files/etc/init.d/network index 3dbd0cb3ee..da1702afd4 100755 --- a/package/network/config/netifd/files/etc/init.d/network +++ b/package/network/config/netifd/files/etc/init.d/network @@ -45,7 +45,7 @@ stop_service() { } service_running() { - if [ -f "/lib/wifi/mtwifi.lua" ]; then + if [ -f "/lib/wifi/mtwifi.lua" ]; then ubus -t 120 wait_for network.interface.lan /sbin/wifi reload_legacy fi @@ -154,4 +154,3 @@ shutdown() { ifdown -a sleep 1 } - diff --git a/package/network/config/netifd/files/etc/init.d/packet_steering b/package/network/config/netifd/files/etc/init.d/packet_steering new file mode 100755 index 0000000000..9d8f791e23 --- /dev/null +++ b/package/network/config/netifd/files/etc/init.d/packet_steering @@ -0,0 +1,18 @@ +#!/bin/sh /etc/rc.common + +START=25 +USE_PROCD=1 + +start_service() { + reload_service +} + +service_triggers() { + procd_add_reload_trigger "network" + procd_add_reload_trigger "firewall" + procd_add_raw_trigger "interface.*" 1000 /etc/init.d/packet_steering reload +} + +reload_service() { + /usr/libexec/network/packet-steering.sh +} diff --git a/package/network/config/netifd/files/lib/netifd/dhcp.script b/package/network/config/netifd/files/lib/netifd/dhcp.script index e46005d84c..6fcf139beb 100755 --- a/package/network/config/netifd/files/lib/netifd/dhcp.script +++ b/package/network/config/netifd/files/lib/netifd/dhcp.script @@ -60,6 +60,7 @@ setup_interface () { [ -n "$message" ] && json_add_string message "$message" [ -n "$timezone" ] && json_add_int timezone "$timezone" [ -n "$lease" ] && json_add_int leasetime "$lease" + [ -n "$serverid" ] && json_add_string dhcpserver "$serverid" proto_close_data proto_send_update "$INTERFACE" 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 3034b2ba68..636b4654ff 100755 --- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh +++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh @@ -1,6 +1,6 @@ #!/bin/sh -[ -L /sbin/udhcpc ] || exit 0 +[ -x /sbin/udhcpc ] || exit 0 . /lib/functions.sh . ../netifd-proto.sh @@ -67,7 +67,7 @@ proto_dhcp_setup() { -p /var/run/udhcpc-$iface.pid \ -s /lib/netifd/dhcp.script \ -f -t 0 -i "$iface" \ - ${ipaddr:+-r $ipaddr} \ + ${ipaddr:+-r ${ipaddr/\/*/}} \ ${hostname:+-x "hostname:$hostname"} \ ${vendorid:+-V "$vendorid"} \ $clientid $defaultreqopts $broadcast $norelease $dhcpopts diff --git a/package/network/config/netifd/files/sbin/ifup b/package/network/config/netifd/files/sbin/ifup index c6f899c825..fbf2fd80c7 100755 --- a/package/network/config/netifd/files/sbin/ifup +++ b/package/network/config/netifd/files/sbin/ifup @@ -1,7 +1,6 @@ #!/bin/sh ifup_all= -setup_wifi= if_call() { local interface="$1" @@ -14,7 +13,6 @@ case "$0" in *ifdown) modes=down;; *ifup) modes="down up" - setup_wifi=1 ;; *) echo "Invalid command: $0";; esac @@ -25,10 +23,6 @@ while :; do ifup_all=1 shift ;; - -w) - setup_wifi= - shift - ;; *) break ;; @@ -40,7 +34,6 @@ if [ -n "$ifup_all" ]; then for interface in $(ubus -S list 'network.interface.*'); do if_call "${interface##network.interface.}" done - [ -n "$setup_wifi" ] && /sbin/wifi up exit else ubus -S list "network.interface.$1" > /dev/null || { @@ -49,34 +42,3 @@ else } if_call "$1" fi - -if [ -n "$setup_wifi" ]; then -if grep -sq config /etc/config/wireless; then - . /lib/functions.sh - - find_related_radios() { - local wdev wnet - config_get wdev "$1" device - config_get wnet "$1" network - - if [ -n "$wdev" ]; then - for wnet in $wnet; do - if [ "$wnet" = "$network" ]; then - append radio_devs "$wdev" "$N" - fi - done - fi - } - - network="$1" - config_load wireless - config_foreach find_related_radios wifi-iface - - for dev in $(echo "$radio_devs" | sort -u); do - /sbin/wifi up "$dev" - done -elif [ "$1" = "lan" ]; then - # for mt798x, call wifi up when exec "ifup lan" - /sbin/wifi up -fi -fi diff --git a/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering b/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh old mode 100644 new mode 100755 similarity index 85% rename from package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering rename to package/network/config/netifd/files/usr/libexec/network/packet-steering.sh index 8a86bf75f6..4d41d93946 --- a/package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering +++ b/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh @@ -1,6 +1,4 @@ #!/bin/sh -[ "$ACTION" = add ] || exit - NPROCS="$(grep -c "^processor.*:" /proc/cpuinfo)" [ "$NPROCS" -gt 1 ] || exit @@ -31,15 +29,20 @@ set_hex_val() { local val="$2" val="$(printf %x "$val")" [ -n "$DEBUG" ] && echo "$file = $val" - echo "$val" > "$file" + echo "$val" > "$file" 2>/dev/null } -packet_steering="$(uci get "network.@globals[0].packet_steering")" +packet_steering="$(uci -q get "network.@globals[0].packet_steering")" [ "$packet_steering" != 1 ] && exit 0 exec 512>/var/lock/smp_tune.lock flock 512 || exit 1 +[ -e "/usr/libexec/platform/packet-steering.sh" ] && { + /usr/libexec/platform/packet-steering.sh + exit 0 +} + for dev in /sys/class/net/*; do [ -d "$dev" ] || continue diff --git a/package/network/config/netifd/patches/001-mtk-wifi-compatiable.patch b/package/network/config/netifd/patches/001-mtk-wifi-compatiable.patch new file mode 100644 index 0000000000..e03a8c501a --- /dev/null +++ b/package/network/config/netifd/patches/001-mtk-wifi-compatiable.patch @@ -0,0 +1,77 @@ +diff -u -r a/scripts/netifd-wireless.sh b/scripts/netifd-wireless.sh +--- a/scripts/netifd-wireless.sh 2024-01-04 20:35:43.000000000 +0800 ++++ b/scripts/netifd-wireless.sh 2024-10-07 16:06:28.975463169 +0800 +@@ -306,7 +306,7 @@ + json_get_vars isolate proxy_arp + + [ ${isolate:-0} -gt 0 -o -z "$network_bridge" ] && return +- [ ${multicast_to_unicast:-1} -gt 0 -o ${proxy_arp:-0} -gt 0 ] && json_add_boolean isolate 1 ++ #[ ${multicast_to_unicast:-1} -gt 0 -o ${proxy_arp:-0} -gt 0 ] && json_add_boolean isolate 1 + } + + for_each_interface() { +diff -u -r a/wireless.c b/wireless.c +--- a/wireless.c 2024-01-04 20:35:43.000000000 +0800 ++++ b/wireless.c 2024-10-07 16:09:13.089980980 +0800 +@@ -1124,16 +1124,16 @@ + { + struct wireless_station *sta; + struct blob_attr *tb[__STA_ATTR_MAX]; +- struct blob_attr *cur; ++// struct blob_attr *cur; + char *name_buf; + char name[8]; + + blobmsg_parse(sta_policy, __STA_ATTR_MAX, tb, blob_data(data), blob_len(data)); +- ++/* + cur = tb[STA_ATTR_DISABLED]; + if (cur && blobmsg_get_bool(cur)) + return; +- ++*/ + sprintf(name, "%d", vif->sta_idx++); + + sta = calloc_a(sizeof(*sta), +@@ -1164,16 +1164,16 @@ + { + struct wireless_vlan *vlan; + struct blob_attr *tb[__VLAN_ATTR_MAX]; +- struct blob_attr *cur; ++// struct blob_attr *cur; + char *name_buf; + char name[8]; + + blobmsg_parse(vlan_policy, __VLAN_ATTR_MAX, tb, blob_data(data), blob_len(data)); + +- cur = tb[VLAN_ATTR_DISABLED]; ++ /*cur = tb[VLAN_ATTR_DISABLED]; + if (cur && blobmsg_get_bool(cur)) + return; +- ++ */ + sprintf(name, "%d", vif->vlan_idx++); + + vlan = calloc_a(sizeof(*vlan), &name_buf, strlen(name) + 1); +@@ -1204,17 +1204,17 @@ + { + struct wireless_interface *vif; + struct blob_attr *tb[__VIF_ATTR_MAX]; +- struct blob_attr *cur; ++// struct blob_attr *cur; + char *name_buf; + char name[8]; + + blobmsg_parse(vif_policy, __VIF_ATTR_MAX, tb, blob_data(data), blob_len(data)); + +- cur = tb[VIF_ATTR_DISABLED]; ++ /*cur = tb[VIF_ATTR_DISABLED]; + if (cur && blobmsg_get_bool(cur)) + return NULL; +- +- sprintf(name, "%d", wdev->vif_idx++); ++ */ ++ sprintf(name, "%d", wdev->vif_idx++); + + vif = calloc_a(sizeof(*vif), + &name_buf, strlen(name) + 1); diff --git a/package/network/config/netifd/patches/100-Revert-device-add-support-for-configuring-device-link-spe.patch b/package/network/config/netifd/patches/100-Revert-device-add-support-for-configuring-device-link-spe.patch deleted file mode 100644 index c46717dd49..0000000000 --- a/package/network/config/netifd/patches/100-Revert-device-add-support-for-configuring-device-link-spe.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -Date: Fri, 24 Feb 2023 13:28:52 +0800 -Subject: [PATCH] Revert "device: add support for configuring device link - speed/duplex" - -Fixes auto-negotiate for out-of-tree ethernet drivers. - -This reverts commit 1eb0fafaa9865b729509a7d47ecf1f05c2c0595c. ---- - device.c | 14 -------------- - device.h | 6 ------ - system-linux.c | 52 -------------------------------------------------- - 3 files changed, 72 deletions(-) - ---- a/device.c -+++ b/device.c -@@ -61,8 +61,6 @@ static const struct blobmsg_policy dev_a - [DEV_ATTR_DROP_UNSOLICITED_NA] = { .name = "drop_unsolicited_na", .type = BLOBMSG_TYPE_BOOL }, - [DEV_ATTR_ARP_ACCEPT] = { .name = "arp_accept", .type = BLOBMSG_TYPE_BOOL }, - [DEV_ATTR_AUTH] = { .name = "auth", .type = BLOBMSG_TYPE_BOOL }, -- [DEV_ATTR_SPEED] = { .name = "speed", .type = BLOBMSG_TYPE_INT32 }, -- [DEV_ATTR_DUPLEX] = { .name = "duplex", .type = BLOBMSG_TYPE_BOOL }, - }; - - const struct uci_blob_param_list device_attr_list = { -@@ -278,8 +276,6 @@ device_merge_settings(struct device *dev - n->arp_accept = s->flags & DEV_OPT_ARP_ACCEPT ? - s->arp_accept : os->arp_accept; - n->auth = s->flags & DEV_OPT_AUTH ? s->auth : os->auth; -- n->speed = s->flags & DEV_OPT_SPEED ? s->speed : os->speed; -- n->duplex = s->flags & DEV_OPT_DUPLEX ? s->duplex : os->duplex; - n->flags = s->flags | os->flags | os->valid_flags; - } - -@@ -454,16 +450,6 @@ device_init_settings(struct device *dev, - s->flags |= DEV_OPT_AUTH; - } - -- if ((cur = tb[DEV_ATTR_SPEED])) { -- s->speed = blobmsg_get_u32(cur); -- s->flags |= DEV_OPT_SPEED; -- } -- -- if ((cur = tb[DEV_ATTR_DUPLEX])) { -- s->duplex = blobmsg_get_bool(cur); -- s->flags |= DEV_OPT_DUPLEX; -- } -- - device_set_disabled(dev, disabled); - } - ---- a/device.h -+++ b/device.h -@@ -60,8 +60,6 @@ enum { - DEV_ATTR_DROP_UNSOLICITED_NA, - DEV_ATTR_ARP_ACCEPT, - DEV_ATTR_AUTH, -- DEV_ATTR_SPEED, -- DEV_ATTR_DUPLEX, - __DEV_ATTR_MAX, - }; - -@@ -124,8 +122,6 @@ enum { - DEV_OPT_DROP_GRATUITOUS_ARP = (1ULL << 27), - DEV_OPT_DROP_UNSOLICITED_NA = (1ULL << 28), - DEV_OPT_ARP_ACCEPT = (1ULL << 29), -- DEV_OPT_SPEED = (1ULL << 30), -- DEV_OPT_DUPLEX = (1ULL << 31), - }; - - /* events broadcasted to all users of a device */ -@@ -201,8 +197,6 @@ struct device_settings { - bool drop_unsolicited_na; - bool arp_accept; - bool auth; -- unsigned int speed; -- bool duplex; - }; - - /* ---- a/system-linux.c -+++ b/system-linux.c -@@ -1715,57 +1715,6 @@ int system_vlandev_del(struct device *vl - return system_link_del(vlandev->ifname); - } - --static void --system_set_ethtool_settings(struct device *dev, struct device_settings *s) --{ -- struct ethtool_cmd ecmd = { -- .cmd = ETHTOOL_GSET, -- }; -- struct ifreq ifr = { -- .ifr_data = (caddr_t)&ecmd, -- }; -- static const struct { -- int speed; -- uint8_t bit_half; -- uint8_t bit_full; -- } speed_mask[] = { -- { 10, ETHTOOL_LINK_MODE_10baseT_Half_BIT, ETHTOOL_LINK_MODE_10baseT_Full_BIT }, -- { 100, ETHTOOL_LINK_MODE_100baseT_Half_BIT, ETHTOOL_LINK_MODE_100baseT_Full_BIT }, -- { 1000, ETHTOOL_LINK_MODE_1000baseT_Half_BIT, ETHTOOL_LINK_MODE_1000baseT_Full_BIT }, -- }; -- uint32_t adv; -- int i; -- -- strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); -- -- if (ioctl(sock_ioctl, SIOCETHTOOL, &ifr) != 0) -- return; -- -- adv = ecmd.supported; -- for (i = 0; i < ARRAY_SIZE(speed_mask); i++) { -- if (s->flags & DEV_OPT_DUPLEX) { -- int bit = s->duplex ? speed_mask[i].bit_half : speed_mask[i].bit_full; -- adv &= ~(1 << bit); -- } -- -- if (!(s->flags & DEV_OPT_SPEED) || -- s->speed == speed_mask[i].speed) -- continue; -- -- adv &= ~(1 << speed_mask[i].bit_full); -- adv &= ~(1 << speed_mask[i].bit_half); -- } -- -- -- if (ecmd.autoneg && ecmd.advertising == adv) -- return; -- -- ecmd.autoneg = 1; -- ecmd.advertising = adv; -- ecmd.cmd = ETHTOOL_SSET; -- ioctl(sock_ioctl, SIOCETHTOOL, &ifr); --} -- - void - system_if_get_settings(struct device *dev, struct device_settings *s) - { -@@ -1989,7 +1938,6 @@ system_if_apply_settings(struct device * - system_set_drop_unsolicited_na(dev, s->drop_unsolicited_na ? "1" : "0"); - if (apply_mask & DEV_OPT_ARP_ACCEPT) - system_set_arp_accept(dev, s->arp_accept ? "1" : "0"); -- system_set_ethtool_settings(dev, s); - } - - int system_if_up(struct device *dev) diff --git a/package/network/config/netifd/patches/101-ignore-wireless-brsnoop-settings.patch b/package/network/config/netifd/patches/101-ignore-wireless-brsnoop-settings.patch deleted file mode 100644 index d8d40b971c..0000000000 --- a/package/network/config/netifd/patches/101-ignore-wireless-brsnoop-settings.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/scripts/netifd-wireless.sh 2023-11-23 22:48:11.837794697 +0800 -+++ b/scripts/netifd-wireless.sh 2023-11-23 22:48:15.031043740 +0800 -@@ -297,7 +297,7 @@ _wireless_set_brsnoop_isolation() { - json_get_vars isolate proxy_arp - - [ ${isolate:-0} -gt 0 -o -z "$network_bridge" ] && return -- [ ${multicast_to_unicast:-1} -gt 0 -o ${proxy_arp:-0} -gt 0 ] && json_add_boolean isolate 1 -+ #[ ${multicast_to_unicast:-1} -gt 0 -o ${proxy_arp:-0} -gt 0 ] && json_add_boolean isolate 1 - } - - for_each_interface() { diff --git a/package/network/config/netifd/patches/102-add-disabled-vif-for-wireless.patch b/package/network/config/netifd/patches/102-add-disabled-vif-for-wireless.patch deleted file mode 100644 index 3c08b336e6..0000000000 --- a/package/network/config/netifd/patches/102-add-disabled-vif-for-wireless.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/wireless.c -+++ b/wireless.c -@@ -1071,15 +1071,17 @@ wireless_station_create(struct wireless_ - { - struct wireless_station *sta; - struct blob_attr *tb[__STA_ATTR_MAX]; -- struct blob_attr *cur; -+// struct blob_attr *cur; - char *name_buf, *vif_buf; - char name[8]; - - blobmsg_parse(sta_policy, __STA_ATTR_MAX, tb, blob_data(data), blob_len(data)); - -+/* - cur = tb[STA_ATTR_DISABLED]; - if (cur && blobmsg_get_bool(cur)) - return; -+*/ - - sprintf(name, "%d", wdev->sta_idx++); - -@@ -1114,15 +1116,17 @@ wireless_vlan_create(struct wireless_dev - { - struct wireless_vlan *vlan; - struct blob_attr *tb[__VLAN_ATTR_MAX]; -- struct blob_attr *cur; -+// struct blob_attr *cur; - char *name_buf, *vif_buf; - char name[8]; - - blobmsg_parse(vlan_policy, __VLAN_ATTR_MAX, tb, blob_data(data), blob_len(data)); - -+/* - cur = tb[VLAN_ATTR_DISABLED]; - if (cur && blobmsg_get_bool(cur)) - return; -+*/ - - sprintf(name, "%d", wdev->vlan_idx++); - -@@ -1159,15 +1163,17 @@ struct wireless_interface* wireless_inte - { - struct wireless_interface *vif; - struct blob_attr *tb[__VIF_ATTR_MAX]; -- struct blob_attr *cur; -+// struct blob_attr *cur; - char *name_buf; - char name[8]; - - blobmsg_parse(vif_policy, __VIF_ATTR_MAX, tb, blob_data(data), blob_len(data)); - -+/* - cur = tb[VIF_ATTR_DISABLED]; - if (cur && blobmsg_get_bool(cur)) - return NULL; -+*/ - - sprintf(name, "%d", wdev->vif_idx++); -