Hello,
After several days of debug I put the finger on a very strange issue using integrated Ethernet.
I use my Rockpro64 mostly as a Samba and DNS server.
In my network context I implement 2 vlans as vlan interfaces (eth0.10 and eth0.20).
Each of these interfaces needs to use a specific mac address that differs from physical eth0 mac address (it is an important point).
If I use only the physical mac my router is not be able to route correctly between vlans (probably an ivl/svl issue).
Under this context I first noticed that when I bring down eth0.20 although using vlan 10 (so eth0.10) connectivity is lost.
I then write a script to gather all needed information (ie. ip link/addr/route/rule/neigh, ping, arping, netstat, ...) ==> no peculiar problem
I then add a background tcpdump and, guess what, the connectivity loss didn't occur anymore !
After thinking a bit, I made the assumption that the main difference is the use of promiscuous mode during tcpdump.
==> and "bingo" : setting 'promisc' flag on eth0 acts as a workaround.
Also if I do not set a specific mac for vlan and use physical mac leads to no connectivity issue, despite the wrong routing.
The key point seems that bringing down a vlan interface unregisters all macaddress from listening process instead only the needed, so the connectivity problem.
I don't know if it's a hardware limitation, a driver bug or Armbian issue, but I am open to any fix or at least, any debug hint that helps to narrow down the root cause.
Regards.