I tested the latest master on my 3 Zyxel devices, one for each SoC generation, the GS1900-10HP, the GS1900-48 and the XGS-1210-10. They got their IP addresses via DHCP on port 1 using the default network setup. I then tested pinging, multicast (VLC) and iperf between different non-management ports (2 and 3) and for multicast verified that nothing could be seen on the router's CPU-Port nor the management PC. I did not test anything specific to VLAN. I merely verified via "bridge fdb"t that the entries in the forwarding table now use the vlan as forwarding ID together with the target MAC address. Before that they were using a fixed and very strange forwarding ID (4031 on the 8380) together with a MAC-address. At the moment I do not have access to these devices (in summer house) only a buggy DLink DGS 1210-10P, that does not want to bridge between ports with OpenWRT. I added some interesting debug possibility in my "pie" branch. copy debugfs.c over and you can use

|cat /sys/kernel/debug/rtl838x/drop_counters|

to see why the switch drops packets.
To debug the issues in master you could comment out the things done in dsa.c:rtl83xx_vlan_setup(). The only critical one for the multicast is the setup of the vlans in the loop below
// Initialize all vlans 0-4095

Birger

||

On 08/05/2021 15:32, Bjørn Mork wrote:
Birger Koblitz<[email protected]>  writes:

Dear Russel,

depending on how a particular device was configured previously by
u-boot, this commit might have enabled proper vlan-filtering for the
first time on your device.  The default vlan-configuration has port 1
configured as management port with vlan-id 100. So your DHCP server
would need to answer with this vlan-id. Could you check that
- before the commit, the device was actually filtering vlans
- after the commit you have a correct vlan configuration on the device
   talking to the switch on port 1 and that this corresponds to the
  vlan configuration of that port
Does the latest master work for you?

I see the same issues Russell reports.  With a config like:

root@OpenWrt:/# bridge vlan
port              vlan-id
lan1              1 PVID Egress Untagged
                   100
lan2              1 PVID Egress Untagged
                   100
lan3              1 PVID Egress Untagged
lan4              1 PVID Egress Untagged
lan5              1 PVID Egress Untagged
lan6              1 PVID Egress Untagged
lan7              1 PVID Egress Untagged
lan8              1 PVID Egress Untagged
switch            1
                   100
root@OpenWrt:/# ifconfig switch.100
switch.100 Link encap:Ethernet  HWaddr BE:A5:11:9F:E1:23
           inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
           inet6 addr: fe80::bca5:11ff:fe9f:e123/64 Scope:Link
           inet6 addr: fd49:b68c:340b::1/60 Scope:Global
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 B)  TX bytes:1360 (1.3 KiB)



Looks like packets coming into port lan2 tagged with vlan id 100 are
dropped:

root@OpenWrt:/# ping 192.168.100.111
PING 192.168.100.111 (192.168.100.111): 56 data bytes
^C
--- 192.168.100.111 ping statistics ---
7 packets transmitted, 0 packets received, 100% packet loss
root@OpenWrt:/# ip ne sh
192.168.100.111 dev switch.100  FAILED


The other end, connected to lan2, sees the tagged arps and replies. So I
believe these must be dropped on ingress to the switch:

17055   May  8, 2021 15:23:00.973571758 CEST    be:a5:11:9f:e1:23       
ff:ff:ff:ff:ff:ff       100     ARP     Who has 192.168.100.111? Tell 
192.168.100.1
17056   May  8, 2021 15:23:00.973594729 CEST    34:97:f6:5d:03:11       
be:a5:11:9f:e1:23       100     ARP     192.168.100.111 is at 34:97:f6:5d:03:11
17057   May  8, 2021 15:23:01.593254696 CEST    80:e8:6f:97:78:01       
01:80:c2:00:00:00               STP     Conf. Root = 32768/37/80:e8:6f:97:78:00 
 Cost = 0  Port = 0x8001
17058   May  8, 2021 15:23:02.013561194 CEST    be:a5:11:9f:e1:23       
ff:ff:ff:ff:ff:ff       100     ARP     Who has 192.168.100.111? Tell 
192.168.100.1
17059   May  8, 2021 15:23:02.013572143 CEST    34:97:f6:5d:03:11       
be:a5:11:9f:e1:23       100     ARP     192.168.100.111 is at 34:97:f6:5d:03:11


Reverting the two commits

  cde31976e375 ("realtek: Add support for Layer 2 Multicast")
  4342d27ec90c ("realtek: Setup all VLANs with default configurations")

fixes the problem.  I guess 4342d27ec90c is the critical one.  Just
reverting both to avoid having to manually fixup anything for this
simple test.


With exactly the same config as above:

root@OpenWrt:/# ping 192.168.100.111
PING 192.168.100.111 (192.168.100.111): 56 data bytes
64 bytes from 192.168.100.111: seq=0 ttl=64 time=1.714 ms
64 bytes from 192.168.100.111: seq=1 ttl=64 time=0.866 ms
^C
--- 192.168.100.111 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.866/1.290/1.714 ms
root@OpenWrt:/# ip ne sh
192.168.100.111 dev switch.100 lladdr 34:97:f6:5d:03:11 REACHABLE


Bjørn

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to