From bab06cd87e941150a2e21fd9da0f8c7c750c6cf9 Mon Sep 17 00:00:00 2001 From: sbwml Date: Mon, 2 Sep 2024 03:47:07 +0800 Subject: [PATCH 1/2] mac80211: update to version 6.9.9 Signed-off-by: sbwml --- openwrt/23-config-musl-r5s | 3 + openwrt/23-config-musl-x86 | 3 + .../patch/mac80211/900-hack-rtw88-phy.patch | 15 --- ...-disable-call-trace-when-write-RF-mo.patch | 35 ------- ...add-missing-call-to-cancel_work_sync.patch | 28 ------ ...8821c-Fix-beacon-loss-and-disconnect.patch | 73 -------------- ...dd-magic-missing-from-register-acces.patch | 97 ------------------- openwrt/patch/mt76/Makefile | 25 ++++- openwrt/scripts/01-prepare_base-mainline.sh | 16 +-- openwrt/scripts/04-fix_kmod.sh | 4 - 10 files changed, 31 insertions(+), 268 deletions(-) delete mode 100644 openwrt/patch/mac80211/900-hack-rtw88-phy.patch delete mode 100644 openwrt/patch/mac80211/901-wifi-rtw88-8822b-disable-call-trace-when-write-RF-mo.patch delete mode 100644 openwrt/patch/mac80211/905-wifi-rtw88-add-missing-call-to-cancel_work_sync.patch delete mode 100644 openwrt/patch/mac80211/906-wifi-rtw88-8821c-Fix-beacon-loss-and-disconnect.patch delete mode 100644 openwrt/patch/mac80211/907-wifi-rtw88-usb-Add-magic-missing-from-register-acces.patch diff --git a/openwrt/23-config-musl-r5s b/openwrt/23-config-musl-r5s index 8f24e1ec7..ca5e9b674 100644 --- a/openwrt/23-config-musl-r5s +++ b/openwrt/23-config-musl-r5s @@ -32,3 +32,6 @@ CONFIG_PACKAGE_rtl8851be-firmware=m CONFIG_PACKAGE_rtl8852ae-firmware=m CONFIG_PACKAGE_rtl8852be-firmware=m CONFIG_PACKAGE_rtl8852ce-firmware=m + +### MT76 firmware +CONFIG_PACKAGE_mt7925-firmware=m diff --git a/openwrt/23-config-musl-x86 b/openwrt/23-config-musl-x86 index d072df50e..7d55f8367 100644 --- a/openwrt/23-config-musl-x86 +++ b/openwrt/23-config-musl-x86 @@ -72,3 +72,6 @@ CONFIG_PACKAGE_rtl8851be-firmware=m CONFIG_PACKAGE_rtl8852ae-firmware=m CONFIG_PACKAGE_rtl8852be-firmware=m CONFIG_PACKAGE_rtl8852ce-firmware=m + +### MT76 firmware +CONFIG_PACKAGE_mt7925-firmware=m diff --git a/openwrt/patch/mac80211/900-hack-rtw88-phy.patch b/openwrt/patch/mac80211/900-hack-rtw88-phy.patch deleted file mode 100644 index 931405fed..000000000 --- a/openwrt/patch/mac80211/900-hack-rtw88-phy.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c -index 128e75a..087c937 100644 ---- a/drivers/net/wireless/realtek/rtw88/phy.c -+++ b/drivers/net/wireless/realtek/rtw88/phy.c -@@ -764,8 +764,8 @@ void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev) - { - /* for further calculation */ - rtw_phy_statistics(rtwdev); -- rtw_phy_dig(rtwdev); -- rtw_phy_cck_pd(rtwdev); -+// rtw_phy_dig(rtwdev); -+// rtw_phy_cck_pd(rtwdev); - rtw_phy_ra_track(rtwdev); - rtw_phy_tx_path_diversity(rtwdev); - rtw_phy_cfo_track(rtwdev); diff --git a/openwrt/patch/mac80211/901-wifi-rtw88-8822b-disable-call-trace-when-write-RF-mo.patch b/openwrt/patch/mac80211/901-wifi-rtw88-8822b-disable-call-trace-when-write-RF-mo.patch deleted file mode 100644 index df98e4114..000000000 --- a/openwrt/patch/mac80211/901-wifi-rtw88-8822b-disable-call-trace-when-write-RF-mo.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8455f02599ac95321f22ad6b181f21e3db9be971 Mon Sep 17 00:00:00 2001 -From: Chukun Pan -Date: Thu, 12 Oct 2023 22:01:20 +0800 -Subject: [PATCH] wifi: rtw88: 8822b: disable call trace when write RF mode - table fail - -The rtw88 driver throws a useless Call Trace when the rtl8812bu -or rtl8822be wifi modules fail to write the RF mode table. -Since this does not affect normal use of the wifi modules, -replace WARN() with driver warning to avoid useless panic. - -Signed-off-by: Chukun Pan ---- - drivers/net/wireless/realtek/rtw88/rtw8822b.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c -index 3017a97..06b6efc 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c -@@ -820,8 +820,10 @@ static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path, - break; - } - -- if (WARN(counter <= 0, "write RF mode table fail\n")) -+ if (counter <= 0) { -+ rtw_warn(rtwdev, "write RF mode table fail\n"); - return; -+ } - - rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x80000); - rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWA, RFREG_MASK, 0x00001); --- -2.42.0 - diff --git a/openwrt/patch/mac80211/905-wifi-rtw88-add-missing-call-to-cancel_work_sync.patch b/openwrt/patch/mac80211/905-wifi-rtw88-add-missing-call-to-cancel_work_sync.patch deleted file mode 100644 index c6cc9f4ea..000000000 --- a/openwrt/patch/mac80211/905-wifi-rtw88-add-missing-call-to-cancel_work_sync.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5796500bba532a0830dca0621f02fe77e9c3ce40 Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Tue, 15 Aug 2023 17:28:28 +0300 -Subject: [PATCH 4/4] wifi: rtw88: add missing call to cancel_work_sync() - -Add missing call to 'cancel_work_sync()' in 'rtw_core_stop()'. - -Fixes: 5c831644e1f4 ("rtw88: handle and recover when firmware crash") -Signed-off-by: Dmitry Antipov ---- - drivers/net/wireless/realtek/rtw88/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c -index c2ddb4d..bbc007c 100644 ---- a/drivers/net/wireless/realtek/rtw88/main.c -+++ b/drivers/net/wireless/realtek/rtw88/main.c -@@ -1524,6 +1524,7 @@ void rtw_core_stop(struct rtw_dev *rtwdev) - mutex_unlock(&rtwdev->mutex); - - cancel_work_sync(&rtwdev->c2h_work); -+ cancel_work_sync(&rtwdev->fw_recovery_work); - cancel_work_sync(&rtwdev->update_beacon_work); - cancel_delayed_work_sync(&rtwdev->watch_dog_work); - cancel_delayed_work_sync(&coex->bt_relink_work); --- -2.42.0 - diff --git a/openwrt/patch/mac80211/906-wifi-rtw88-8821c-Fix-beacon-loss-and-disconnect.patch b/openwrt/patch/mac80211/906-wifi-rtw88-8821c-Fix-beacon-loss-and-disconnect.patch deleted file mode 100644 index e3718fdf5..000000000 --- a/openwrt/patch/mac80211/906-wifi-rtw88-8821c-Fix-beacon-loss-and-disconnect.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 03e8bd9231b3ba640ee40e559ae1aca2647654c9 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Fri, 23 Feb 2024 20:09:04 +0200 -Subject: [PATCH] wifi: rtw88: 8821c: Fix beacon loss and disconnect - -Tenda U9 V2.0, which contains RTL8811CU, is practically unusable because -of frequent disconnections: - -Feb 23 14:46:45 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS -Feb 23 14:46:46 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED - bssid=90:55:de:__:__:__ reason=4 locally_generated=1 - -Feb 23 14:46:52 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNECTED - - Connection to 90:55:de:__:__:__ completed [id=0 id_str=] -Feb 23 14:46:54 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS -Feb 23 14:46:55 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED - bssid=90:55:de:__:__:__ reason=4 locally_generated=1 - -Feb 23 14:47:01 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNECTED - - Connection to 90:55:de:__:__:__ completed [id=0 id_str=] -Feb 23 14:47:04 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS -Feb 23 14:47:05 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED - bssid=90:55:de:__:__:__ reason=4 locally_generated=1 - -This is caused by a mistake in the chip initialisation. This version of -the chip requires loading an extra AGC table right after the main one, -but the extra table is being loaded at the wrong time. - -Move the extra AGC table loading to the right place. - -Fixes: 5d6651fe8583 ("rtw88: 8821c: support RFE type2 wifi NIC") -Signed-off-by: Bitterblue Smith ---- - drivers/net/wireless/realtek/rtw88/main.c | 2 -- - drivers/net/wireless/realtek/rtw88/phy.c | 3 +++ - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c -index 558f782..8c81bfb 100644 ---- a/drivers/net/wireless/realtek/rtw88/main.c -+++ b/drivers/net/wireless/realtek/rtw88/main.c -@@ -2030,8 +2030,6 @@ static int rtw_chip_board_info_setup(struct rtw_dev *rtwdev) - rtw_phy_setup_phy_cond(rtwdev, hal->pkg_type); - - rtw_phy_init_tx_power(rtwdev); -- if (rfe_def->agc_btg_tbl) -- rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); - rtw_load_table(rtwdev, rfe_def->phy_pg_tbl); - rtw_load_table(rtwdev, rfe_def->txpwr_lmt_tbl); - rtw_phy_tx_power_by_rate_config(hal); -diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c -index 087c937..54feb2c 100644 ---- a/drivers/net/wireless/realtek/rtw88/phy.c -+++ b/drivers/net/wireless/realtek/rtw88/phy.c -@@ -1761,12 +1761,15 @@ static void rtw_load_rfk_table(struct rtw_dev *rtwdev) - - void rtw_phy_load_tables(struct rtw_dev *rtwdev) - { -+ const struct rtw_rfe_def *rfe_def = rtw_get_rfe_def(rtwdev); - const struct rtw_chip_info *chip = rtwdev->chip; - u8 rf_path; - - rtw_load_table(rtwdev, chip->mac_tbl); - rtw_load_table(rtwdev, chip->bb_tbl); - rtw_load_table(rtwdev, chip->agc_tbl); -+ if (rfe_def->agc_btg_tbl) -+ rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); - rtw_load_rfk_table(rtwdev); - - for (rf_path = 0; rf_path < rtwdev->hal.rf_path_num; rf_path++) { --- -2.42.0 - diff --git a/openwrt/patch/mac80211/907-wifi-rtw88-usb-Add-magic-missing-from-register-acces.patch b/openwrt/patch/mac80211/907-wifi-rtw88-usb-Add-magic-missing-from-register-acces.patch deleted file mode 100644 index 08dc1fd6a..000000000 --- a/openwrt/patch/mac80211/907-wifi-rtw88-usb-Add-magic-missing-from-register-acces.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 940723fb9da6de410bae27309cc0941b9cce4142 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Mon, 19 Feb 2024 13:50:28 +0200 -Subject: [PATCH 1/2] wifi: rtw88: usb: Add magic missing from register - accesses - -RTL8822CU, RTL8822BU, and RTL8821CU seem to need this extra write after -reading and writing certain addresses. - -Signed-off-by: Bitterblue Smith ---- - drivers/net/wireless/realtek/rtw88/usb.c | 55 ++++++++++++++++++++++++ - 1 file changed, 55 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c -index e6ab1ac6d709..7b589056185a 100644 ---- a/drivers/net/wireless/realtek/rtw88/usb.c -+++ b/drivers/net/wireless/realtek/rtw88/usb.c -@@ -33,6 +33,41 @@ static void rtw_usb_fill_tx_checksum(struct rtw_usb *rtwusb, - rtw_tx_fill_txdesc_checksum(rtwdev, &pkt_info, skb->data); - } - -+#define REG_ON_SEC 0x00 -+#define REG_OFF_SEC 0x01 -+#define REG_LOCAL_SEC 0x02 -+ -+static void rtw_usb_reg_sec(struct rtw_dev *rtwdev, u32 addr, __le32 *data) -+{ -+ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev); -+ struct usb_device *udev = rtwusb->udev; -+ u8 current_reg_sec = REG_LOCAL_SEC; -+ u16 t_reg = 0x4e0; -+ int status = 0; -+ u8 t_len = 1; -+ -+ if (addr < 0xFE00) { -+ if (addr <= 0xff) -+ current_reg_sec = REG_ON_SEC; -+ else if (0x1000 <= addr && addr <= 0x10ff) -+ current_reg_sec = REG_ON_SEC; -+ else -+ current_reg_sec = REG_OFF_SEC; -+ } else { -+ current_reg_sec = REG_LOCAL_SEC; -+ } -+ -+ if (current_reg_sec == REG_ON_SEC) { -+ status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), -+ RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE, -+ t_reg, 0, data, t_len, 500); -+ -+ if (status != t_len) -+ pr_warn("%s: reg 0x%x, usb write %u fail, status: %d\n", -+ __func__, t_reg, t_len, status); -+ } -+} -+ - static u32 rtw_usb_read(struct rtw_dev *rtwdev, u32 addr, u16 len) - { - struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev); -@@ -58,6 +93,16 @@ static u32 rtw_usb_read(struct rtw_dev *rtwdev, u32 addr, u16 len) - rtw_err(rtwdev, "read register 0x%x failed with %d\n", - addr, ret); - -+ switch (rtwdev->chip->id) { -+ case RTW_CHIP_TYPE_8822C: -+ case RTW_CHIP_TYPE_8822B: -+ case RTW_CHIP_TYPE_8821C: -+ rtw_usb_reg_sec(rtwdev, addr, data); -+ break; -+ default: -+ break; -+ } -+ - return le32_to_cpu(*data); - } - -@@ -102,6 +147,16 @@ static void rtw_usb_write(struct rtw_dev *rtwdev, u32 addr, u32 val, int len) - if (ret < 0 && ret != -ENODEV && count++ < 4) - rtw_err(rtwdev, "write register 0x%x failed with %d\n", - addr, ret); -+ -+ switch (rtwdev->chip->id) { -+ case RTW_CHIP_TYPE_8822C: -+ case RTW_CHIP_TYPE_8822B: -+ case RTW_CHIP_TYPE_8821C: -+ rtw_usb_reg_sec(rtwdev, addr, data); -+ break; -+ default: -+ break; -+ } - } - - static void rtw_usb_write8(struct rtw_dev *rtwdev, u32 addr, u8 val) --- -2.43.2 - diff --git a/openwrt/patch/mt76/Makefile b/openwrt/patch/mt76/Makefile index c6cce9cf9..a07175d4d 100644 --- a/openwrt/patch/mt76/Makefile +++ b/openwrt/patch/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2024-05-17 -PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4 -PKG_MIRROR_HASH:=3e5d8ee6b8b122cc4e32668fdde0552a9fa23819b7ebdc758ecb63b5f761683a +PKG_SOURCE_DATE:=2024-08-25 +PKG_SOURCE_VERSION:=904ef52a8d04f6808284011579fdd45418f643d9 +PKG_MIRROR_HASH:=4e285ac767336aab56006fc9f8ca1c35d639926b03de1d6d1667ffc939d81c87 PKG_MAINTAINER:=Felix Fietkau PKG_USE_NINJA:=0 @@ -329,6 +329,12 @@ define KernelPackage/mt7996-firmware DEPENDS+=+kmod-mt7996e endef +define KernelPackage/mt7925-firmware + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT7925 firmware + DEPENDS+=+kmod-mt7925e +endef + define KernelPackage/mt7925-common $(KernelPackage/mt76-default) TITLE:=MediaTek MT7925 wireless driver common code @@ -342,7 +348,7 @@ define KernelPackage/mt7925u TITLE:=MediaTek MT7925U wireless driver DEPENDS+=+kmod-mt792x-usb +kmod-mt7925-common FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925u.ko - AUTOLOAD:=$(call AutoProbe,mt7921u) + AUTOLOAD:=$(call AutoProbe,mt7925u) endef define KernelPackage/mt7925e @@ -350,7 +356,7 @@ define KernelPackage/mt7925e TITLE:=MediaTek MT7925e wireless driver DEPENDS+=@PCI_SUPPORT +kmod-mt7925-common FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925e.ko - AUTOLOAD:=$(call AutoProbe,mt7921e) + AUTOLOAD:=$(call AutoProbe,mt7925e) endef define Package/mt76-test @@ -616,6 +622,14 @@ define KernelPackage/mt7922-firmware/install $(1)/lib/firmware/mediatek endef +define KernelPackage/mt7925-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7925 + cp \ + $(PKG_BUILD_DIR)/firmware/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin \ + $(PKG_BUILD_DIR)/firmware/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin \ + $(1)/lib/firmware/mediatek/mt7925 +endef + define KernelPackage/mt7996-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996 cp \ @@ -666,6 +680,7 @@ $(eval $(call KernelPackage,mt7981-firmware)) $(eval $(call KernelPackage,mt7986-firmware)) $(eval $(call KernelPackage,mt7921-firmware)) $(eval $(call KernelPackage,mt7922-firmware)) +$(eval $(call KernelPackage,mt7925-firmware)) $(eval $(call KernelPackage,mt792x-common)) $(eval $(call KernelPackage,mt792x-usb)) $(eval $(call KernelPackage,mt7921-common)) diff --git a/openwrt/scripts/01-prepare_base-mainline.sh b/openwrt/scripts/01-prepare_base-mainline.sh index 81cdbecbc..c7fdc274f 100644 --- a/openwrt/scripts/01-prepare_base-mainline.sh +++ b/openwrt/scripts/01-prepare_base-mainline.sh @@ -169,17 +169,11 @@ curl -s https://$mirror/openwrt/patch/openwrt-6.x/500-world-regd-5GHz.patch > pa # mac80211 - fix linux 6.6 & add rtw89 rm -rf package/kernel/mac80211 -git clone https://$github/sbwml/package_kernel_mac80211 package/kernel/mac80211 -b v6.6.15 - -# mac80211/patches/rtl - rtw88 -mkdir -p package/kernel/mac80211/patches/rtl -pushd package/kernel/mac80211/patches/rtl - curl -Os https://$mirror/openwrt/patch/mac80211/900-hack-rtw88-phy.patch - curl -Os https://$mirror/openwrt/patch/mac80211/901-wifi-rtw88-8822b-disable-call-trace-when-write-RF-mo.patch - curl -Os https://$mirror/openwrt/patch/mac80211/905-wifi-rtw88-add-missing-call-to-cancel_work_sync.patch - curl -Os https://$mirror/openwrt/patch/mac80211/906-wifi-rtw88-8821c-Fix-beacon-loss-and-disconnect.patch - curl -Os https://$mirror/openwrt/patch/mac80211/907-wifi-rtw88-usb-Add-magic-missing-from-register-acces.patch -popd +git clone https://$github/sbwml/package_kernel_mac80211 package/kernel/mac80211 -b v6.9.9 + +# ath10k-ct +rm -rf package/kernel/ath10k-ct +git clone https://$github/sbwml/package_kernel_ath10k-ct package/kernel/ath10k-ct # kernel patch # btf: silence btf module warning messages diff --git a/openwrt/scripts/04-fix_kmod.sh b/openwrt/scripts/04-fix_kmod.sh index 50aba8a02..ae82eadcd 100644 --- a/openwrt/scripts/04-fix_kmod.sh +++ b/openwrt/scripts/04-fix_kmod.sh @@ -12,10 +12,6 @@ curl -s https://$mirror/openwrt/patch/packages-patches/gpio-button-hotplug/fix-l # gpio-nct5104d curl -s https://$mirror/openwrt/patch/packages-patches/gpio-nct5104d/fix-build-for-linux-6.6.patch | patch -p1 -# rtl8812au-ct -sed -i 's/stringop-overread/stringop-overread \\/' package/kernel/rtl8812au-ct/Makefile -sed -i '/stringop-overread/a \ -Wno-error=enum-conversion' package/kernel/rtl8812au-ct/Makefile - # dmx_usb_module mkdir -p feeds/packages/libs/dmx_usb_module/patches curl -s https://$mirror/openwrt/patch/packages-patches/dmx_usb_module/900-fix-linux-6.6.patch > feeds/packages/libs/dmx_usb_module/patches/900-fix-linux-6.6.patch From 10ae8a5e9bdbedcca2876ddcdb691ac1ac21c1f5 Mon Sep 17 00:00:00 2001 From: sbwml Date: Mon, 2 Sep 2024 03:51:22 +0800 Subject: [PATCH 2/2] linux-6.6: bump to 6.6.48 Signed-off-by: sbwml --- ...ice-reorganize-net_device-fast-path-variables.patch | 4 ++-- ..._bbr-broaden-app-limited-rate-sample-detectio.patch | 4 ++-- ..._bbr-v2-shrink-delivered_mstamp-first_tx_msta.patch | 4 ++-- ..._bbr-v2-snapshot-packets-in-flight-at-transmi.patch | 8 ++++---- ..._bbr-v2-count-packets-lost-over-TCP-rate-samp.patch | 4 ++-- ..._bbr-v2-export-FLAG_ECE-in-rate_sample.is_ece.patch | 4 ++-- ..._bbr-v2-introduce-ca_ops-skb_marked_lost-CC-m.patch | 4 ++-- ..._bbr-v2-adjust-skb-tx.in_flight-upon-merge-in.patch | 2 +- ..._bbr-v2-adjust-skb-tx.in_flight-upon-split-in.patch | 6 +++--- ...-add-new-ca-opts-flag-TCP_CONG_WANTS_CE_EVENT.patch | 8 ++++---- ...-re-generalize-TSO-sizing-in-TCP-CC-module-AP.patch | 4 ++-- ...-add-fast_ack_mode-1-skip-rwin-check-in-tcp_f.patch | 4 ++-- ..._bbr-v2-record-app-limited-status-of-TLP-repa.patch | 2 +- ..._bbr-v2-inform-CC-module-of-losses-repaired-b.patch | 4 ++-- ..._bbr-v2-introduce-is_acking_tlp_retrans_seq-i.patch | 10 +++++----- ...roduce-per-route-feature-RTAX_FEATURE_ECN_LOW.patch | 8 ++++---- ..._bbr-v3-update-TCP-bbr-congestion-control-mod.patch | 2 +- ..._bbr-v3-ensure-ECN-enabled-BBR-flows-set-ECT-.patch | 2 +- ...ort-TCPI_OPT_ECN_LOW-in-tcp_info-tcpi_options.patch | 2 +- ...LRNG-0012-scheduler-add-entropy-sampling-hook.patch | 2 +- ...-conntrack-events-support-multiple-registrant.patch | 4 ++-- ...net-patch-linux-kernel-to-support-shortcut-fe.patch | 8 ++++---- tags/kernel-6.6 | 4 ++-- 23 files changed, 52 insertions(+), 52 deletions(-) diff --git a/openwrt/patch/kernel-6.6/backport/903-v6.8-net-device-reorganize-net_device-fast-path-variables.patch b/openwrt/patch/kernel-6.6/backport/903-v6.8-net-device-reorganize-net_device-fast-path-variables.patch index b9f1bbb73..82534acc4 100644 --- a/openwrt/patch/kernel-6.6/backport/903-v6.8-net-device-reorganize-net_device-fast-path-variables.patch +++ b/openwrt/patch/kernel-6.6/backport/903-v6.8-net-device-reorganize-net_device-fast-path-variables.patch @@ -237,7 +237,7 @@ Signed-off-by: Jakub Kicinski #if IS_ENABLED(CONFIG_FCOE) --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -11618,6 +11618,60 @@ static struct pernet_operations __net_in +@@ -11626,6 +11626,60 @@ static struct pernet_operations __net_in .exit_batch = default_device_exit_batch, }; @@ -298,7 +298,7 @@ Signed-off-by: Jakub Kicinski /* * Initialize the DEV module. At boot time this walks the device list and * unhooks any devices that fail to initialise (normally hardware not -@@ -11667,6 +11721,8 @@ static int __init net_dev_init(void) +@@ -11675,6 +11729,8 @@ static int __init net_dev_init(void) BUG_ON(!dev_boot_phase); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0001-net-tcp_bbr-broaden-app-limited-rate-sample-detectio.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0001-net-tcp_bbr-broaden-app-limited-rate-sample-detectio.patch index 57d07506a..69cce2a06 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0001-net-tcp_bbr-broaden-app-limited-rate-sample-detectio.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0001-net-tcp_bbr-broaden-app-limited-rate-sample-detectio.patch @@ -32,7 +32,7 @@ Signed-off-by: Alexandre Frade --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3841,6 +3841,7 @@ static int tcp_ack(struct sock *sk, cons +@@ -3874,6 +3874,7 @@ static int tcp_ack(struct sock *sk, cons prior_fack = tcp_is_sack(tp) ? tcp_highest_sack_seq(tp) : tp->snd_una; rs.prior_in_flight = tcp_packets_in_flight(tp); @@ -42,7 +42,7 @@ Signed-off-by: Alexandre Frade * is in window. --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c -@@ -653,6 +653,7 @@ void tcp_write_timer_handler(struct sock +@@ -664,6 +664,7 @@ void tcp_write_timer_handler(struct sock return; } diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0002-net-tcp_bbr-v2-shrink-delivered_mstamp-first_tx_msta.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0002-net-tcp_bbr-v2-shrink-delivered_mstamp-first_tx_msta.patch index 0abbf2be0..cd9eb0ac6 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0002-net-tcp_bbr-v2-shrink-delivered_mstamp-first_tx_msta.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0002-net-tcp_bbr-v2-shrink-delivered_mstamp-first_tx_msta.patch @@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -821,6 +821,11 @@ static inline u32 tcp_stamp_us_delta(u64 +@@ -822,6 +822,11 @@ static inline u32 tcp_stamp_us_delta(u64 return max_t(s64, t1 - t0, 0); } @@ -37,7 +37,7 @@ Signed-off-by: Alexandre Frade static inline u32 tcp_skb_timestamp(const struct sk_buff *skb) { return tcp_ns_to_ts(skb->skb_mstamp_ns); -@@ -896,9 +901,9 @@ struct tcp_skb_cb { +@@ -897,9 +902,9 @@ struct tcp_skb_cb { /* pkts S/ACKed so far upon tx of skb, incl retrans: */ __u32 delivered; /* start of send pipeline phase */ diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0003-net-tcp_bbr-v2-snapshot-packets-in-flight-at-transmi.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0003-net-tcp_bbr-v2-snapshot-packets-in-flight-at-transmi.patch index 0c48df6f0..128f33ec5 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0003-net-tcp_bbr-v2-snapshot-packets-in-flight-at-transmi.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0003-net-tcp_bbr-v2-snapshot-packets-in-flight-at-transmi.patch @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -904,6 +904,10 @@ struct tcp_skb_cb { +@@ -905,6 +905,10 @@ struct tcp_skb_cb { u32 first_tx_mstamp; /* when we reached the "delivered" count */ u32 delivered_mstamp; @@ -38,7 +38,7 @@ Signed-off-by: Alexandre Frade } tx; /* only used for outgoing skbs */ union { struct inet_skb_parm h4; -@@ -1051,6 +1055,7 @@ struct rate_sample { +@@ -1052,6 +1056,7 @@ struct rate_sample { u64 prior_mstamp; /* starting timestamp for interval */ u32 prior_delivered; /* tp->delivered at "prior_mstamp" */ u32 prior_delivered_ce;/* tp->delivered_ce at "prior_mstamp" */ @@ -46,7 +46,7 @@ Signed-off-by: Alexandre Frade s32 delivered; /* number of packets delivered over interval */ s32 delivered_ce; /* number of packets delivered w/ CE marks*/ long interval_us; /* time for tp->delivered to incr "delivered" */ -@@ -1173,6 +1178,7 @@ static inline void tcp_ca_event(struct s +@@ -1174,6 +1179,7 @@ static inline void tcp_ca_event(struct s void tcp_set_ca_state(struct sock *sk, const u8 ca_state); /* From tcp_rate.c */ @@ -56,7 +56,7 @@ Signed-off-by: Alexandre Frade struct rate_sample *rs); --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -2701,6 +2701,7 @@ static bool tcp_write_xmit(struct sock * +@@ -2703,6 +2703,7 @@ static bool tcp_write_xmit(struct sock * skb_set_delivery_time(skb, tp->tcp_wstamp_ns, true); list_move_tail(&skb->tcp_tsorted_anchor, &tp->tsorted_sent_queue); tcp_init_tso_segs(skb, mss_now); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0004-net-tcp_bbr-v2-count-packets-lost-over-TCP-rate-samp.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0004-net-tcp_bbr-v2-count-packets-lost-over-TCP-rate-samp.patch index c344e51f7..d9d335594 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0004-net-tcp_bbr-v2-count-packets-lost-over-TCP-rate-samp.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0004-net-tcp_bbr-v2-count-packets-lost-over-TCP-rate-samp.patch @@ -19,7 +19,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -908,6 +908,7 @@ struct tcp_skb_cb { +@@ -909,6 +909,7 @@ struct tcp_skb_cb { #define TCPCB_IN_FLIGHT_MAX ((1U << TCPCB_IN_FLIGHT_BITS) - 1) u32 in_flight:20, /* packets in flight at transmit */ unused2:12; @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade } tx; /* only used for outgoing skbs */ union { struct inet_skb_parm h4; -@@ -1053,11 +1054,13 @@ struct ack_sample { +@@ -1054,11 +1055,13 @@ struct ack_sample { */ struct rate_sample { u64 prior_mstamp; /* starting timestamp for interval */ diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0005-net-tcp_bbr-v2-export-FLAG_ECE-in-rate_sample.is_ece.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0005-net-tcp_bbr-v2-export-FLAG_ECE-in-rate_sample.is_ece.patch index 82e29585a..9aafb04f3 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0005-net-tcp_bbr-v2-export-FLAG_ECE-in-rate_sample.is_ece.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0005-net-tcp_bbr-v2-export-FLAG_ECE-in-rate_sample.is_ece.patch @@ -18,7 +18,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1072,6 +1072,7 @@ struct rate_sample { +@@ -1073,6 +1073,7 @@ struct rate_sample { bool is_app_limited; /* is sample from packet with bubble in pipe? */ bool is_retrans; /* is sample from retransmission? */ bool is_ack_delayed; /* is this (likely) a delayed ACK? */ @@ -28,7 +28,7 @@ Signed-off-by: Alexandre Frade struct tcp_congestion_ops { --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3940,6 +3940,7 @@ static int tcp_ack(struct sock *sk, cons +@@ -3973,6 +3973,7 @@ static int tcp_ack(struct sock *sk, cons delivered = tcp_newly_delivered(sk, delivered, flag); lost = tp->lost - lost; /* freshly marked lost */ rs.is_ack_delayed = !!(flag & FLAG_ACK_MAYBE_DELAYED); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0006-net-tcp_bbr-v2-introduce-ca_ops-skb_marked_lost-CC-m.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0006-net-tcp_bbr-v2-introduce-ca_ops-skb_marked_lost-CC-m.patch index 5013040ff..04c29cdef 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0006-net-tcp_bbr-v2-introduce-ca_ops-skb_marked_lost-CC-m.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0006-net-tcp_bbr-v2-introduce-ca_ops-skb_marked_lost-CC-m.patch @@ -30,7 +30,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1099,6 +1099,9 @@ struct tcp_congestion_ops { +@@ -1100,6 +1100,9 @@ struct tcp_congestion_ops { /* override sysctl_tcp_min_tso_segs */ u32 (*min_tso_segs)(struct sock *sk); @@ -42,7 +42,7 @@ Signed-off-by: Alexandre Frade */ --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -1096,7 +1096,12 @@ static void tcp_verify_retransmit_hint(s +@@ -1103,7 +1103,12 @@ static void tcp_verify_retransmit_hint(s */ static void tcp_notify_skb_loss_event(struct tcp_sock *tp, const struct sk_buff *skb) { diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0007-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-merge-in.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0007-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-merge-in.patch index d225f580b..cf3a0f0c5 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0007-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-merge-in.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0007-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-merge-in.patch @@ -39,7 +39,7 @@ Signed-off-by: Alexandre Frade --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -1482,6 +1482,17 @@ static bool tcp_shifted_skb(struct sock +@@ -1489,6 +1489,17 @@ static bool tcp_shifted_skb(struct sock WARN_ON_ONCE(tcp_skb_pcount(skb) < pcount); tcp_skb_pcount_add(skb, -pcount); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0008-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-split-in.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0008-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-split-in.patch index ea9459765..202e536fa 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0008-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-split-in.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0008-net-tcp_bbr-v2-adjust-skb-tx.in_flight-upon-split-in.patch @@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1198,6 +1198,21 @@ static inline bool tcp_skb_sent_after(u6 +@@ -1199,6 +1199,21 @@ static inline bool tcp_skb_sent_after(u6 return t1 > t2 || (t1 == t2 && after(seq1, seq2)); } @@ -55,7 +55,7 @@ Signed-off-by: Alexandre Frade * between different flows. --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1546,7 +1546,7 @@ int tcp_fragment(struct sock *sk, enum t +@@ -1548,7 +1548,7 @@ int tcp_fragment(struct sock *sk, enum t { struct tcp_sock *tp = tcp_sk(sk); struct sk_buff *buff; @@ -64,7 +64,7 @@ Signed-off-by: Alexandre Frade long limit; int nlen; u8 flags; -@@ -1621,6 +1621,30 @@ int tcp_fragment(struct sock *sk, enum t +@@ -1623,6 +1623,30 @@ int tcp_fragment(struct sock *sk, enum t if (diff) tcp_adjust_pcount(sk, skb, diff); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0009-net-tcp-add-new-ca-opts-flag-TCP_CONG_WANTS_CE_EVENT.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0009-net-tcp-add-new-ca-opts-flag-TCP_CONG_WANTS_CE_EVENT.patch index 38df4fe3a..898c976aa 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0009-net-tcp-add-new-ca-opts-flag-TCP_CONG_WANTS_CE_EVENT.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0009-net-tcp-add-new-ca-opts-flag-TCP_CONG_WANTS_CE_EVENT.patch @@ -23,7 +23,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1034,7 +1034,11 @@ enum tcp_ca_ack_event_flags { +@@ -1035,7 +1035,11 @@ enum tcp_ca_ack_event_flags { #define TCP_CONG_NON_RESTRICTED 0x1 /* Requires ECN/ECT set on all packets */ #define TCP_CONG_NEEDS_ECN 0x2 @@ -36,7 +36,7 @@ Signed-off-by: Alexandre Frade union tcp_cc_info; -@@ -1166,6 +1170,14 @@ static inline char *tcp_ca_get_name_by_k +@@ -1167,6 +1171,14 @@ static inline char *tcp_ca_get_name_by_k } #endif @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade const struct inet_connection_sock *icsk = inet_csk(sk); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -371,7 +371,7 @@ static void __tcp_ecn_check_ce(struct so +@@ -376,7 +376,7 @@ static void __tcp_ecn_check_ce(struct so tcp_enter_quickack_mode(sk, 2); break; case INET_ECN_CE: @@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade tcp_ca_event(sk, CA_EVENT_ECN_IS_CE); if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) { -@@ -382,7 +382,7 @@ static void __tcp_ecn_check_ce(struct so +@@ -387,7 +387,7 @@ static void __tcp_ecn_check_ce(struct so tp->ecn_flags |= TCP_ECN_SEEN; break; default: diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0010-net-tcp-re-generalize-TSO-sizing-in-TCP-CC-module-AP.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0010-net-tcp-re-generalize-TSO-sizing-in-TCP-CC-module-AP.patch index 0351f57e1..4a7462ae4 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0010-net-tcp-re-generalize-TSO-sizing-in-TCP-CC-module-AP.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0010-net-tcp-re-generalize-TSO-sizing-in-TCP-CC-module-AP.patch @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1100,8 +1100,8 @@ struct tcp_congestion_ops { +@@ -1101,8 +1101,8 @@ struct tcp_congestion_ops { /* hook for packet ack accounting (optional) */ void (*pkts_acked)(struct sock *sk, const struct ack_sample *sample); @@ -97,7 +97,7 @@ Signed-off-by: Alexandre Frade }; --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -2020,13 +2020,12 @@ static u32 tcp_tso_autosize(const struct +@@ -2022,13 +2022,12 @@ static u32 tcp_tso_autosize(const struct static u32 tcp_tso_segs(struct sock *sk, unsigned int mss_now) { const struct tcp_congestion_ops *ca_ops = inet_csk(sk)->icsk_ca_ops; diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0011-net-tcp-add-fast_ack_mode-1-skip-rwin-check-in-tcp_f.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0011-net-tcp-add-fast_ack_mode-1-skip-rwin-check-in-tcp_f.patch index ffff2609b..1398222ab 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0011-net-tcp-add-fast_ack_mode-1-skip-rwin-check-in-tcp_f.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0011-net-tcp-add-fast_ack_mode-1-skip-rwin-check-in-tcp_f.patch @@ -33,7 +33,7 @@ Signed-off-by: Alexandre Frade u8 chrono_type:2, /* current chronograph type */ --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c -@@ -3092,6 +3092,7 @@ int tcp_disconnect(struct sock *sk, int +@@ -3099,6 +3099,7 @@ int tcp_disconnect(struct sock *sk, int tp->rx_opt.dsack = 0; tp->rx_opt.num_sacks = 0; tp->rcv_ooopack = 0; @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade if (tcp_ca_needs_ecn(sk)) --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -5578,13 +5578,14 @@ static void __tcp_ack_snd_check(struct s +@@ -5621,13 +5621,14 @@ static void __tcp_ack_snd_check(struct s /* More than one full frame received... */ if (((tp->rcv_nxt - tp->rcv_wup) > inet_csk(sk)->icsk_ack.rcv_mss && diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0012-net-tcp_bbr-v2-record-app-limited-status-of-TLP-repa.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0012-net-tcp_bbr-v2-record-app-limited-status-of-TLP-repa.patch index a5a7ec0a7..1a5b4e1e9 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0012-net-tcp_bbr-v2-record-app-limited-status-of-TLP-repa.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0012-net-tcp_bbr-v2-record-app-limited-status-of-TLP-repa.patch @@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade u8 chrono_type:2, /* current chronograph type */ --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -2938,6 +2938,7 @@ void tcp_send_loss_probe(struct sock *sk +@@ -2940,6 +2940,7 @@ void tcp_send_loss_probe(struct sock *sk if (WARN_ON(!skb || !tcp_skb_pcount(skb))) goto rearm_timer; diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0013-net-tcp_bbr-v2-inform-CC-module-of-losses-repaired-b.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0013-net-tcp_bbr-v2-inform-CC-module-of-losses-repaired-b.patch index e48d83236..034ff70e4 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0013-net-tcp_bbr-v2-inform-CC-module-of-losses-repaired-b.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0013-net-tcp_bbr-v2-inform-CC-module-of-losses-repaired-b.patch @@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1012,6 +1012,7 @@ enum tcp_ca_event { +@@ -1013,6 +1013,7 @@ enum tcp_ca_event { CA_EVENT_LOSS, /* loss timeout */ CA_EVENT_ECN_NO_CE, /* ECT set, but not CE marked */ CA_EVENT_ECN_IS_CE, /* received CE marked IP packet */ @@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade /* Information about inbound ACK, passed to cong_ops->in_ack_event() */ --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3739,6 +3739,7 @@ static void tcp_process_tlp_ack(struct s +@@ -3772,6 +3772,7 @@ static void tcp_process_tlp_ack(struct s /* ACK advances: there was a loss, so reduce cwnd. Reset * tlp_high_seq in tcp_init_cwnd_reduction() */ diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0014-net-tcp_bbr-v2-introduce-is_acking_tlp_retrans_seq-i.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0014-net-tcp_bbr-v2-introduce-is_acking_tlp_retrans_seq-i.patch index 688fa90c0..0a3016365 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0014-net-tcp_bbr-v2-introduce-is_acking_tlp_retrans_seq-i.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0014-net-tcp_bbr-v2-introduce-is_acking_tlp_retrans_seq-i.patch @@ -21,7 +21,7 @@ Signed-off-by: Alexandre Frade --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -1076,6 +1076,7 @@ struct rate_sample { +@@ -1077,6 +1077,7 @@ struct rate_sample { u32 last_end_seq; /* end_seq of most recently ACKed packet */ bool is_app_limited; /* is sample from packet with bubble in pipe? */ bool is_retrans; /* is sample from retransmission? */ @@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade }; --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3722,7 +3722,8 @@ static void tcp_replace_ts_recent(struct +@@ -3755,7 +3755,8 @@ static void tcp_replace_ts_recent(struct /* This routine deals with acks during a TLP episode and ends an episode by * resetting tlp_high_seq. Ref: TLP algorithm in draft-ietf-tcpm-rack */ @@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade { struct tcp_sock *tp = tcp_sk(sk); -@@ -3750,6 +3751,11 @@ static void tcp_process_tlp_ack(struct s +@@ -3783,6 +3784,11 @@ static void tcp_process_tlp_ack(struct s FLAG_NOT_DUP | FLAG_DATA_SACKED))) { /* Pure dupack: original and TLP probe arrived; no loss */ tp->tlp_high_seq = 0; @@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade } } -@@ -3933,7 +3939,7 @@ static int tcp_ack(struct sock *sk, cons +@@ -3966,7 +3972,7 @@ static int tcp_ack(struct sock *sk, cons tcp_rack_update_reo_wnd(sk, &rs); if (tp->tlp_high_seq) @@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade if (tcp_ack_is_dubious(sk, flag)) { if (!(flag & (FLAG_SND_UNA_ADVANCED | -@@ -3977,7 +3983,7 @@ no_queue: +@@ -4010,7 +4016,7 @@ no_queue: tcp_ack_probe(sk); if (tp->tlp_high_seq) diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0015-tcp-introduce-per-route-feature-RTAX_FEATURE_ECN_LOW.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0015-tcp-introduce-per-route-feature-RTAX_FEATURE_ECN_LOW.patch index 5d1cf949b..8c0149819 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0015-tcp-introduce-per-route-feature-RTAX_FEATURE_ECN_LOW.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0015-tcp-introduce-per-route-feature-RTAX_FEATURE_ECN_LOW.patch @@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade enum tcp_tw_status { TCP_TW_SUCCESS = 0, -@@ -725,6 +726,15 @@ static inline void tcp_fast_path_check(s +@@ -726,6 +727,15 @@ static inline void tcp_fast_path_check(s u32 tcp_delack_max(const struct sock *sk); @@ -74,7 +74,7 @@ Signed-off-by: Alexandre Frade __u8 proto; --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c -@@ -435,6 +435,8 @@ void tcp_ca_openreq_child(struct sock *s +@@ -434,6 +434,8 @@ void tcp_ca_openreq_child(struct sock *s u32 ca_key = dst_metric(dst, RTAX_CC_ALGO); bool ca_got_dst = false; @@ -85,7 +85,7 @@ Signed-off-by: Alexandre Frade --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -332,10 +332,9 @@ static void tcp_ecn_send_syn(struct sock +@@ -334,10 +334,9 @@ static void tcp_ecn_send_syn(struct sock bool bpf_needs_ecn = tcp_bpf_ca_needs_ecn(sk); bool use_ecn = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn) == 1 || tcp_ca_needs_ecn(sk) || bpf_needs_ecn; @@ -97,7 +97,7 @@ Signed-off-by: Alexandre Frade if (dst && dst_feature(dst, RTAX_FEATURE_ECN)) use_ecn = true; } -@@ -347,6 +346,9 @@ static void tcp_ecn_send_syn(struct sock +@@ -349,6 +348,9 @@ static void tcp_ecn_send_syn(struct sock tp->ecn_flags = TCP_ECN_OK; if (tcp_ca_needs_ecn(sk) || bpf_needs_ecn) INET_ECN_xmit(sk); diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0016-net-tcp_bbr-v3-update-TCP-bbr-congestion-control-mod.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0016-net-tcp_bbr-v3-update-TCP-bbr-congestion-control-mod.patch index 8ddf7187d..c6ba231d7 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0016-net-tcp_bbr-v3-update-TCP-bbr-congestion-control-mod.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0016-net-tcp_bbr-v3-update-TCP-bbr-congestion-control-mod.patch @@ -153,7 +153,7 @@ Signed-off-by: Alexandre Frade #define ICSK_TIME_RETRANS 1 /* Retransmit timer */ --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -2268,7 +2268,7 @@ struct tcp_plb_state { +@@ -2269,7 +2269,7 @@ struct tcp_plb_state { u8 consec_cong_rounds:5, /* consecutive congested rounds */ unused:3; u32 pause_until; /* jiffies32 when PLB can resume rerouting */ diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0017-net-tcp_bbr-v3-ensure-ECN-enabled-BBR-flows-set-ECT-.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0017-net-tcp_bbr-v3-ensure-ECN-enabled-BBR-flows-set-ECT-.patch index 0a28e7441..e927946a6 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0017-net-tcp_bbr-v3-ensure-ECN-enabled-BBR-flows-set-ECT-.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0017-net-tcp_bbr-v3-ensure-ECN-enabled-BBR-flows-set-ECT-.patch @@ -47,7 +47,7 @@ Signed-off-by: Alexandre Frade /* BBR marks the current round trip as a loss round. */ --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -386,7 +386,8 @@ static void tcp_ecn_send(struct sock *sk +@@ -388,7 +388,8 @@ static void tcp_ecn_send(struct sock *sk th->cwr = 1; skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN; } diff --git a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0018-tcp-export-TCPI_OPT_ECN_LOW-in-tcp_info-tcpi_options.patch b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0018-tcp-export-TCPI_OPT_ECN_LOW-in-tcp_info-tcpi_options.patch index a210adb5e..d8642a778 100644 --- a/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0018-tcp-export-TCPI_OPT_ECN_LOW-in-tcp_info-tcpi_options.patch +++ b/openwrt/patch/kernel-6.6/bbr3_6.6/010-bbr3-0018-tcp-export-TCPI_OPT_ECN_LOW-in-tcp_info-tcpi_options.patch @@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade * Sender's congestion state indicating normal or abnormal situations --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c -@@ -3784,6 +3784,8 @@ void tcp_get_info(struct sock *sk, struc +@@ -3791,6 +3791,8 @@ void tcp_get_info(struct sock *sk, struc info->tcpi_options |= TCPI_OPT_ECN; if (tp->ecn_flags & TCP_ECN_SEEN) info->tcpi_options |= TCPI_OPT_ECN_SEEN; diff --git a/openwrt/patch/kernel-6.6/lrng/011-LRNG-0012-scheduler-add-entropy-sampling-hook.patch b/openwrt/patch/kernel-6.6/lrng/011-LRNG-0012-scheduler-add-entropy-sampling-hook.patch index 6497ed702..066d521b0 100644 --- a/openwrt/patch/kernel-6.6/lrng/011-LRNG-0012-scheduler-add-entropy-sampling-hook.patch +++ b/openwrt/patch/kernel-6.6/lrng/011-LRNG-0012-scheduler-add-entropy-sampling-hook.patch @@ -24,7 +24,7 @@ Signed-off-by: Stephan Mueller #include #include #include -@@ -3724,6 +3725,8 @@ ttwu_stat(struct task_struct *p, int cpu +@@ -3720,6 +3721,8 @@ ttwu_stat(struct task_struct *p, int cpu { struct rq *rq; diff --git a/openwrt/patch/kernel-6.6/net/952-net-conntrack-events-support-multiple-registrant.patch b/openwrt/patch/kernel-6.6/net/952-net-conntrack-events-support-multiple-registrant.patch index 8a4b50653..848102bd1 100644 --- a/openwrt/patch/kernel-6.6/net/952-net-conntrack-events-support-multiple-registrant.patch +++ b/openwrt/patch/kernel-6.6/net/952-net-conntrack-events-support-multiple-registrant.patch @@ -319,7 +319,7 @@ Signed-off-by: Zhi Chen struct nf_conn *ct = item->ct; struct sk_buff *skb; unsigned int type; -@@ -3750,11 +3757,17 @@ static int ctnetlink_stat_exp_cpu(struct +@@ -3751,11 +3758,17 @@ static int ctnetlink_stat_exp_cpu(struct } #ifdef CONFIG_NF_CONNTRACK_EVENTS @@ -337,7 +337,7 @@ Signed-off-by: Zhi Chen static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = { [IPCTNL_MSG_CT_NEW] = { -@@ -3853,8 +3866,12 @@ static int __net_init ctnetlink_net_init +@@ -3854,8 +3867,12 @@ static int __net_init ctnetlink_net_init static void ctnetlink_net_pre_exit(struct net *net) { #ifdef CONFIG_NF_CONNTRACK_EVENTS diff --git a/openwrt/patch/kernel-6.6/net/953-net-patch-linux-kernel-to-support-shortcut-fe.patch b/openwrt/patch/kernel-6.6/net/953-net-patch-linux-kernel-to-support-shortcut-fe.patch index a91ad49c9..c6d7c36ce 100644 --- a/openwrt/patch/kernel-6.6/net/953-net-patch-linux-kernel-to-support-shortcut-fe.patch +++ b/openwrt/patch/kernel-6.6/net/953-net-patch-linux-kernel-to-support-shortcut-fe.patch @@ -108,7 +108,7 @@ Signed-off-by: Xiaoping Fan struct net_bridge_port *p; --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3568,8 +3568,17 @@ static int xmit_one(struct sk_buff *skb, +@@ -3594,8 +3594,17 @@ static int xmit_one(struct sk_buff *skb, unsigned int len; int rc; @@ -126,7 +126,7 @@ Signed-off-by: Xiaoping Fan #ifdef CONFIG_ETHERNET_PACKET_MANGLE if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb))) -@@ -5308,6 +5317,11 @@ void netdev_rx_handler_unregister(struct +@@ -5355,6 +5364,11 @@ void netdev_rx_handler_unregister(struct } EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); @@ -138,7 +138,7 @@ Signed-off-by: Xiaoping Fan /* * Limit the use of PFMEMALLOC reserves to those protocols that implement * the special handling of PFMEMALLOC skbs. -@@ -5356,6 +5370,10 @@ static int __netif_receive_skb_core(stru +@@ -5403,6 +5417,10 @@ static int __netif_receive_skb_core(stru int ret = NET_RX_DROP; __be16 type; @@ -149,7 +149,7 @@ Signed-off-by: Xiaoping Fan net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb); trace_netif_receive_skb(skb); -@@ -5393,6 +5411,15 @@ another_round: +@@ -5440,6 +5458,15 @@ another_round: goto out; } diff --git a/tags/kernel-6.6 b/tags/kernel-6.6 index 826c0c433..5fbb10e05 100644 --- a/tags/kernel-6.6 +++ b/tags/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .47 -LINUX_KERNEL_HASH-6.6.47 = d43376c9e9eaa92bb1b926054bd160d329c58a62d64bd65fe1222c11c6564f50 +LINUX_VERSION-6.6 = .48 +LINUX_KERNEL_HASH-6.6.48 = 6b16df7b2aba3116b78fdfd8aea0b6cd7abe8f0cb699b04a66d3169141772029