On 10/20/20 6:12 PM, Jakub Kicinski wrote: > On Tue, 20 Oct 2020 00:19:16 +0300 Vladimir Oltean wrote: >> On Mon, Oct 19, 2020 at 02:03:40PM -0700, Florian Fainelli wrote: >>>> Completely crazy and outlandish idea, I know, but what's wrong with >>>> doing this in DSA? >>> >>> I really do not have a problem with that approach however other stacked >>> devices like 802.1Q do not do that. It certainly scales a lot better to >>> do this within DSA rather than sprinkling DSA specific knowledge >>> throughout the network stack. Maybe for "configuration less" stacked >>> devices such as DSA, 802.1Q (bridge ports?), bond etc. it would be >>> acceptable to ensure that the lower device is always brought up? >> >> For upper interfaces with more than one lower (bridge, bond) I'm not so >> sure. For uppers with a single lower (DSA, 8021q), it's pretty much a >> no-brainer to me. Question is, where to code this? I think it's ok to >> leave it in DSA, then 8021q could copy it as well if there was a need. > > FWIW no strong preference here. Maybe I'd lean slightly towards > Florian's approach since we can go to the always upping the CPU netdev > from that, if we start with auto-upping CPU netdev - user space may > depend on that in general so we can't go back. > > But up to you folks, this seems like a DSA-specific problem, vlans don't > get created before user space is up (AFAIK), so there is no compelling > reason to change them in my mind.
Right I remembered in my previous job we had a patch that would support creating VLAN devices when specified over ipconfig on the kernel command line, but that as never upstream AFAICT. > > Florian for you patch specifially - can't we use > netdev_for_each_lower_dev()? Looks like I forgot to respond here, yes we could do that because we do call netdev_upper_dev_link() in net/dsa/slave.c. Let me re-post with that done. -- Florian