Wireless goes down from time to time

I am using GL-MT300N-V2 with 18.06.2 currently, and my router often shuts wireless down after large traffic (e.g. watching videos or downloading for a long time). However, the network switch works just fine, and I can SSH to the router to check logs. I have to reboot the router or wait for a long time (several hours) to get wireless back online.
Actually, I do not think this problem is specific to my device as I have met the same problem on several other devices (TL-WR703N and TL-WR841N). And I have seen some posts complaining about similar problems.

The network configuration:
/etc/config/network:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdae:5ff8:4b7f::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option ipaddr '192.168.10.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'

config device 'wan_dev'
	option name 'eth0.2'
	option macaddr 'e4:95:6e:46:1b:9a'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 6t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0 6t'

/etc/config/wireless:

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path 'platform/10300000.wmac'
	option country 'CN'
	option legacy_rates '1'
	option channel '11'
	option htmode 'HT20'
	option txpower '20'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'Cisco-703N'
	option encryption 'psk-mixed'
	option key '*****************'
	option disassoc_low_ack '0'

The output of dmesg:

[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[    0.000000] MIPS: machine is GL-MT300N-V2
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat 80422fc0, node_mem_map 81000040
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] random: get_random_bytes called from 0x8042672c with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=0001c340
[    0.000000] Readback ErrCtl register=0001c340
[    0.000000] Memory: 125224K/131072K available (3592K kernel code, 183K rwdata, 464K rodata, 168K init, 206K bss, 5848K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] intc: using register map from devicetree
[    0.000000] CPU Clock: 575MHz
[    0.000000] timer_probe: no matching timers found
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6647862422 ns
[    0.000013] sched_clock: 32 bits at 287MHz, resolution 3ns, wraps every 7469508094ns
[    0.015381] Calibrating delay loop... 380.92 BogoMIPS (lpj=1904640)
[    0.087546] pid_max: default: 32768 minimum: 301
[    0.096918] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.109880] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.129648] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.149025] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.161129] pinctrl core: initialized pinctrl subsystem
[    0.172707] NET: Registered protocol family 16
[    0.185976] Can't analyze schedule() prologue at 8037dd78
[    0.214225] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.225442] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.236566] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.252469] clocksource: Switched to clocksource MIPS
[    0.263582] NET: Registered protocol family 2
[    0.273144] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.286850] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.299361] TCP: Hash tables configured (established 1024 bind 1024)
[    0.312057] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.323512] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.336127] NET: Registered protocol family 1
[    0.344659] PCI: CLS 0 bytes, default 32
[    0.348082] Crashlog allocated RAM at address 0x3f00000
[    0.359976] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    0.378736] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.390174] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.420184] io scheduler noop registered
[    0.427857] io scheduler deadline registered (default)
[    0.438875] gpio-export gpio_export: 1 gpio(s) exported
[    0.449369] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.464723] console [ttyS0] disabled
[    0.471696] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) is a 16550A
[    0.489617] console [ttyS0] enabled
[    0.496623] bootconsole [early0] disabled
[    0.505387] 10000d00.uart1: ttyS1 at MMIO 0x10000d00 (irq = 29, base_baud = 2500000) is a 16550A
[    0.514977] cacheinfo: Failed to find cpu0 device node
[    0.520192] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.527180] spi-mt7621 10000b00.spi: sys_freq: 191666666
[    0.549185] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.554045] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.560485] Creating 4 MTD partitions on "spi0.0":
[    0.565360] 0x000000000000-0x000000030000 : "u-boot"
[    0.571349] 0x000000030000-0x000000040000 : "u-boot-env"
[    0.577650] 0x000000040000-0x000000050000 : "factory"
[    0.583734] 0x000000050000-0x000001000000 : "firmware"
[    0.662554] 2 uimage-fw partitions found on MTD device firmware
[    0.668586] 0x000000050000-0x0000001af1d2 : "kernel"
[    0.674576] 0x0000001af1d2-0x000001000000 : "rootfs"
[    0.680401] mtd: device 5 (rootfs) set to be root filesystem
[    0.687771] 1 squashfs-split partitions found on MTD device rootfs
[    0.694113] 0x000000400000-0x000001000000 : "rootfs_data"
[    0.701248] libphy: Fixed MDIO Bus: probed
[    0.716556] rt3050-esw 10110000.esw: link changed 0x00
[    0.723484] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    0.733807] NET: Registered protocol family 10
[    0.742568] Segment Routing with IPv6
[    0.746411] NET: Registered protocol family 17
[    0.750965] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    0.764123] 8021q: 802.1Q VLAN Support v1.8
[    0.780634] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    0.788787] Freeing unused kernel memory: 168K
[    0.793324] This architecture does not have kernel memory protection.
[    1.987477] init: Console is alive
[    1.991178] init: - watchdog -
[    2.385495] random: fast init done
[    3.339117] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.568504] usbcore: registered new interface driver usbfs
[    3.574220] usbcore: registered new interface driver hub
[    3.579739] usbcore: registered new device driver usb
[    3.591328] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.599651] ehci-platform: EHCI generic platform driver
[    3.615299] phy phy-10120000.usbphy.0: remote usb device wakeup disabled
[    3.622108] phy phy-10120000.usbphy.0: UTMI 16bit 30MHz
[    3.627432] ehci-platform 101c0000.ehci: EHCI Host Controller
[    3.633320] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[    3.641466] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[    3.672484] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00
[    3.679903] hub 1-0:1.0: USB hub found
[    3.684183] hub 1-0:1.0: 1 port detected
[    3.691426] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.699306] ohci-platform: OHCI generic platform driver
[    3.704963] ohci-platform 101c1000.ohci: Generic Platform OHCI controller
[    3.711881] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[    3.720062] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000
[    3.797658] hub 2-0:1.0: USB hub found
[    3.801866] hub 2-0:1.0: 1 port detected
[    3.810304] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.828191] init: - preinit -
[    5.250473] rt3050-esw 10110000.esw: link changed 0x00
[    5.440339] random: procd: uninitialized urandom read (4 bytes read)
[    9.038095] rt3050-esw 10110000.esw: link changed 0x01
[    9.111694] jffs2: notice: (383) jffs2_build_xattr_subsystem: complete building xattr subsystem, 17 of xdatum (2 unchecked, 15 orphan) and 106 of xref (15 dead, 0 orphan) found.
[    9.135922] mount_root: switching to jffs2 overlay
[    9.168782] overlayfs: upper fs does not support tmpfile.
[    9.186320] urandom-seed: Seeding with /etc/urandom.seed
[    9.694916] procd: - early -
[    9.697963] procd: - watchdog -
[   10.612319] procd: - watchdog -
[   10.615903] procd: - ubus -
[   10.733684] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.818501] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.825605] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.834847] procd: - init -
[   11.411941] kmodloader: loading kernel modules from /etc/modules.d/*
[   11.423492] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.441764] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[   11.449959] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[   11.462335] ip_tables: (C) 2000-2006 Netfilter Core Team
[   11.478357] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[   11.555695] xt_time: kernel timezone is -0000
[   11.619332] mt76_wmac 10300000.wmac: ASIC revision: 76280001
[   13.664568] mt76_wmac 10300000.wmac: Firmware Version: 20151201
[   13.670592] mt76_wmac 10300000.wmac: Build Time: 20151201183641
[   13.676667] mt76_wmac 10300000.wmac: Firmware already running...
[   13.682771] mt76_wmac 10300000.wmac: firmware init done
[   16.712519] mt76_wmac 10300000.wmac: MCU message 33 (seq 1) timed out
[   16.722888] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   16.770406] PPP generic driver version 2.4.2
[   16.780086] NET: Registered protocol family 24
[   16.858614] kmodloader: done loading kernel modules from /etc/modules.d/*
[   18.130635] urandom_read: 5 callbacks suppressed
[   18.130647] random: jshn: uninitialized urandom read (4 bytes read)
[   22.314358] rt3050-esw 10110000.esw: link changed 0x00
[   26.040119] rt3050-esw 10110000.esw: link changed 0x01
[   28.133997] br-lan: port 1(eth0.1) entered blocking state
[   28.139549] br-lan: port 1(eth0.1) entered disabled state
[   28.145491] device eth0.1 entered promiscuous mode
[   28.150357] device eth0 entered promiscuous mode
[   28.212317] br-lan: port 1(eth0.1) entered blocking state
[   28.217868] br-lan: port 1(eth0.1) entered forwarding state
[   28.223750] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   29.112773] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   36.472494] mt76_wmac 10300000.wmac: MCU message 8 (seq 2) timed out
[   36.481568] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   36.590287] br-lan: port 2(wlan0) entered blocking state
[   36.595763] br-lan: port 2(wlan0) entered disabled state
[   36.601524] device wlan0 entered promiscuous mode
[   41.352300] mt76_wmac 10300000.wmac: MCU message 8 (seq 3) timed out
[   41.361359] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   41.368075] br-lan: port 2(wlan0) entered blocking state
[   41.373504] br-lan: port 2(wlan0) entered forwarding state
[   44.471892] mt76_wmac 10300000.wmac: MCU message 8 (seq 4) timed out
[   85.454189] random: crng init done
[  711.960992] rt3050-esw 10110000.esw: link changed 0x03
[ 1373.021130] rt3050-esw 10110000.esw: link changed 0x00
[ 1373.052478] device wlan0 left promiscuous mode
[ 1373.057116] br-lan: port 2(wlan0) entered disabled state
[ 1373.969190] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 1374.005370] br-lan: port 2(wlan0) entered blocking state
[ 1374.010846] br-lan: port 2(wlan0) entered disabled state
[ 1374.016619] device wlan0 entered promiscuous mode
[ 1374.021535] br-lan: port 2(wlan0) entered blocking state
[ 1374.026924] br-lan: port 2(wlan0) entered forwarding state
[ 1374.289305] br-lan: port 2(wlan0) entered disabled state
[ 1374.596175] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 1374.603034] br-lan: port 2(wlan0) entered blocking state
[ 1374.608443] br-lan: port 2(wlan0) entered forwarding state
[ 1376.851346] rt3050-esw 10110000.esw: link changed 0x01
[ 1376.948233] rt3050-esw 10110000.esw: link changed 0x03
[12114.053422] rt3050-esw 10110000.esw: link changed 0x01
[19468.914108] rt3050-esw 10110000.esw: link changed 0x03
[19549.040701] rt3050-esw 10110000.esw: link changed 0x01
[19559.550392] rt3050-esw 10110000.esw: link changed 0x03
[19569.628692] rt3050-esw 10110000.esw: link changed 0x01
[19572.198842] rt3050-esw 10110000.esw: link changed 0x03
[27637.559091] rt3050-esw 10110000.esw: link changed 0x01
[27647.610287] rt3050-esw 10110000.esw: link changed 0x03
[27656.457151] rt3050-esw 10110000.esw: link changed 0x01
[27660.160176] rt3050-esw 10110000.esw: link changed 0x03
[55061.087146] rt3050-esw 10110000.esw: link changed 0x01
[80362.456557] rt3050-esw 10110000.esw: link changed 0x03
[80432.607337] rt3050-esw 10110000.esw: link changed 0x01
[80444.982761] rt3050-esw 10110000.esw: link changed 0x03
[80453.328687] rt3050-esw 10110000.esw: link changed 0x01
[80456.877545] rt3050-esw 10110000.esw: link changed 0x03