forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync 4/6 #130
Merged
rmandrad
merged 72 commits into
rmandrad:qosmio-nss-wifi-6.x
from
qosmio:qualcommax-6.x-nss-wifi
Jun 4, 2024
Merged
sync 4/6 #130
rmandrad
merged 72 commits into
rmandrad:qosmio-nss-wifi-6.x
from
qosmio:qualcommax-6.x-nss-wifi
Jun 4, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Split the kmod-video-dma into kmod-video-dma-sg and kmod-video-dma-contig. The old one contained two kmods, but sometimes only one of them is build which caused problems. The configuration options are not manually selectable in the kernel and hidden in OpenWrt. Currently this causes build failures on some targets. Fixes: 4d7cbe0 ("kernel: video-dma: explicitly state packaged modules") Signed-off-by: Hauke Mehrtens <[email protected]>
The option CONFIG_SND_DRIVERS is activated by default in the generic configuration, do not deactivate it for tegra. This fixes the build of the kmod-sound-dummy package on tegra. Signed-off-by: Hauke Mehrtens <[email protected]>
U-Boot 2024.04 for tegra needs swig installed on the host, this dependency is only checked if UBOOT_USE_INTREE_DTC is set. add the missing definition. Fixes: 6832faf ("uboot-tegra: bump version to 2024.04") Signed-off-by: Hauke Mehrtens <[email protected]>
Add support for D-Link DIR-2055 A1 based on similarities to DIR-1960 A1, as well as various DIR-8xx A1 models. Existing DIR-1960 A1 openwrt "factory" firmware installs without modifications via the D-Link Recovery GUI and has no known incompatibilities with the DIR-2055 A1. Changes to be committed: new file: target/linux/ramips/dts/mt7621_dlink_dir-2055-a1.dts modified: target/linux/ramips/image/mt7621.mk modified: target/linux/ramips/mt7621/base-files/etc/board.d/01_leds modified: target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh Specifications: Board: Not known SoC: MediaTek MT7621 Family (MT7621AT) RAM: 256 MB (Micron 9OK17 D9PTK, should be DDR3 MT41K128M16JT-125) Flash: 128 MB (Winbond W29N01HVSINA) WiFi: MediaTek MT7615 Family (MT7615N x2) Switch: 1 WAN, 4 LAN (Gigabit) Ports: 1 USB 3.0 (front) Buttons: Reset, WiFi Toggle, WPS LEDs: Power (white/orange), Internet (white/orange), WiFi 2.4G (white), WiFi 5G (white) Notes: Only known difference vs. the DIR-1960 A1 is that the DIR-2055 A1 doesn't have a USB activity LED Serial port: Tested to be identical to various DIR-8xx A1 models with a similar enclosure/pcb design: Parameters: 57600, 8N1, 3.3V TTL no flow control Location: J1 header (close to the Reset, WiFi and WPS buttons) Pinout: 1 - VCC 2 - RXD 3 - TXD 4 - GND Did not connect VCC when using Installation: D-Link Recovery GUI: power down the router, press and hold the reset button, then re-plug it. Keep the reset button pressed until the power LED starts flashing orange, manually assign a static IP address under the 192.168.0.xxx subnet (e.g. 192.168.0.2) and go to http://192.168.0.1 Some modern browsers may have problems flashing via the Recovery GUI, if that occurs consider uploading the firmware through cURL: curl -v -i -F "[email protected]" 192.168.0.1 Signed-off-by: Keith Harrison <[email protected]>
cpe:/a:selinuxproject:secilc is not a correct CPE ID for secilc: https://nvd.nist.gov/products/cpe/search/results?keyword=cpe:2.3:a:selinuxproject:secilc Fixes: 9ee7c1e (secilc: adds new package) Signed-off-by: Fabrice Fontaine <[email protected]> Link: openwrt#15298 Signed-off-by: Robert Marko <[email protected]>
Fixes: af329ec ("mpc85xx: add support for Hewlett Packard MSM460") Signed-off-by: David Bauer <[email protected]>
Signed-off-by: David Bauer <[email protected]>
Use ath11k_patch_mac and ath11k_set_macflag functions instead of fix_wifi_mac script. Signed-off-by: Chukun Pan <[email protected]> Link: openwrt#15580 Signed-off-by: Robert Marko <[email protected]>
This is an automatically generated commit. When doing `git bisect`, consider `git bisect --skip`. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
This is an automatically generated commit which aids following Kernel patch history, as git will see the move and copy as a rename thus defeating the purpose. See: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html for the original discussion. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Refresh kernel config. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Refresh kernel patches. Remove patches already included in the kernel. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Default to kernel 6.1 on bcm47xx. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Since 6.1 is now default, drop 5.15 support. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Select 6.6 as testing kernel on bcm47xx. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
CI tells us that we need to, so lets refresh them. Signed-off-by: Mieczyslaw Nalewaj <[email protected]> Link: openwrt#15010 Signed-off-by: Robert Marko <[email protected]>
Signed-off-by: bitthief <[email protected]>
Signed-off-by: bitthief <[email protected]> Co-Developed-by: Sean Khan <[email protected]>
Signed-off-by: bitthief <[email protected]> package: kernel: nat46: add kernel 6.1 support Signed-off-by: bitthief <[email protected]> Co-Developed-by: Sean Khan <[email protected]>
Instead of 'install', 'cp', use standard build functions Signed-off-by: Sean Khan <[email protected]>
Signed-off-by: bitthief <[email protected]> Co-Developed-by: Sean Khan <[email protected]>
Signed-off-by: bitthief <[email protected]> qualcommax: dts: provide label for NSS reserved-memory Provide a label for the NSS reserved-memory node so it can be easily passed to the NSS DRV instead of having to global match by name which is fragile. Signed-off-by: bitthief <[email protected]>
Signed-off-by: bitthief <[email protected]>
Signed-off-by: bitthief <[email protected]>
Attempt at getting NSS WiFi Offload working on kernel 6.1 (backport 6.5) These patches are a mix of @Ansuel branch for 5.15 (ipq807x-5.15-ecm-wifi) Ansuel@3ecaee7 And QUIC's upstream NSS patches on [NHSS.QSDK.12.4.5.r3](https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open.git) For the actual package setup (Makfiles,ath.mk) Qualcomm's branch is under 'wlan-open/NHSS.QSDK.12.4.5.r3' Looks like they've swtiched to using backports 6.5-rc3, and figured to use a mix of their patches on 'NHSS.QSDK.12.4.5.r3' (nss) 'wlan-open/NHSS.QSDK.12.4.5.r3' (syncing with openwrt main). Booting with "nss_offload=1 frame_mode=2" Logs show: [ 16.606282] WARNING: CPU: 2 PID: 3524 at ath11k_nss_tx+0x1d4/0x1e0 [ath11k] [ 16.611060] Modules linked in: ecm pppoe ppp_async nft_fib_inet nf_flow_table_inet ath11k_ahb ath11k pptp pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_fullcone nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_DSCP xt_CLASSIFY x_tables wireguard slhc sch_cake qrtr_smd qrtr qmi_helpers nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 mhi libcrc32c libchacha20poly1305 compat sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact qca_nss_cfi_cryptoapi [ 16.611215] qca_nss_crypto qca_nss_qdisc qca_nss_wifi_meshmgr qca_nss_gre ledtrig_usbport qca_mcs bonding ip6_gre ip_gre gre ifb nat46 nf_defrag_ipv6 sit qca_nss_drv ip6_tunnel tunnel6 tunnel4 nls_utf8 nls_iso8859_1 nls_cp437 vxlan seqiv michael_mic uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk ramoops reed_solomon pstore gpio_button_hotplug ext4 mbcache jbd2 aquantia hwmon crc_ccitt crc32c_generic [ 16.721723] CPU: 2 PID: 3524 Comm: hostapd Not tainted 6.1.68 #0 [ 16.743958] Hardware name: Dynalink DL-WRX36 (DT) [ 16.750032] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 16.754635] pc : ath11k_nss_tx+0x1d4/0x1e0 [ath11k] [ 16.761403] lr : ath11k_nss_tx+0x1bc/0x1e0 [ath11k] [ 16.766264] sp : ffffffc00b1db790 [ 16.771122] x29: ffffffc00b1db790 x28: 0000000000000038 x27: 0000000000000000 [ 16.774602] x26: ffffff8006dd7430 x25: ffffff8007ea9dc8 x24: 0000000060000012 [ 16.781719] x23: ffffff8005c6a060 x22: ffffff8005c6a060 x21: ffffff80072f12d8 [ 16.788837] x20: ffffff8007ea9dc8 x19: ffffff8006082800 x18: 0000000000000005 [ 16.795957] x17: 6976312065707974 x16: 207061636e652062 x15: 6b73207874207373 [ 16.803075] x14: ffffffc00a0dd518 x13: 000000000000018b x12: 000000000000018b [ 16.810192] x11: 00000000ffffffea x10: ffffffc00a135518 x9 : 0000000000000001 [ 16.817310] x8 : 0000000000000001 x7 : 0000000000017fe8 x6 : c0000000ffffefff [ 16.824429] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 [ 16.831547] x2 : ffffff80072f1370 x1 : 0000000000000000 x0 : 0000000000000001 [ 16.838665] Call trace: [ 16.845774] ath11k_nss_tx+0x1d4/0x1e0 [ath11k] [ 16.848035] ath11k_mac_tx_mgmt_pending_free+0x3034/0x9600 [ath11k] [ 16.852551] ieee80211_handle_wake_tx_queue+0x68/0xb10 [mac80211] [ 16.858801] ieee80211_probereq_get+0xca4/0x11f0 [mac80211] [ 16.865049] ieee80211_tx_prepare_skb+0x1dc/0x240 [mac80211] [ 16.870432] ieee80211_xmit+0xcc/0x120 [mac80211] [ 16.876333] __ieee80211_subif_start_xmit+0x2b8/0x380 [mac80211] [ 16.880937] ieee80211_subif_start_xmit+0x40/0x3b0 [mac80211] [ 16.887013] ieee80211_subif_start_xmit_8023+0xb8/0x430 [mac80211] [ 16.892656] dev_hard_start_xmit+0x8c/0x110 [ 16.898728] __dev_queue_xmit+0x1f0/0xbc0 [ 16.902808] dev_queue_xmit+0x14/0x20 [ 16.906975] packet_sendmsg+0x768/0x1260 [ 16.910620] __sys_sendto+0xdc/0x140 [ 16.914613] __arm64_sys_sendto+0x28/0x40 [ 16.918174] invoke_syscall.constprop.0+0x5c/0x110 [ 16.922081] do_el0_svc+0x58/0x170 [ 16.926765] el0_svc+0x18/0x60 [ 16.930149] el0t_64_sync_handler+0x114/0x120 [ 16.933190] el0t_64_sync+0x174/0x178 [ 16.933197] ---[ end trace 0000000000000000 ]--- [ 16.933230] ath11k c000000.wifi: failed to transmit frame -22 [ 17.041495] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2 [ 17.041578] ath11k c000000.wifi: failed to transmit frame -22 Which is confusing since the parameter is definitley set to '2'. ➤ cat /sys/module/ath11k/parameters/frame_mode 2 Booting with either "nss_offload=1 frame_mode=3" (RAW), or "nss_offload=1 frame_mode=1" (Native Wifi) Results in: [ 15.644742] ath11k c000000.wifi: peer not found for nss peer delete [ 15.744742] ath11k c000000.wifi: peer not found for nss peer delete [ 15.745742] ath11k c000000.wifi: peer not found for nss peer delete [ 15.746682] ath11k c000000.wifi: peer not found for nss peer delete Clients connect and then are immediately kicked off, stuck in a loop. ath11k-nss: Wifi offloading working (unstable) Wifi offloading seems to be working, however it is not stable. Logs will initially show a lot of flooding. ``` [Sun Dec 17 02:43:25 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:28 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:30 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:32 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:34 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:40 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:41 2023] ath11k c000000.wifi: peer not found for nss peer delete [Sun Dec 17 02:43:46 2023] ath11k c000000.wifi: peer not found for nss peer delete ``` But eventually ends up subsiding. Needs heavy testing... ath11k_nss: Add mac address to debug `nss peer delete` warnings also delete ath10k patch, and refresh. ath11k_nss: FIX `nss peer delete` + encap errors This should hopefullly fix the following errors: ``` [Sun Dec 24 22:03:21 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2 [Sun Dec 24 22:03:21 2023] ath11k c000000.wifi: failed to transmit frame -22 [Sun Dec 24 22:08:25 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2 [Sun Dec 24 22:08:25 2023] ath11k c000000.wifi: failed to transmit frame -22 ``` Clients should also be able to switch between 2Ghz and 5Ghz AP, as well as join using password (no longer required to boot with NSS off first, connect the client to acquire PSK, and reboot back with nss wifi offload enabled). Uptime has been 5 hours and so far no issues. ath11k_nss: Remove unecessary clang-tidy formatting ath11k_nss: add 'debug_mode' flag quiet warnings Will properly handle: ``` [Mon Dec 25 16:51:34 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1 vif encap type 2 ``` should take the path for native wifi encap ath11k_nss: Rework depends, make `nss_redirect` optional 1.) Added a reworked `qca-nss-pbuf` init script from QSDK that will set sysctl NSS `n2hcfg` wifi options based on board type and available RAM. 2.) ath11k is fully capable of offloading wifi, it does not need mac80211 to create any NSS vifs. This lowers overhead and has actually shown considerable speed improvements for CPU programs on the router side (i.e. SMB). I believe ax3600's IoT (ath10k) would require it for offloading. I've added 2 new makemenu options, `MAC80211_NSS_SUPPORT` which enables NSS related features, and `MAC80211_NSS_REDIRECT` which provides the option to autoload the module on boot with `nss_redirect=1`. 3.) Reverted the option that deafulted `ATH11K_MEM_PROFILE_512M` to true. This was not required for platforms with 1GB or more memory (which is most of them). The default is 1GB. Select for platforms like Xiaomi AX3600. ath11k_nss: remove requirement for '/sys/kernel/debug/ath11k' ath11k_nss: set default values lower to avoid eating up memory ath11k_nss: Add NSS VLAN support + improvements 1) tweaked qca-nss-pbuf script to better handle different board configs 2) added some QSDK NSS patches for dynamic vlan, WDS. 3) added QSDK fixes for beacon, and bt-coex For devices that keep getting disconnected (mostly on 2G). It is recommended to use the following settings for wifi. Change for your country. config wifi-device 'radio0' option type 'mac80211' option path 'platform/soc/c000000.wifi' option band '5g' option txpower '24' option country 'PA' option channel '100' option htmode 'HE160' option cell_density '0' config wifi-iface 'default_radio0' option device 'radio0' option network 'lan' option mode 'ap' option encryption 'psk2' option key 'SOME_PASSWORD' option ssid 'EXAMPLE_5G' option dtim_period '3' option max_inactivity '86400' option disassoc_low_ack '0' config wifi-device 'radio1' option type 'mac80211' option path 'platform/soc/c000000.wifi+1' option band '2g' option htmode 'HT20' option channel '1' option txpower '36' option country 'PA' option cell_density '0' config wifi-iface 'default_radio1' option device 'radio1' option network 'lan' option mode 'ap' option ssid 'EXAMPLE_2G' option encryption 'psk2' option key 'SOME_PASSWORD' option max_inactivity '86400' option dtim_period '3' option disassoc_low_ack '0' WPA3 should be disabled, and left as WPA2. Experimenting with max_inactivity, dtim_period, and disassoc_low_ack to hopefully resolve the deauth disconnects.
`dev.nss.n2hcfg.n2h_wifi_pool_buf` must be set BEFORE setting `dev.nss.n2hcfg.n2h_high_water_core0`, otherwise it resets the value.
This will now be the default NSS branch, and will cover both kernel 6.1 and 6.6 related changes going forward. qualcommax: NSS: fix up 'nss_region'
Symbols for crypto, ktls, netfilter are removed from from being compiled into the kernel and instead left up to the user to compile as modules, as is the case upstream. Other unused qca features were also removed as they don't apply to ipq807x/6018 and are not upstream. Common symbols between 6.1/6.6 that are required for NSS related features have been consolidated into 'config-default'. There is an average 300kb of savings in the final kernel image as well decreased compile time. qualcommax: NSS: consolidate patches and align with 6.1 Update nss-cfi to kernel 6.6
Disable software input output translation lookaside buffer (swiotlb) as it wastes memory on low memory platforms (512m or less) qualcommax: only disable swiotlb for platforms <= 512M Disabling swiotlb is only required for platforms with 512M or less to save 64mb.
Signed-off-by: Sean Khan <[email protected]>
In ath11k_dp_rx_msdu_coalesce(), rxcb is fetched from skb and bool is_continuation is part of rxcb. Currently, after freeing the skb, the rxcb->is_continuation accessed again which is wrong since the memory is already freed. Hence fix the issue by locally defining bool is_continuation from rxcb, so that after freeing skb also we can use is_continuation. Signed-off-by: Sean Khan <[email protected]>
NSS offload feature should be available for all IPQ807x/IPQ817x targets. * Arcadyan AW1000 * CMCC RM2-6 * Linksys MX4200 V1/V2 * Linksys MX5300 * Sagemcom Fast 5285 Spectrum SAXV1V1S * Yuncore AX880 * ZBT Z800AX * ZTE MF269 Signed-off-by: Sean Khan <[email protected]>
Causes issues with rate stats on IPQ9074 Signed-off-by: Sean Khan <[email protected]>
Signed-off-by: Sean Khan <[email protected]>
On platforms using ath10k with mac80211 'nss_redirect' enabled, a warning `ieee80211_sta_update_pending_airtime` is observered whenever traffic load is high (iperf3). Don't offload if pending queue > 1000 Signed-off-by: Sean Khan <[email protected]>
This warning can trigger if there is a mismatch between frames that were sent with the sta pointer set vs tx status frames reported for the sta address. This can happen due to race conditions on re-creating stations, or even in the case of .sta_add/remove being used instead of .sta_state, which can cause frames to be sent to a station that has not been uploaded yet. If there is an actual underflow issue, it should show up in the device airtime warning below, so it is better to remove this one. Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> Signed-off-by: Sean Khan <[email protected]>
This is mostly a cosmetic change for users running NSS firmware 11.4 with mesh setups. Rather than fill up kernel logs with warnings, move log warnings to debug. The stats are still captured in '/sys/kernel/debug/qca-nss-drv/stats/*' Signed-off-by: Sean Khan <[email protected]>
Should be 'rx' Signed-off-by: Sean Khan <[email protected]>
While freeing skb in tx completion path for status reinject, inspect or vdevid mismatch, dev_kfree_skb_any() is used but when a function is using functions from mac80211 to free an skb then it should do it consistently and not switch to the generic dev_kfree_skb_any. Otherwise, mac80211 will not be aware of the freed skb and thus not clean up related information in its internal data structures. Hence fix the issue by properly using ieee80211_free_txskb(). Signed-off-by: Sarika Sharma <[email protected]> Signed-off-by: Sean Khan <[email protected]>
Lock is missed while accessing idr_pool of tx_ring which causes Use after free crash in dp_free path when unloading the module. Fix this by adding tx_idr_lock when accessing idr_pool of tx_ring. Signed-off-by: Aishwarya R <[email protected]> Signed-off-by: Sean Khan <[email protected]>
…rrays Fixes compile issues on GCC 13.3+ Signed-off-by: Sean Khan <[email protected]>
Adding NSS support for: Linksys MX8500 Netgear SXR80/SXS80 (SXK80 - router and satellite) Signed-off-by: Sean Khan <[email protected]>
Signed-off-by: Sean Khan <[email protected]>
1. Fix function to check for bridge master status while checking for Bridge VLAN filter feature is enabled on bridge slave ports. 2. Disable default PVID for bridges during device registration in the system. Change-Id: Ibea6559c1b0700a2300b60e20d57b7818e23a8a8 Signed-off-by: Vishnu Vardhan Bantanahal <[email protected]> bridge: Fix Bridge VLAN stats update This patch fixes Bridge VLAN stats update for both bridge master and bridge slave. Change-Id: Ia26f4c71e83e27dd83336815cda5c05c8c3f24ff Signed-off-by: Vishnu Vardhan Bantanahal <[email protected]> bridge: Add bridge VLAN filter APIs for offload for 6.1 Kernel Change-Id: I54e44c26664f86ae024f54605a032713a9a3eee5 Signed-off-by: Vishnu Vardhan Bantanahal <[email protected]> Signed-off-by: Sean Khan <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thanks for your contribution to OpenWrt!
To help keep the codebase consistent and readable,
and to help people review your contribution,
we ask you to follow the rules you find in the wiki at this link
https://openwrt.org/submitting-patches
Please remove this message before posting the pull request.