Re: [PATCH RFC 1/2] net: dsa: integrate with SWITCHDEV for HW bridging
From: Guenter Roeck <linux@roeck-us.net>
Date: 2015-02-18 06:15:23
On 02/17/2015 08:53 PM, Florian Fainelli wrote:
2015-02-17 19:53 GMT-08:00 Guenter Roeck [off-list ref]:
[...]
I have put a v2 here which addresses that by retaining which bridge the port was added to and comparing that against the bridge net_device we want to join: https://github.com/ffainelli/linux/tree/dsa-hw-bridge-v2quoted
I don't really see the value in providing the port mask to port_join_bridge, but maybe I am missing something. In my implementation I just passed on bridge * and used it to determine which port belongs to which bridge group. It doesn't have to be that, but maybe we can use the bridge ifindex or anything else that lets me determine which bridge group the port belongs to.As I described in the cover letter, I tend to think that resolving this bitmask is part of the abstraction DSA should provide to its driver, maybe it is more future proof and better to give access to the bridge net_device pointer such that drivers can figure out the bridge details themselves. With that in mind, maybe we can do something like this: - add the bridge net_device pointer to the join/leave callbacks - provide a helper like dsa_slave_br_port_mask that drivers use or not
Not sure if that is needed. At first glance v2 should do it. I only use the bridge pointer to create a set of bit masks, one for each bridge group. This is pretty much what you do now. So I should have the information I need, and it should actually simplify my code to some degree. Unfortunately I won't be able to work on this for the next few days, since I'll be at the Linux Collaboration Summit in Santa Rosa. Guenter