[SOLVED] Barracuda F180: stumped by a switch

I am having fun with yet another dangerous fish. :smile: This time, it's Barracuda F180. Here's an artist's rendering of the device's rear:

Visually, it's easy to distinguish a group of four ports (labeled 1-4), then a group of two ports (5-6), and finally, a group of eight ports (S1-S8). My working assumption is that the S denotes an internal switch.

Here are some (hopefully relevant) listings edited for brevity and readability:

root@OpenWrt:~# ls -l /sys/class/net
br-lan -> ../../devices/virtual/net/br-lan
eth0 -> ../../devices/pci0000:00/0000:00:14.0/net/eth0
eth1 -> ../../devices/pci0000:00/0000:00:14.1/net/eth1
eth2 -> ../../devices/pci0000:00/0000:00:14.2/net/eth2
eth3 -> ../../devices/pci0000:00/0000:00:14.3/net/eth3
eth4 -> ../../devices/pci0000:00/0000:00:02.0/0000:02:00.0/0000:03:03.0/0000:04:00.0/net/eth4
eth5 -> ../../devices/pci0000:00/0000:00:02.0/0000:02:00.0/0000:03:07.0/0000:05:00.0/net/eth5
eth6 -> ../../devices/pci0000:00/0000:00:04.0/0000:08:00.0/net/eth6
lo -> ../../devices/virtual/net/lo

root@OpenWrt:~# lspci -nn | grep 0200
00:14.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I354 [8086:1f41] (rev 03)
00:14.1 Ethernet controller [0200]: Intel Corporation Ethernet Connection I354 [8086:1f41] (rev 03)
00:14.2 Ethernet controller [0200]: Intel Corporation Ethernet Connection I354 [8086:1f41] (rev 03)
00:14.3 Ethernet controller [0200]: Intel Corporation Ethernet Connection I354 [8086:1f41] (rev 03)
04:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
05:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
08:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)

Based on the exterior view, listings above, and testing (plugging an Ethernet cable in and watching the system messages that appear on the console in response), I figured out that ports 1-4 are eth0-eth3 and ports 5-6 are eth4-eth5. This leaves eth6 the odd one out, so I am assuming that eth6 is the switch. Plugging an Ethernet cable into any of the Sx ports results in indicator lights acting, but no messages are displayed on the console. I take this to mean that the switch is operational but needs to be configured.

And that's where I reach the limits of my knowledge. Let's say I want ports S1-S8 to join the br-lan. How do I accomplish that?

Just in case, here's my /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 'fd1e:c576:dd7c::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'
        list ports 'eth2'
        list ports 'eth3'
        list ports 'eth4'
        list ports 'eth5'

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

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

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

It's almost stock; the only changes I made were to flip LAN/WAN port assignments (so eth0 is now WAN and eth1 is LAN) and add eth2-eth5 into the br-lan.

Clearly, I need to write some freehand config, but I have no idea where to begin... Could anyone attempt to educate me, please? :smile:

As you can see eth6 is on PCI address 08.00.0 and still an i210 chip, so I highly doubt it's the actual switch inside. AFAIK that's just a single port NIC. The i354 can provide up to 4 ports, the internet tells me. I'd check dmesg for pointers and open up the switch so you can have a look at the board and see where the traces of those S1 - S8 ports end up. Maybe you can spot a switch chip even.

You had me at "open up"! :smile:

Here's the overall view of the router's internals (the switch is on the daughter board on the right):

And here's the daughter board up close:

Two bar code labels on the top left are attached to the block of two ports; the eight-port block is directly below.

The important chip is probably the one under the heat sink, right?

Will post the dmesg output when I put the router back together.

Can't read out the markings on the Marvell chip, but it's not the same issue as with the Velocloud 5x0 ?

That's the easy part (assuming I zoomed in on the right chip):

image

If I knew the answer to that, I'd post the answer here... :smile:

From what i know this 98DX308-A1chip is
ARM Cortex-A9 dual-core processor
With integrated Ethernet controllers
and hardware acceleration for encryption and decryption algorithms

And it sems to be comonly used in routers/switches wich may mean that this is the switch controler

I need more high ress pictures of the chips on the board the pictures you provided was very blury when zoomed

1 Like

Let me try a different upload method...

I think this should be the hi-res image. If not, here it is elsewhere:

https://i.ibb.co/nccvK8J/F180-switch.jpg

Nope; the forum software still downsampled it quite a bit. Please use the link in the previous post to see the image as photographed.

The res is much better with img.bb

Yeah, same for me, even if I zoomed, the photo didn't get any bigger ...

Yes, it's possible that the Marvell 98DX308-A1 chip is used as the network controller for the switch on the Barracuda F180 firewall. The 98DX308-A1 is a highly integrated system-on-chip (SoC) that includes a variety of features suitable for use in network switches, routers, and other networking devices.

The 98DX308-A1 SoC includes multiple Ethernet interfaces, such as 10/100/1000 Mbps Ethernet MACs and PHYs, which are used for connecting to the network. It also includes hardware acceleration for common networking protocols such as TCP/IP and VLAN tagging. Additionally, the chip has a powerful CPU and memory subsystem, which can be used to run network control software such as routing protocols, packet filtering, and QoS.

So, it's likely that the Marvell 98DX308-A1 chip is used as the network controller for the switch on the Barracuda F180 firewall, :slight_smile:

And im right i think due to being very simular to the others in that series [https://wikidevi.wi-cat.ru/Marvell]

THe 98DX308-A1 is just a switch chip (i.e. no SoC). From my experience all of the Marvell Switch SoC's have 4 digits after the DX and the switch only chips have 3. From Marvell's 2016 Product Selection Guide

Prestera-DXx08
8-Port Gigabit Ethernet Packet Processor
Part No: 98DX308-A0-LKJ2C000
Port Configuration: 2 QSGMII
Type: Layer 2
Number of ports: 8
Package Size: 14mm x 20mm
Package Type: LQFP

Not supported on OpenWrt, I take it? :cry:

Googling it turns up little information, not even on Linux support, which is what you really need. I don't know how far back Marvell's Linux support goes. Their SoCs are usually well supported.

It is a Marvell Prestera device and there is some support for some Marvell Prestera Switch ASICs at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/marvell/prestera

1 Like

OK, I figured it out. Not on OpenWrt though. Here's what I found out after I installed OPNsense on this device.

Here's how OPNsense has designated the ports:

Ports igb0 through igb2 are serviced by Intel i210 controllers; igb3 through igb6, by Intel i354 controllers. The Marvell switch operates invisibly to the OS, as if it were an external dumb switch plugged into the igb2 port. All the OS sees is the igb2 port serviced by an Intel i210 controller. The switch is completely autonomous and completely dumb... Just about as dumb as I feel right now... :)

I am not marking this as solved yet, because I want to see if it works under OpenWrt, but right now, my brain is fried... Maybe tomorrow...

Well, tomorrow is now, my brain is unfried, and my theory has been confirmed. :smile: All I had to do was to enable eth6. This was sufficient to get the switch to work. To repeat yesterday's metaphor in the OpenWrt context, it's as if an external dumb switch were connected to eth6; the OS doesn't know about the switch and doesn't care about the switch. The switch JustWorks™...

Here's my /etc/config/network with the switch working:

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 'fd1e:c576:dd7c::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'
        list ports 'eth2'
        list ports 'eth3'
        list ports 'eth4'
        list ports 'eth5'
        list ports 'eth6'

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

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

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

Now's the time to mark it Solved... :smile:

1 Like

Just in case, here's how OpenWrt has designated the ports:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.