On 5/5/19 11:27 PM, Florian Fainelli wrote: > > > On 5/5/2019 2:15 PM, Hauke Mehrtens wrote: >> The VLAN aware bridge offloading is similar to the VLAN unaware >> offloading, this makes it possible to offload the VLAN bridge >> functionalities. >> >> The hardware supports up to 64 VLAN bridge entries, we already use one >> entry for each LAN port to prevent forwarding of packets between the >> ports when the ports are not in a bridge, so in the end we have 57 >> possible VLANs. >> >> The VLAN filtering is currently only active when the ports are in a >> bridge, VLAN filtering for ports not in a bridge is not implemented. >> >> It is currently not possible to change between VLAN filtering and not >> filtering while the port is already in a bridge, this would make the >> driver more complicated. >> >> The VLANs are only defined on bridge entries, so we will not add >> anything into the hardware when the port joins a bridge if it is doing >> VLAN filtering, but only when an allowed VLAN is added. > > [snip] > >> struct gswip_priv *priv = ds->priv; >> + struct net_device *bridge = dsa_to_port(ds, port)->bridge_dev; >> + >> + /* Do not allow chaning the VLAN filtering options while in bridge */ > > Typo: changing.
Will fix the typo. > This looks fine to me, you might be able to simplify the code a little > bit if you directly used bridge_dev->ifindex as the FID and just keep a > bitmap of active FIDs such that you can manage roll-overs etc. upon > bridge device destruction/creation. The switch only has 6 bit for the flow ID. It is possible to have more than 64 network devices in a system and then ifindex would be too big. > > Reviewed-by: Florian Fainelli <f.faine...@gmail.com> >