I have a device using a KSZ9897 switch
(CONFIG_MICROCHIP_KSZ_SPI_DRIVER=y) using a 4.19.9 kernel, where I am
trying to enable a bridge on some of the ports using systemd-networkd.
However, it seems to be getting an error when it tries to configure the
ports to be part of the bridge. systemd-networkd complains with:

lan1: Set link
lan1: Could not join netdev: Operation not supported
lan1: Failed

and the kernel complains:

lan: bridge flag offload is not supported 4(lan1)

That message is coming from br_switchdev_set_port_flag in
net/bridge/br_switchdev.c. Adding some more output to that statement
tells me:

lan: bridge flag offload is not supported, flags 18656 mask 64 support
0, 4(lan1)

which appears to mean something is trying to enable BR_BCAST_FLOOD,
BR_MCAST_FLOOD, BR_PROMISC, BR_FLOOD, BR_LEARNING on the port, but it is
failing to enable BR_FLOOD because brport_flags_support is 0. I am just
using the default bridge settings in systemd-networkd, so that is
nothing that I am specifying explicitly.

However, if I look at brctl, it appears that the devices have in fact
been added to the bridge, but obviously systemd-networkd still treats
this as a failure.

I'm not sure what that means.. is this a kernel problem?
systemd-networkd problem? Are we somehow trying to do something
unsupported on this hardware? Any advice would be appreciated.

-- 
Robert Hancock
Senior Software Developer
SED Systems
Email: hanc...@sedsystems.ca

Reply via email to