IPTV not working due to LAN port(s) going up and down

I've almost finished my setup. It worked perfectly for half a day, but suddenly the IPTV decoder failed to connect.

The LAN port seems to be continuously going up and down. The previous log file (not shown here) had at least 30 entries of this. It doesn't matter which LAN port I plug the IPTV device into. Other devices run just fine. WiFi also gives me good access to the Internet.

dmesg

[   25.898860] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   26.062333] IPv6: ADDRCONF(NETDEV_CHANGE): phy0-ap0: link becomes ready
[   26.347696] IPv6: ADDRCONF(NETDEV_CHANGE): phy1-ap0: link becomes ready
[   26.354680] br-lan: port 4(phy1-ap0) entered blocking state
[   26.360271] br-lan: port 4(phy1-ap0) entered forwarding state
[   27.151302] mtk_soc_eth 1e100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
[   27.159695] IPv6: ADDRCONF(NETDEV_CHANGE): wan: link becomes ready
[  295.926978] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  295.935221] br-lan: port 1(lan1) entered blocking state
[  295.940490] br-lan: port 1(lan1) entered forwarding state
[  296.629909] mt7530-mdio mdio-bus:1f lan1: Link is Down
[  296.635329] br-lan: port 1(lan1) entered disabled state
[  298.311019] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  298.319265] br-lan: port 1(lan1) entered blocking state
[  298.324484] br-lan: port 1(lan1) entered forwarding state
[  323.444744] mt7530-mdio mdio-bus:1f lan1: Link is Down
[  323.450572] br-lan: port 1(lan1) entered disabled state
[  325.104540] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  325.112760] br-lan: port 1(lan1) entered blocking state
[  325.117987] br-lan: port 1(lan1) entered forwarding state
[  327.843840] mt7530-mdio mdio-bus:1f lan1: Link is Down
[  327.850315] br-lan: port 1(lan1) entered disabled state
[  332.393298] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  332.401514] br-lan: port 1(lan1) entered blocking state
[  332.406730] br-lan: port 1(lan1) entered forwarding state
[  378.231218] mt7530-mdio mdio-bus:1f lan1: Link is Down
[  378.236496] br-lan: port 1(lan1) entered disabled state
[  380.077098] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  380.085356] br-lan: port 1(lan1) entered blocking state
[  380.090646] br-lan: port 1(lan1) entered forwarding state
[  388.254641] mt7530-mdio mdio-bus:1f lan1: Link is Down
[  388.260977] br-lan: port 1(lan1) entered disabled state
[  390.100054] mt7530-mdio mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control rx/tx
[  390.108248] br-lan: port 1(lan1) entered blocking state
[  390.113468] br-lan: port 1(lan1) entered forwarding state

/etc/config/network

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

config globals 'globals'
	option ula_prefix 'fda5:ec9c:176e::/48'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.115.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option device 'wan'
	option proto 'dhcp'

config interface 'wan6'
	option device 'wan'
	option proto 'dhcpv6'

config interface 'wg0'
	option proto 'wireguard'
	option private_key [redacted]
	list addresses '10.10.10.7/24'

config wireguard_wg0
	option description 'SamLab'
	option public_key [redacted]
	option preshared_key [redacted]
	option endpoint_host [redacted]
	option endpoint_port '51821'
	option route_allowed_ips '1'
	list allowed_ips '10.10.10.0/24'
	option persistent_keepalive '25'

config route
	option interface 'wg0'
	option target '10.10.10.1/32'
	option gateway '192.168.115.1'

/etc/config/firewall

config defaults
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option synflood_protect '1'

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	list network 'lan'

config zone
	option name 'wan'
	list network 'wan'
	list network 'wan6'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config zone
	option name 'wg0'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	list network 'wg0'
	option mtu_fix '1'
	option masq '1'

config forwarding
	option src 'lan'
	option dest 'wg0'

config forwarding
	option src 'wg0'
	option dest 'wan'

/etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'
	option filter_aaaa '0'
	option filter_a '0'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

/etc/board.json

{
	"model": {
		"id": "asus,rt-ax53u",
		"name": "ASUS RT-AX53U"
	},
	"led": {
		"usb": {
			"name": "USB",
			"sysfs": "blue:usb",
			"type": "usbport",
			"ports": [
				"usb1-port2"
			]
		},
		"wlan2g": {
			"name": "WiFi 2.4GHz",
			"sysfs": "mt76-phy0",
			"trigger": "phy0tpt"
		},
		"wlan5g": {
			"name": "WiFi 5GHz",
			"sysfs": "mt76-phy1",
			"trigger": "phy1tpt"
		}
	},
	"network": {
		"lan": {
			"ports": [
				"lan1",
				"lan2",
				"lan3"
			],
			"protocol": "static"
		},
		"wan": {
			"device": "wan",
			"protocol": "dhcp"
		}
	},
	"system": {
		"compat_version": "1.1"
	}
}

Using OpenWRT 23.05.04 on an ASUS RT-AX53U router. I'm using LuCi to configure the device. If possible, I'd like to make my changes through this interface.

Does somebody know what is going on here? So close to getting this working ...

Upgrade to 05.5 using like luci-app-attendedsysupgrade
Who made your TV?
You do not need to forward wg to wan.
edit: also drop wg zone forward and input

there is nothing in your config juggling lan port.

can you get output of ethtool lan1 when it seemingly works?

Thanks for the reply. The decoder that uses the internet to send the image to the actual TV is a proprietary device of an ISP called Proximus here in Belgium. According to their pages, the device is called 'TV Box V5c', but I'm unable to find much information about it except that Technicolor makes them.

Thanks, I will remove the rule.

It never works anymore, so I can only give you the output when the decoder says 'connection error':

Settings for lan1:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full 
	                                     100baseT/Half 100baseT/Full 
	Link partner advertised pause frame use: Symmetric
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 100Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: external
	Auto-negotiation: on
	MDI-X: Unknown
	Supports Wake-on: d
	Wake-on: d
	Link detected: yes

That Speed: 100Mb/s doesn't seem right, though. It should be 1000.

Means conductors in the cable are broken. Replug both ends carefully, reverse cable, but ultimately you need it replaced.
You could work around resets by using ethtool to set port speed to negotiated one (via rc,local)

Strange thing is I already tried to replace the cable and it did not help.

Connect some laptop in place if tv to test cable, could be stb eth socket is defective.

That would be really painful because it is a brand new router.

Although ... None of the LAN ports work with the IPTV decoder, while I already affirmed that some ports work with other devices (like watching YouTube on the TV itself).

Will test further as you said; thanks.

Put a working gigabit client in place of tv. The short cable included with router certainly works. Then decide it is cable or STB.

With STB you mean the decoder from Proximus? If I connect the WAN cable directly to it everything works. Likewise, if I connect the cable from the ASUS router to my computer everything works. I have a vague feeling this has something to do with the software (kernel?) and how it handles IPTV.

Thanks for the input, but I'm afraid that's not what's happening.

At gigabit?

Yep. Checked both cables and both ports.

As a possible workaround place a switch between router and stb.
It looks like something in the negotiation between router and stb is off

Yeah unfortunately I'm a bit constrained in my budget and I don't have spare parts lying around.