GL-XE300 stopped giving DHCP addresses (persists across factory reset)

My GL-XE300 suddenly stopped giving DHCP addresses to devices connected to WiFi or Ethernet. Most frustrating is that even a factory reset doesn't seem to restore functionality.

In logs, I see the DHCPDISCOVER and DHCPOFFER:

Mon Apr 10 07:08:09 2023 kern.warn kernel: [ 2267.936991] br-lan: received packet on eth0 with own address as source address (addr:94:83:c4:4e:e1:02, vlan:0)
Mon Apr 10 07:08:10 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) bc:d0:74:03:41:79
Mon Apr 10 07:08:10 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.8.163 bc:d0:74:03:41:79
Mon Apr 10 07:08:10 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) bc:d0:74:03:41:79
Mon Apr 10 07:08:10 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.8.163 bc:d0:74:03:41:79
Mon Apr 10 07:08:15 2023 kern.warn kernel: [ 2274.657228] br-lan: received packet on eth0 with own address as source address (addr:94:83:c4:4e:e1:02, vlan:0)
Mon Apr 10 07:08:16 2023 kern.warn kernel: [ 2275.697220] br-lan: received packet on eth0 with own address as source address (addr:94:83:c4:4e:e1:02, vlan:0)

I'm not sure if the other log message (received packet on eth0 with own address...) is relevant, which is why I left it in.

I've tried multiple client devices - it definitely seems to be the GL-XE300. This device was working super-well for a few months before this happened. I just can't figure it out!

Hello,

From the logs you provide, the router DHCPOFFER provides IP normally.

Please install wireshark on your client (such as PC), and capture the network packets of NIC to see if the DHCP OFFER has been received?

Synchronize to do on the SSH to router, install tcpdump, capture the br-lan network packets, and see if the OFFER/ACK is sent?

opkg update
opkg install tcpdump
tcpdump -i br-lan port 67 or port 68