WRT3200ACM and DSA

On first boot, those lines did not exist.

I've modeled the armada-385-linksys-x lines in 02_network in my branch after the Turris Omnia. The thing is, as long as I don't touch or make changes via LuCI > Network > Interfaces, it does not generate the additional switch0 lines. After a reboot, it even goes away on its own.

Doing it via uci or vi doesn't generate the same swconfig lines. Only via LuCI for some reason.

EDIT - this is what it looks like after a fresh reboot (IPv6 basically doesn't exist in the country I'm currently in):

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

config globals 'globals'

config interface 'lan'
	option type 'bridge'
	option ifname 'lan4 lan3 lan2 lan1'
	option proto 'static'
	option netmask '255.255.255.0'
	option igmp_snooping '1'
	option ipaddr '192.168.2.1'
	option delegate '0'

config interface 'wan'
	option ifname 'wan'
	option proto 'dhcp'
	option peerdns '0'
	option dns '192.168.2.3'

config interface 'wan6'
	option ifname 'wan'
	option proto 'none'

Given that there’s no UCI, netifd, or LuCI integration for something that doesn’t exist, some unexpected behavior like that is not surprising.

@shm0 The randomly generated MAC address is probably the kernel's doing. I have Arch Linux ARM installed on my Turris Omnia but I need to figure out a way to fix the MAC Addresses. eth0 gets a proper MAC Address but eth1 and eth2 do not.

I only have eth0 and eth1.
Both have proper mac address.
One interface does indeed have a random mac address on boot but this is not the same random mac address as in the broadcast.
Some script is running at boot that copies the mac address from the "proper" interface to the interface with the random mac address. The script is included in openwrt maybe you can modify it to fit your needs?

https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/mvebu/base-files/lib/preinit/06_set_iface_mac;h=534a271efbfbbe02abdb485ffad0f57588b4f393;hb=HEAD

Indeed, DSA is terrible for end users. swconfig is easy to understand and configure.

While sort-of drifting off topic, yet sort-of related, I think that it is switches that are the challenge for non-technical users. DSA has some hope in transforming the multi-step process of configuration of sub-interfaces, seemingly meaningless VLAN numbers, and "should this be tagged or untagged?" into something understandable like

  • Connect the Internet port to my WAN
  • Connect my LAN and my wireless to ports 1-4

and be able to "see" that in the output of a single command, and clearly represent it in LuCI.

Do that without denying an advanced user free and "complete" control of their switch and VLANs, I think you've got a winner.

1 Like

Hi all,
I have a device used the armada 370 soc and mv88e6171r switch chip.And I've tried to use the DSA driver in the kernel,but I'm getting a performance issue that the throughput of my device was limited at about 200Mbit(the throughput acctully at about 450Mbit+ when using the mvsw61xx driver).

Here is the full boot log of my device(DSA driver):

BootROM 1.08
Booting from NAND flash
High speed PHY - Version: 2.1.2 (COM-PHY-V20) 
Update PEX Device ID 0x67100
High speed PHY - Ended Successfully
                                   DDR3 Training Sequence - Ver 4.5.0 
DDR3 Training Sequence - Ended Successfully 
Status = MV_OK
BootROM: Image checksum verification PASSED

 __   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
         _   _     ____              _
        | | | |   | __ )  ___   ___ | |_ 
        | | | |___|  _ \ / _ \ / _ \| __| 
        | |_| |___| |_) | (_) | (_) | |_ 
         \___/    |____/ \___/ \___/ \__| 
 ** LOADER **


U-Boot 2011.12 (May 31 2014 - 19:07:19) RTNAS V3 2013_Q2.0

Board: RD-88F6710
SoC:   MV6710 A1
CPU:   Marvell PJ4B v7 UP (Rev 1) LE
       CPU    @ 1200 [MHz]
       L2     @ 600 [MHz]
       TClock @ 200 [MHz]
       DDR    @ 600 [MHz]
       DDR 16Bit Width, FastPath Memory Access
DRAM:  1 GiB

Map:   Code:            0x3ff0f000:0x3ffa11f4
       BSS:             0x3ffef340
       Stack:           0x3fa0eef8
       Heap:            0x3fa0f000:0x3ff0f000

NAND:  4096 MiB
MMC:   MRVL_MMC: 0
Bad block table found at page 1048320, version 0x01
Bad block table found at page 1048064, version 0x01
nand_read_bbt: Bad block at 0x000005a00000
nand_read_bbt: Bad block at 0x000005b00000
PEX 0: Root Complex Interface, Detected Link X1, GEN 1.1
PEX 1: Root Complex Interface, Detected Link X1, GEN 1.1
start OpenWrtLinux..........
FPU initialized to Run Fast Mode.
USB 0: Host Mode
USB 1: Host Mode
Shutting down unused interfaces:
       SDIO
       AUDIO
       TDM
Modules/Interfaces Detected:
       RGMII1 Switch module
       PEX0 (Lane 0)
       PEX1 (Lane 1)
       SATA0 (Lane 2)
       SATA1 (Lane 3)
Not Marvell PHY id1 ffff id2 ffff
Net:   egiga1 [PRIME]
Press Ctrl+C to abort autoboot in 3 second

NAND read: device 0 offset 0x1800000, size 0x400000
 4194304 bytes read: OK
## Booting kernel from Legacy Image at 02000000 ...
   Image Name:   ARM OpenWrt Linux-4.14.113
   Created:      2019-04-27  16:58:07 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2591861 Bytes = 2.5 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.113 (Wacke@HOME-Server) (gcc version 8.3.0 (OpenWrt GCC 8.3.0 r9551-483498808e)) #0 SMP Sat Apr 27 16:58:07 2019
[    0.000000] CPU: ARMv7 Processor [561f5811] revision 1 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: RTNAS V3
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] random: get_random_bytes called from start_kernel+0x74/0x478 with crng_init=0
[    0.000000] percpu: Embedded 12 pages/cpu @ef7e0000 s18892 r8192 d22068 u49152
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608
[    0.000000] Kernel command line: console=ttyS0,115200
[    0.000000] Bootloader command line (ignored): console=ttyS0,115200 ubi.mtd=5 root=ubi0:rootfs ro rootfstype=ubifs
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1029800K/1048576K available (6144K kernel code, 189K rwdata, 1388K rodata, 1024K init, 223K bss, 18776K reserved, 0K cma-reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0700000   (7136 kB)
[    0.000000]       .init : 0xc0900000 - 0xc0a00000   (1024 kB)
[    0.000000]       .data : 0xc0a00000 - 0xc0a2f500   ( 190 kB)
[    0.000000]        .bss : 0xc0a2f500 - 0xc0a674d8   ( 224 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C: DT/platform modifies aux control register: 0x12086302 -> 0x1a086302
[    0.000000] Aurora cache controller enabled, 4 ways, 256 kB
[    0.000000] Aurora: CACHE_ID 0x00000100, AUX_CTRL 0x1a086302
[    0.000000] Switching to timer-based delay loop, resolution 53ns
[    0.000007] sched_clock: 32 bits at 18MHz, resolution 53ns, wraps every 114840871909ns
[    0.000021] clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 102208375848 ns
[    0.000225] Calibrating delay loop (skipped), value calculated using timer frequency.. 37.39 BogoMIPS (lpj=186996)
[    0.000241] pid_max: default: 32768 minimum: 301
[    0.000345] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000360] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000741] CPU: Testing write buffer coherency: ok
[    0.000947] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.001226] Setting up static identity map for 0x100000 - 0x100060
[    0.001510] mvebu-soc-id: MVEBU SoC ID=0x6710, Rev=0x1
[    0.001599] mvebu-pmsu: Initializing Power Management Service Unit
[    0.001699] Hierarchical SRCU implementation.
[    0.002023] smp: Bringing up secondary CPUs ...
[    0.002032] smp: Brought up 1 node, 1 CPU
[    0.002040] SMP: Total of 1 processors activated (37.39 BogoMIPS).
[    0.002046] CPU: All CPU(s) started in SVC mode.
[    0.004575] VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 6
[    0.004700] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.004719] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.004781] pinctrl core: initialized pinctrl subsystem
[    0.005324] NET: Registered protocol family 16
[    0.005605] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.006114] cpuidle: using governor ladder
[    0.024159] SCSI subsystem initialized
[    0.024885] usbcore: registered new interface driver usbfs
[    0.024928] usbcore: registered new interface driver hub
[    0.024973] usbcore: registered new device driver usb
[    0.026634] clocksource: Switched to clocksource armada_370_xp_clocksource
[    0.027286] NET: Registered protocol family 2
[    0.027676] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.027724] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.027794] TCP: Hash tables configured (established 8192 bind 8192)
[    0.027876] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.027898] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.028002] NET: Registered protocol family 1
[    0.030523] Crashlog allocated RAM at address 0x3f00000
[    0.031048] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.034043] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.034054] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.041416] bounce: pool size: 64 pages
[    0.041438] io scheduler noop registered
[    0.041446] io scheduler deadline registered (default)
[    0.042051] armada-370-pinctrl f1018000.pin-ctrl: registered pinctrl driver
[    0.043901] mvebu-pcie soc:pcie@82000000: PCI host bridge to bus 0000:00
[    0.043919] pci_bus 0000:00: root bus resource [io  0x1000-0xfffff]
[    0.043928] pci_bus 0000:00: root bus resource [mem 0xf8000000-0xffdfffff]
[    0.043938] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.044272] PCI: bus0: Fast back to back transfers disabled
[    0.044284] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.044296] pci 0000:00:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.044633] PCI: bus1: Fast back to back transfers disabled
[    0.044974] PCI: bus2: Fast back to back transfers disabled
[    0.045019] pci 0000:00:01.0: BAR 8: assigned [mem 0xf8000000-0xf80fffff]
[    0.045031] pci 0000:00:02.0: BAR 8: assigned [mem 0xf8200000-0xf84fffff]
[    0.045044] pci 0000:01:00.0: BAR 0: assigned [mem 0xf8000000-0xf801ffff 64bit]
[    0.045062] pci 0000:01:00.0: BAR 6: assigned [mem 0xf8020000-0xf802ffff pref]
[    0.045072] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.045084] pci 0000:00:01.0:   bridge window [mem 0xf8000000-0xf80fffff]
[    0.045097] pci 0000:02:00.0: BAR 0: assigned [mem 0xf8200000-0xf83fffff 64bit]
[    0.045113] pci 0000:02:00.0: BAR 6: assigned [mem 0xf8400000-0xf840ffff pref]
[    0.045122] pci 0000:00:02.0: PCI bridge to [bus 02]
[    0.045131] pci 0000:00:02.0:   bridge window [mem 0xf8200000-0xf84fffff]
[    0.045479] mv_xor f1060800.xor: Marvell shared XOR driver
[    0.107521] mv_xor f1060800.xor: Marvell XOR (Registers Mode): ( xor cpy intr )
[    0.107718] mv_xor f1060900.xor: Marvell shared XOR driver
[    0.167515] mv_xor f1060900.xor: Marvell XOR (Registers Mode): ( xor cpy intr )
[    0.167760] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.168249] console [ttyS0] disabled
[    0.188376] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 18, base_baud = 12500000) is a 16550A
[    0.850718] console [ttyS0] enabled
[    0.857372] loop: module loaded
[    0.861196] sata_mv f10a0000.sata: slots 32 ports 2
[    0.868832] scsi host0: sata_mv
[    0.872455] scsi host1: sata_mv
[    0.875731] ata1: SATA max UDMA/133 irq 27
[    0.879901] ata2: SATA max UDMA/133 irq 27
[    0.884447] pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device
[    0.893232] pxa3xx-nand f10d0000.nand: non-supported command 5
[    0.899164] nand: Failed to detect ONFI extended param page
[    0.904765] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x68
[    0.911160] nand: Micron MT29F32G08CBACAWP
[    0.915276] nand: 4096 MiB, MLC, erase size: 1024 KiB, page size: 4096, OOB size: 224
[    0.923156] pxa3xx-nand f10d0000.nand: ECC strength 16, ECC step size 2048
[    0.930900] Bad block table found at page 1048320, version 0x01
[    0.937646] Bad block table found at page 1048064, version 0x01
[    0.943974] nand_read_bbt: bad block at 0x000005a00000
[    0.949160] nand_read_bbt: bad block at 0x000005b00000
[    0.954681] 7 fixed-partitions partitions found on MTD device pxa3xx_nand-0
[    0.961717] Creating 7 MTD partitions on "pxa3xx_nand-0":
[    0.967162] 0x000000000000-0x000000400000 : "u-boot"
[    0.972648] 0x000000400000-0x000000800000 : "uboot_env"
[    0.978311] 0x000000800000-0x000000c00000 : "vendor"
[    0.983683] 0x000000c00000-0x000001800000 : "unused"
[    0.989105] 0x000001800000-0x000001c00000 : "kernel"
[    0.994481] 0x000001c00000-0x000040000000 : "ubi"
[    1.000030] 0x000040000000-0x0000fbc00000 : "syscfg"
[    1.008369] nand: No NAND device found
[    1.012150] pxa3xx-nand f10d0000.nand: failed to scan nand at cs 1
[    1.018889] libphy: Fixed MDIO Bus: probed
[    1.023476] libphy: orion_mdio_bus: probed
[    1.029100] mv88e6085 f1072004.mdio-mii:00: switch 0x1710 detected: Marvell 88E6171, revision 2
[    1.183556] libphy: mv88e6xxx SMI: probed
[    1.189126] mvneta f1074000.ethernet eth0: Using random mac address 1a:92:ad:26:3c:45
[    1.197221] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.203780] ehci-platform: EHCI generic platform driver
[    1.209131] ehci-orion: EHCI orion driver
[    1.213282] orion-ehci f1050000.usb: EHCI Host Controller
[    1.218748] orion-ehci f1050000.usb: new USB bus registered, assigned bus number 1
[    1.226454] orion-ehci f1050000.usb: irq 24, io mem 0xf1050000
[    1.256741] orion-ehci f1050000.usb: USB 2.0 started, EHCI 1.00
[    1.262759] ata1: SATA link down (SStatus 0 SControl F300)
[    1.268921] hub 1-0:1.0: USB hub found
[    1.272892] hub 1-0:1.0: 1 port detected
[    1.277256] orion-ehci f1051000.usb: EHCI Host Controller
[    1.282700] orion-ehci f1051000.usb: new USB bus registered, assigned bus number 2
[    1.290459] orion-ehci f1051000.usb: irq 25, io mem 0xf1051000
[    1.316600] orion-ehci f1051000.usb: USB 2.0 started, EHCI 1.00
[    1.323028] hub 2-0:1.0: USB hub found
[    1.327014] hub 2-0:1.0: 1 port detected
[    1.331548] usbcore: registered new interface driver usb-storage
[    1.337859] i2c /dev entries driver
[    1.351752] (NULL device *): hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info().
[    1.364311] orion_wdt: Initial timeout 229 sec
[    1.369255] sdhci: Secure Digital Host Controller Interface driver
[    1.375465] sdhci: Copyright(c) Pierre Ossman
[    1.379986] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.389514] marvell-cesa f1090000.crypto: CESA device successfully registered
[    1.397448] NET: Registered protocol family 10
[    1.403243] Segment Routing with IPv6
[    1.407054] NET: Registered protocol family 17
[    1.412083] 8021q: 802.1Q VLAN Support v1.8
[    1.416340] Registering SWP/SWPB emulation handler
[    1.423309] mv88e6085 f1072004.mdio-mii:00: switch 0x1710 detected: Marvell 88E6171, revision 2
[    1.591877] libphy: mv88e6xxx SMI: probed
[    1.595972] DSA: switch 0 0 parsed
[    1.599460] DSA: tree 0 parsed
[    1.602583] ata2: SATA link down (SStatus 0 SControl F300)
[    1.909562] Generic PHY mv88e6xxx-1:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=mv88e6xxx-1:00, irq=POLL)
[    1.933447] Generic PHY mv88e6xxx-1:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=mv88e6xxx-1:01, irq=POLL)
[    1.953507] Generic PHY mv88e6xxx-1:02: attached PHY driver [Generic PHY] (mii_bus:phy_addr=mv88e6xxx-1:02, irq=POLL)
[    1.976475] Generic PHY mv88e6xxx-1:03: attached PHY driver [Generic PHY] (mii_bus:phy_addr=mv88e6xxx-1:03, irq=POLL)
[    2.000465] Generic PHY mv88e6xxx-1:04: attached PHY driver [Generic PHY] (mii_bus:phy_addr=mv88e6xxx-1:04, irq=POLL)
[    2.014508] UBI: auto-attach mtd5
[    2.017942] ubi0: attaching mtd5
[    2.055414] random: fast init done
[    4.394697] ubi0: scanning is finished
[    4.413643] ubi0: attached mtd5 (name "ubi", size 996 MiB)
[    4.419242] ubi0: PEB size: 1048576 bytes (1024 KiB), LEB size: 1040384 bytes
[    4.426417] ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 4096
[    4.433274] ubi0: VID header offset: 4096 (aligned 4096), data offset: 8192
[    4.440301] ubi0: good PEBs: 994, bad PEBs: 2, corrupted PEBs: 0
[    4.446339] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
[    4.453624] ubi0: max/mean erase counter: 11/4, WL threshold: 4096, image sequence number: 553001727
[    4.462827] ubi0: available PEBs: 0, total reserved PEBs: 994, PEBs reserved for bad PEB handling: 78
[    4.472205] ubi0: background thread "ubi_bgt0d" started, PID 641
[    4.479441] block ubiblock0_0: created from ubi0:0(rootfs)
[    4.484968] ubiblock: device ubiblock0_0 (rootfs) set to be root filesystem
[    4.492247] hctosys: unable to open rtc device (rtc0)
[    4.505500] VFS: Mounted root (squashfs filesystem) readonly on device 254:0.
[    4.514042] Freeing unused kernel memory: 1024K
[    4.773501] random: crng init done
[    4.873272] init: Console is alive
[    4.877073] init: - watchdog -
[    5.862712] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    5.916723] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    5.934869] init: - preinit -
Failed to connect to the switch. Use the "list" command to see which switches are available.
Failed to connect to the switch. Use the "list" command to see which switches are available.
Failed to connect to the switch. Use the "list" command to see which switches are available.
Failed to connect to the switch. Use the "list" command to see which switches are available.
[    8.532410] mvneta f1074000.ethernet eth0: configuring for fixed/rgmii-id link mode
[    8.541075] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    8.547415] mvneta f1074000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[    8.555384] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   12.777365] mount_root: loading kmods from internal overlay
[   12.818951] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[   12.829080] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[   13.002260] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 752
[   14.373604] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   14.381542] UBIFS (ubi0:1): LEB size: 1040384 bytes (1016 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
[   14.391711] UBIFS (ubi0:1): FS size: 896811008 bytes (855 MiB, 862 LEBs), journal size 33292288 bytes (31 MiB, 32 LEBs)
[   14.402567] UBIFS (ubi0:1): reserved for root: 4952683 bytes (4836 KiB)
[   14.409262] UBIFS (ubi0:1): media format: w4/r0 (latest is w5/r0), UUID B65F5C2C-7CFE-493C-8A43-7CF8C4743A47, small LPT model
[   14.422748] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   14.430015] block: unable to load configuration (fstab: Entry not found)
[   14.436995] block: attempting to load /tmp/ubifs_cfg/etc/config/fstab
[   14.443653] block: unable to load configuration (fstab: Entry not found)
[   14.450623] block: attempting to load /etc/config/fstab
[   14.456983] block: unable to load configuration (fstab: Entry not found)
[   14.463829] block: no usable configuration
[   14.479374] UBIFS (ubi0:1): un-mount UBI device 0
[   14.484193] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" stops
[   14.502655] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 755
[   15.886707] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   15.894590] UBIFS (ubi0:1): LEB size: 1040384 bytes (1016 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
[   15.904780] UBIFS (ubi0:1): FS size: 896811008 bytes (855 MiB, 862 LEBs), journal size 33292288 bytes (31 MiB, 32 LEBs)
[   15.915644] UBIFS (ubi0:1): reserved for root: 4952683 bytes (4836 KiB)
[   15.922318] UBIFS (ubi0:1): media format: w4/r0 (latest is w5/r0), UUID B65F5C2C-7CFE-493C-8A43-7CF8C4743A47, small LPT model
[   16.064281] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   16.071584] block: unable to load configuration (fstab: Entry not found)
[   16.078556] block: attempting to load /tmp/ubifs_cfg/etc/config/fstab
[   16.085214] block: unable to load configuration (fstab: Entry not found)
[   16.092322] block: attempting to load /etc/config/fstab
[   16.097847] block: unable to load configuration (fstab: Entry not found)
[   16.104683] block: no usable configuration
[   16.110760] mount_root: overlay filesystem has not been fully initialized yet
[   16.119640] mount_root: switching to ubifs overlay
- config restore -
[   16.422757] urandom-seed: Seed file not found (/etc/urandom.seed)
[   16.493682] mvneta f1074000.ethernet eth0: Link is Down
[   16.543706] procd: - early -
[   16.547325] procd: - watchdog -
[   17.154117] procd: - watchdog -
[   17.161542] procd: - ubus -
[   17.236045] procd: - init -
Please press Enter to activate this console.
[   17.786112] kmodloader: loading kernel modules from /etc/modules.d/*
[   17.816309] NET: Registered protocol family 38
[   17.846014] ntfs: driver 2.1.32 [Flags: R/O MODULE].
[   17.859056] tun: Universal TUN/TAP device driver, 1.6
[   17.869793] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   17.880756] gre: GRE over IPv4 demultiplexor driver
[   17.887295] ip_gre: GRE over IPv4 tunneling driver
[   17.911178] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   17.953449] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   18.087395] Netfilter messages via NETLINK v0.30.
[   18.094863] ip_set: protocol 6
[   18.186879] cryptodev: driver 1.10 loaded.
[   18.204902] fuse init (API version 7.26)
[   18.221900] Loading modules backported from Linux version v4.19.32-0-g3a2156c839c7
[   18.229638] Backport generated by backports.git v4.19.32-1-0-g1c4f7569
[   18.275259] ip_tables: (C) 2000-2006 Netfilter Core Team
[   18.324307] ctnetlink v0.93: registering with nfnetlink.
[   18.460155] nf_tables: (c) 2007-2009 Patrick McHardy <kaber@trash.net>
[   18.588001] usbcore: registered new interface driver ums-alauda
[   18.595483] usbcore: registered new interface driver ums-cypress
[   18.618023] usbcore: registered new interface driver ums-datafab
[   18.626939] usbcore: registered new interface driver ums-freecom
[   18.646978] usbcore: registered new interface driver ums-isd200
[   18.654095] usbcore: registered new interface driver ums-jumpshot
[   18.677734] usbcore: registered new interface driver ums-karma
[   18.686215] usbcore: registered new interface driver ums-sddr09
[   18.711252] usbcore: registered new interface driver ums-sddr55
[   18.733931] usbcore: registered new interface driver ums-usbat
[   18.748845] usbcore: registered new interface driver usblp
[   18.762004] wireguard: WireGuard 0.0.20190406 loaded. See www.wireguard.com for information.
[   18.770600] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[   18.825176] xt_time: kernel timezone is -0000
[   18.894117] PPP generic driver version 2.4.2
[   18.900821] PPP MPPE Compression module registered
[   18.907467] NET: Registered protocol family 24
[   18.933853] ath10k 4.19 driver, optimized for CT firmware, probing pci device: 0x3c.
[   18.942758] pci 0000:00:02.0: enabling device (0140 -> 0142)
[   18.948907] ath10k_pci 0000:02:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   19.191120] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/fwcfg-pci-0000:02:00.0.txt failed with error -2
[   19.201783] ath10k_pci 0000:02:00.0: Falling back to user helper
[   19.220662] firmware ath10k!fwcfg-pci-0000:02:00.0.txt: firmware_loading_store: map pages failed
[   19.229933] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:02:00.0.bin failed with error -2
[   19.240766] ath10k_pci 0000:02:00.0: Falling back to user helper
[   19.260982] firmware ath10k!pre-cal-pci-0000:02:00.0.bin: firmware_loading_store: map pages failed
[   19.270435] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2
[   19.280910] ath10k_pci 0000:02:00.0: Falling back to user helper
[   19.301214] firmware ath10k!cal-pci-0000:02:00.0.bin: firmware_loading_store: map pages failed
[   19.310409] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/ct-firmware-5.bin failed with error -2
[   19.321484] ath10k_pci 0000:02:00.0: Falling back to user helper
[   19.341839] firmware ath10k!QCA988X!hw2.0!ct-firmware-5.bin: firmware_loading_store: map pages failed
[   19.441978] ath10k_pci 0000:02:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   19.451304] ath10k_pci 0000:02:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   19.461351] ath10k_pci 0000:02:00.0: firmware ver 10.1-ct-8x-__fH-022-883e26a8 api 2 features wmi-10.x,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-r4
[   19.510667] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   19.521227] ath10k_pci 0000:02:00.0: Falling back to user helper
[   19.540090] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   19.553821] ath10k_pci 0000:02:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   20.463760] ath10k_pci 0000:02:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   20.481444] ath10k_pci 0000:02:00.0: wmi print 'P 128 V 8 T 410'
[   20.487549] ath10k_pci 0000:02:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   20.495763] ath10k_pci 0000:02:00.0: wmi print 'alloc rem: 24696 iram: 27160'
[   20.564066] ath10k_pci 0000:02:00.0: htt-ver 2.2 wmi-op 2 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
[   20.576843] ath10k_pci 0000:02:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   20.766018] pci 0000:00:01.0: enabling device (0140 -> 0142)
[   20.871924] ieee80211 phy1: Atheros AR9300 Rev:3 mem=0xf20a0000, irq=45
[   20.995167] kmodloader: done loading kernel modules from /etc/modules.d/*
[   38.562271] mvneta f1074000.ethernet eth0: configuring for fixed/rgmii-id link mode
[   38.570202] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   38.576149] mvneta f1074000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   38.598028] device eth0 entered promiscuous mode
[   38.644037] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   38.651390] br-lan: port 1(lan0) entered blocking state
[   38.656764] br-lan: port 1(lan0) entered disabled state
[   38.699928] device lan0 entered promiscuous mode
[   38.828919] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   38.907816] br-lan: port 2(lan1) entered blocking state
[   38.913085] br-lan: port 2(lan1) entered disabled state
[   38.942742] device lan1 entered promiscuous mode
[   38.997627] br-lan: port 3(lan2) entered blocking state
[   39.002924] br-lan: port 3(lan2) entered disabled state
[   39.047505] device lan2 entered promiscuous mode
[   39.140029] br-lan: port 4(lan3) entered blocking state
[   39.145320] br-lan: port 4(lan3) entered disabled state
[   39.198499] device lan3 entered promiscuous mode
[   39.268368] IPv6: ADDRCONF(NETDEV_UP): wan: link is not ready
[   39.942420] mv88e6085 f1072004.mdio-mii:00 lan0: Link is Down
[   40.039857] mv88e6085 f1072004.mdio-mii:00 lan1: Link is Down
[   40.100901] mv88e6085 f1072004.mdio-mii:00 lan2: Link is Down
[   40.169538] mv88e6085 f1072004.mdio-mii:00 lan3: Link is Down
[   40.340128] mv88e6085 f1072004.mdio-mii:00 wan: Link is Down
[   41.825587] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[   43.060446] mv88e6085 f1072004.mdio-mii:00 lan0: Link is Up - 1Gbps/Full - flow control rx/tx
[   43.573541] ath10k_pci 0000:02:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   43.590837] ath10k_pci 0000:02:00.0: wmi print 'P 128 V 8 T 410'
[   43.596977] ath10k_pci 0000:02:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   43.605272] ath10k_pci 0000:02:00.0: wmi print 'alloc rem: 24696 iram: 27160'
[   43.672679] ath10k_pci 0000:02:00.0: pdev param 0 not supported by firmware
[   43.692758] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   43.699297] br-lan: port 5(wlan1) entered blocking state
[   43.704682] br-lan: port 5(wlan1) entered disabled state
[   43.710407] device wlan1 entered promiscuous mode
[   43.716683] br-lan: port 1(lan0) entered blocking state
[   43.721956] br-lan: port 1(lan0) entered forwarding state
[   43.755431] br-lan: port 6(wlan0) entered blocking state
[   43.760894] br-lan: port 6(wlan0) entered disabled state
[   43.766543] device wlan0 entered promiscuous mode
[   43.786478] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   43.824454] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[   43.831178] br-lan: port 5(wlan1) entered blocking state
[   43.836624] br-lan: port 5(wlan1) entered forwarding state
[   43.973432] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   43.980181] br-lan: port 6(wlan0) entered blocking state
[   43.985566] br-lan: port 6(wlan0) entered forwarding state

And the iperf3 output(my device is server and the client is PC ):

root@OpenWrt:/# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.2, port 39280
[  5] local 192.168.1.200 port 5201 connected to 192.168.1.2 port 39282
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  15.7 MBytes   131 Mbits/sec                  
[  5]   1.00-2.01   sec  19.5 MBytes   163 Mbits/sec                  
[  5]   2.01-3.00   sec  19.9 MBytes   168 Mbits/sec                  
[  5]   3.00-4.00   sec  19.9 MBytes   167 Mbits/sec                  
[  5]   4.00-5.01   sec  19.7 MBytes   164 Mbits/sec                  
[  5]   5.01-6.01   sec  21.0 MBytes   175 Mbits/sec                  
[  5]   6.01-7.00   sec  17.0 MBytes   144 Mbits/sec                  
[  5]   7.00-8.00   sec  19.9 MBytes   167 Mbits/sec                  
[  5]   8.00-9.01   sec  20.4 MBytes   171 Mbits/sec                  
[  5]   9.01-10.00  sec  20.3 MBytes   171 Mbits/sec                  
[  5]  10.00-10.04  sec   763 KBytes   173 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.04  sec   194 MBytes   162 Mbits/sec                  receiver

( my PC is server and my device is client):

root@OpenWrt:/# iperf3 -c 192.168.1.2
Connecting to host 192.168.1.2, port 5201
[  5] local 192.168.1.200 port 59738 connected to 192.168.1.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.01   sec  50.0 MBytes   417 Mbits/sec    0    274 KBytes       
[  5]   1.01-2.01   sec  50.0 MBytes   420 Mbits/sec    0    122 KBytes       
[  5]   2.01-3.01   sec  50.0 MBytes   418 Mbits/sec    0    266 KBytes       
[  5]   3.01-4.02   sec  50.0 MBytes   417 Mbits/sec    0    249 KBytes       
[  5]   4.02-5.02   sec  51.2 MBytes   428 Mbits/sec    0    257 KBytes       
[  5]   5.02-6.00   sec  42.5 MBytes   364 Mbits/sec    0    252 KBytes       
[  5]   6.00-7.02   sec  50.0 MBytes   412 Mbits/sec    0    263 KBytes       
[  5]   7.02-8.03   sec  51.2 MBytes   426 Mbits/sec    0    252 KBytes       
[  5]   8.03-9.01   sec  50.0 MBytes   424 Mbits/sec    0    257 KBytes       
[  5]   9.01-10.01  sec  51.2 MBytes   432 Mbits/sec    0    235 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   496 MBytes   416 Mbits/sec    0             sender
[  5]   0.00-10.05  sec   496 MBytes   414 Mbits/sec                  receiver

iperf Done.

Any idea about this? Thanks.

Hmm...
seems like wan,lan1-4 get a random mac address on each reboot.
Actually i don't know, why i didn't noticed this before.
So the 06_set_iface_mac script also needs to be modified to set the mac addresses accordingly.

The random mac 00:01:5c:74:fc:46 is still there in the broadcast but that is how dsa works, i guess..
But i wonder why on my system those dsa broadcast end up in the actual broadcast statistics.
Can someone with a dsa enabled openwrt version run a tcpdump -i ethX broadcast for me, please?

Some offtopic... Do all default mac addresses on linksys wrt devices actually end with 1?

Alright I'll take a look at it tonight. I'll probably also re-include blogic's MAC address patch.

And nope, my MAC address (from GB) doesn't end with 1.

Side note: I've been experimenting with IGMP snooping - I think it's working now (where it wasn't with swconfig).

@wackejohn That could be caused by the fact that only one of the two CPU ports are availabe on DSA. I can't really remedy that myself. However, it can be remedied nonetheless as there exists a patch for mediatek. But porting something like that to mv88e61xx is out of my scope.

What do you mean by that? Wasn't it working before? I have it enabled and it works for me (?)

Hmm, it wasn't working for me with swconfig. But on the DSA build it works.

On a build with swconfig and LuCI, it sets this parameter properly:

root@WRT1900ACS-U:~#  cat /sys/devices/virtual/net/br-lan/bridge/multicast_snooping 
1

But looking closer, it actually doesn't do anything.

root@WRT1900ACS-U:~# swconfig dev switch0 help
switch0: 10.mvsw61xx(MV88E6176), ports: 7 (cpu @ 5), vlans: 64
     --switch
	Attribute 1 (int): enable_vlan (Enable 802.1q VLAN support)
	Attribute 2 (none): apply (Activate changes in the hardware)
	Attribute 3 (none): reset (Reset the switch)
     --vlan
	Attribute 1 (int): port_based (Use port-based (non-802.1q) VLAN only)
	Attribute 2 (int): vid (Get/set VLAN ID)
	Attribute 3 (ports): ports (VLAN port mapping)
     --port
	Attribute 1 (string): mask (Port-based VLAN mask)
	Attribute 2 (int): qmode (802.1q mode: 0=off/1=fallback/2=check/3=secure)
	Attribute 3 (int): pvid (Primary VLAN ID)
	Attribute 4 (unknown): link (Get port link information)
root@WRT1900ACS-U:~# swconfig dev switch0 show
Global attributes:
	enable_vlan: 1
Port 0:
	mask: 0x0000: (0) 
	qmode: 3
	pvid: 1
	link: port:0 link:down
Port 1:
	mask: 0x0000: (1) 
	qmode: 3
	pvid: 1
	link: port:1 link:down
Port 2:
	mask: 0x0000: (2) 
	qmode: 3
	pvid: 1
	link: port:2 link:down
Port 3:
	mask: 0x0000: (3) 
	qmode: 3
	pvid: 1
	link: port:3 link:up speed:1000baseT full-duplex 
Port 4:
	mask: 0x0000: (4) 
	qmode: 3
	pvid: 2
	link: port:4 link:up speed:1000baseT full-duplex 
Port 5:
	mask: 0x0000: (5) 
	qmode: 3
	pvid: 0
	link: port:5 link:up speed:1000baseT full-duplex 
Port 6:
	mask: 0x0000: (6) 
	qmode: 3
	pvid: 0
	link: port:6 link:up speed:1000baseT full-duplex 
VLAN 1:
	port_based: 0
	vid: 1
	ports: 0 1 2 3 5t 
VLAN 2:
	port_based: 0
	vid: 2
	ports: 4 6t

Not unless, I'm missing something/I've made a configuration error on my swconfig builds.

@ParanoidZoid
My device used only one CPU port that connect to 88e6171r directly without PHY, when my device use the openwrt mvsw61xx driver with swconfig, the throughput was normal(at about 450Mbit), so I don't think the one CPU port cause the problem. Is there anyway to debug the DSA driver? And here is my device's DTS:

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for Marvell Armada 370 Reference Design board
 * (RD-88F6710-A1)
 *
 *  Copied from arch/arm/boot/dts/armada-370-db.dts
 *
 *  Copyright (C) 2013 Florian Fainelli <florian@openwrt.org>
 *
 * Note: this Device Tree assumes that the bootloader has remapped the
 * internal registers to 0xf1000000 (instead of the default
 * 0xd0000000). The 0xf1000000 is the default used by the recent,
 * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
 * boards were delivered with an older version of the bootloader that
 * left internal registers mapped at 0xd0000000. If you are in this
 * situation, you should either update your bootloader (preferred
 * solution) or the below Device Tree should be adjusted.
 */

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "armada-370.dtsi"

/ {
	model = "RTNAS V3";
	compatible = "marvell,armada-370-rtnasv3","marvell,a370-rd", "marvell,armada370", "marvell,armada-370-xp";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x40000000>; /* 1024 MB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
				  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
				  MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;

		internal-regs {
			serial@12000 {
				status = "okay";
			};

			sata@a0000 {
				nr-ports = <2>;
				status = "okay";
			};

			mvsdio@d4000 {
				pinctrl-0 = <&sdio_pins1>;
				pinctrl-names = "default";
				status = "disabled";
				/* No CD or WP GPIOs */
				broken-cd;
			};

			usb@50000 {
				status = "okay";
			};

			usb@51000 {
				status = "okay";
			};

			gpio-keys {
				compatible = "gpio-keys";
				pinctrl-0 = <&reset_button_pin &pwr_button_pin>;
				pinctrl-names = "default";

				reset_button {
					label = "Reset Button";
					linux,code = <KEY_RESTART>;
					gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
				};

				wps_button {
					label = "Software Button";
					linux,code = <KEY_POWER>;
					gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
				};
			};

			gpio-leds {
				compatible = "gpio-leds";
				pinctrl-names = "default";
				pinctrl-0 = <&pwr_led_pin &wps_led_pins>;

				blue_pwr_led {
					label = "rtnasv3:blue:pwr";
					gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
					default-state = "keep";
				};

				blue_wps_led {
					label = "rtnasv3:blue:wps";
					gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
					default-state = "off";
				};
			};

			nand@d0000 {
				status = "okay";
				num-cs = <2>;
				marvell,nand-keep-config;
				marvell,nand-enable-arbiter;
				nand-on-flash-bbt;
				nand-ecc-strength = <0x4>;
				nand-ecc-step-size = <0x200>;

				partition@0 {
					label = "u-boot";
					reg = <0x0 0x400000>;
				};

				partition@400000 {
					label = "uboot_env";
					reg = <0x400000 0x400000>;
				};

				partition@800000 {
					label = "vendor";
					reg = <0x800000 0x400000>;
				};

				partition@c00000 {
					label = "unused";
					reg = <0xc00000 0xc00000>;
				};

				partition@1800000 {
					label = "kernel";
					reg = <0x1800000 0x400000>;
				};

				partition@1c00000 {
					label = "ubi";
					reg = <0x1c00000 0x3e400000>;
				};

				partition@40000000 {
					label = "syscfg";
					reg = <0x40000000 0xbbc00000>;
				};
			};
		};
	};
};

&mdio {
	#address-cells = <1>;
	#size-cells = <0>;

	switch: switch@0 {
		compatible = "marvell,mv88e6085";
		reg = <0>;


		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
			       reg = <0>;
			       label = "lan0";
			};

			port@1 {
			       reg = <1>;
			       label = "lan1";
			};

			port@2 {
			       reg = <2>;
			       label = "lan2";
			};

			port@3 {
			       reg = <3>;
			       label = "lan3";
			};

			port@4 {
			       reg = <4>;
			       label = "wan";
			};

			port@5 {
				reg = <5>;
				label = "cpu";
				ethernet = <&eth1>;
				phy-mode = "rgmii-id";

				fixed-link {
					speed = <1000>;
					full-duplex;
				};
			};
		};
	};
};


&pciec {
	status = "okay";

	/* Internal mini-PCIe connector */
	pcie@1,0 {
		/* Port 0, Lane 0 */
		status = "okay";
	};

	/* Internal mini-PCIe connector */
	pcie@2,0 {
		/* Port 1, Lane 0 */
		status = "okay";
	};
};


&pinctrl {
	compatible = "marvell,mv88f6710-pinctrl";

	pwr_button_pin: pwr-button-pin {
		marvell,pins = "mpp52";
		marvell,function = "gpio";
	};

	reset_button_pin: reset-button-pin {
		marvell,pins = "mpp62";
		marvell,function = "gpio";
	};

	pwr_led_pin: pwr-led-pin {
		marvell,pins = "mpp6";
		marvell,function = "gpio";
	};

	wps_led_pins: wps-led-pins {
		marvell,pins = "mpp50";
		marvell,function = "gpio";
	};
};

&eth0 {
	status = "disabled";
};

/* eth1 is connected to a Marvell 88E6171 switch, without a PHY. So set
 * fixed speed and duplex.
 */
&eth1 {
	status = "okay";
	phy-mode = "rgmii-id";
	fixed-link {
		   speed = <1000>;
		   full-duplex;
	};
};

&rtc {
	status = "disabled";
};

We'll, when you enable Igmp snooping on Luci it was applying it to the bridge correctly, but the switch swconfig driver didn't support Igmp snooping so it wasn't applying it on the switch, I hope I'm explaining myself correctly :sweat_smile::sweat_smile::sweat_smile:

I can't make blogics patch work under 4.19
As I understand with this patch all slave devices should carry over the mac from their master device.

I modified the patch and it does compile but doesn't work.
Does it work for you under 4.14?

With only the patch (when it works) will result in all interfaces wan+lan1+4 will have the same mac address.
So modifying 06_set_iface_mac is still needed.

Hmmm fascinating... I could probably get networkd to do something similar. Note that the Omnia is not on that list.

I would like to highlight the fact that Homeware, commercial fork of Openwrt, has DSA in force over broadcom drivers, so if you need some point of reference on how uci switch configs works on such devices take it into account.

Where can I find it? Been searching but found nothing

Hey guys can you show me links to you patches? I'd like to use them but have no idea where to find them :sweat_smile::sweat_smile::sweat_smile:

What are you looking for exactly? There are plenty of firmware filesystem dumps, most is done in lua Here are some: https://github.com/FrancYescO/tch_firmware_extracted

Here is an interesting network setting scenario you could use as benchmark:

config switch 'bcmsw_int'
	option reset '1'
	option type 'bcmsw'
	option qosimppauseenable '0'
	option jumbo '1'
	option unit '0'
	option enable_vlan '0'

config switch 'bcmsw_ext'
	option reset '1'
	option type 'bcmsw'
	option qosimppauseenable '0'
	option jumbo '1'
	option unit '1'
	option enable_vlan '1'

config switch_vlan 'lan_switch_A'
	option device 'bcmsw_ext'
	option vlan '1'
	option ports '1* 2* 4* 8t'

config switch_vlan 'lan_switch_B'
	option device 'bcmsw_ext'
	option vlan '835'
	option ports '3* 8t'

config device 'eth0'
	option mtu '1500'
	option name 'eth0'

config device 'eth1'
	option mtu '1500'
	option name 'eth1'

config device 'eth2'
	option mtu '1500'
	option name 'eth2'

config device 'eth3'
	option mtu '1500'
	option name 'eth3'

config device 'vlan_eth0'
	option type '8021q'
	option ifname 'eth0'
	option name 'vlan_eth0'
	option mtu '1500'
	option vid '1'

config device 'vlan_eth1'
	option type '8021q'
	option ifname 'eth1'
	option name 'vlan_eth1'
	option mtu '1500'
	option vid '1'

config device 'vlan_eth2'
	option type '8021q'
	option ifname 'eth2'
	option name 'vlan_eth2'
	option mtu '1500'
	option vid '1'

config device 'vlan_eth3'
	option type '8021q'
	option ifname 'eth3'
	option name 'vlan_eth3'
	option mtu '1500'
	option vid '1'

config globals 'globals'
	option ula_prefix 'auto'
	option default_ps '0'

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

config interface 'lan'
	option type 'bridge'
	option proto 'static'
	option netmask '255.255.255.0'
	option force_link '0'
	option igmp_snooping '1'
	option ipv6 '0'
	option ip6assign '0'
	option ipaddr '192.168.44.1'
	list ifname 'vlan_eth3'

config device 'eth4'
	option name 'eth4'
	option mtu '1508'

config device 'ptm0'
	option name 'ptm0'
	option mtu '1500'

config interface 'bridgedmode'
	option release '1'
	option iface6rd '0'
	option auto '1'
	option ipv6 '0'
	option mtu '1500'
	option proto 'bridge'
	option type 'bridge'
	list ifname 'vlan_eth0'
	list ifname 'vlan_eth1'
	list ifname 'eth2'
	list ifname 'ptm0'

config interface 'wan'
      ...

This one implements switch to modem bridging over three eth ports leaving one switch port enabled for local management. The first two bridged ports gets traffic bridged preserving original tagging, the third one gets tagging applied by the switch to allow traffic exiting as tagged out of the modem. Both eth4 and ptm0 are WAN ports, not being part of the main switch, unused eth4 setup is omitted here.

1 Like
bridge fdb

I guess the performance hit is because the MAC driver (mvneta) or the hardware of mvebu does not support DSA tag offloading.