TP-Link Archer C5 v1.2: packet drops on eth0 and eth1

Hi all,

Just recently I started using a third party firmware on my router, a TP-Link Archer C5 v1.2. I have experience with Linux and networking, so am enjoying using LEDE 17.01.0 a lot. It works great but I have one problem and it manifests itself during watching tv. On both ethernet interfaces I see RX drops and when this happens on the inside interface (eth1) I get hiccups on tv.

Let me first explain how everything is configured.

I have a (pair bonded) VDSL2 connection at home. The supplied router by my provider is a FritzBox 7581 and it's only connected to the LEDE router's WAN interface (eth0). The FB uses NAT and so does the LEDE router (I want to change this in the future and put the LEDE router in the FB's DMZ and deliver all incoming IP traffic to the LEDE router).

IPTV is delivered through multicasting. The set-top boxes are on the internal LAN which is connected to the LEDE router's internal switch (which I think is eth1); it's also bridged with the wifi network. On the LEDE router igmpproxy is active and configured.

For now I think the hiccups on TV are not because of a wrong configuration of multicasting. What I have noticed is that whenever a hiccup occurs (sometimes multiple per minute) the RX drop counter of eth1 is advanced by 1. I checked this for a couple of minutes and there seems to be a match.

These are the statistics of eth0 (WAN) and eth1 (LAN):

root@bw62-router:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 30:B5:C2:9B:4F:C3
inet addr:192.168.62.10 Bcast:192.168.62.255 Mask:255.255.255.0
inet6 addr: fe80::32b5:c2ff:fe9b:4fc3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1860178 errors:0 dropped:17632 overruns:0 frame:0
TX packets:285210 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1937972802 (1.8 GiB) TX bytes:42530399 (40.5 MiB)
Interrupt:4

root@bw62-router:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 30:B5:C2:9B:4F:C2
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1118374 errors:0 dropped:577 overruns:0 frame:0
TX packets:1000913 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1154701233 (1.0 GiB) TX bytes:876936385 (836.3 MiB)
Interrupt:5

root@bw62-router:~# uptime
17:08:08 up 4:45, load average: 0.00, 0.04, 0.01

The TV hasn't been on for a couple of hours. I think other network devices also have to deal with these drops, but because of retransmissions I don't notice it. IPTV is not so forgiving.

My question for now: how should I troubleshoot this?

Please let me know if you want me to provide other information or screendumps.

Hello,
dropped should be unknow frames of L2 protocols. Until frame and overruns is 0, it is OK. Try install ethtool and take a look to ethtool -s eth1 and ethtool -s eth0 or cat /proc/net/dev for more detailed statistics, which frames are dropped

Thank you for your reply! Good to know the actual meaning of dropped, did not know that. Underruns (from ifconfig) and frames (from /proc/net/dev, see below) are both zero. So, no problem there.

Unfortunately I can't get statistics from either NIC:

root@bw62-router:/proc/12507/net# ethtool -i eth0
driver: ag71xx
version: 0.5.35
firmware-version:
expansion-rom-version:
bus-info: ag71xx.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

The same is for eth1.

/proc/net/dev shows the following (removed the other interfaces for clarity):

Inter-| Receive | Transmit
face | bytes packets errs drop fifo frame compressed multicast | bytes packets errs drop fifo colls carrier compressed
eth1: 1719472386 9886953 0 8299 3 0 0 0 1607590837 45641377 0 0 0 0 0 0
eth0: 4182528437 29715481 0 33 0 0 0 0 513765283 4087060 0 0 0 0 0 0

I also made a capture of the network traffic on br-lan and analyzed it with Wireshark. I didn't see any tcp retransmissions although the dropped counter progressed during the capture, so the hiccups I see on tv are probably not caused by the problem I originally thought.

Can this than actually be a multicasting problem? I'm not that familiar with multicasting, so don't know if this problem has something to do with the igmp proxy daemon. At the moment I'm using igmpproxy, but will try out mcproxy. Will let you know how this works out.

To round off this thread, here's how I finally handled it. I didn't seem to get it stable with either LEDE or OpenWRT. Is has probably to do with my lack of knowledge of multicasting/IGMP.

For now I reorganized my network: The connection from WAN on my LEDE router to the LAN side of the Fritzbox is placed in VLAN 2 by the LEDE router. This VLAN is being tagged offered to a couple of switches on my network. The switch ports where the set top boxes are connected to offer VLAN 2 untagged.

The result is now that IPTV works great again.

As I didn't like the dual natting on my network now (the FB does NAT traffic from the LAN to internet and the LEDE router behind it that is connected through the WAN port to the LAN side of the FB, does also NAT), I ordered a public /29 from my provider, so that the LEDE router is now directly connected to the internet. This to make things less complex, fun and to educate myself... :smiley: