On Thu, 2018-12-06 at 17:54 +0100, Andrew Lunn wrote: > > > I wish I had a proper DSA/Switchdev driver in place but I don't :( > > Adding one is not impossible but then a lot of our user space app needs > > fixing so all > > in all it it a fairly big project. > > Anyhow, these carrier additions should be fine I think? > > I'm not too sure about that. You are potentially messing up the state > machine, and the MAC driver could be looking at phydev->link, which > says up, but the carrier is down. > > https://www.kernel.org/doc/Documentation/networking/operstates.txt > > Could you set the interface to dormant? That seems like a better fit > anyway: > > IF_OPER_DORMANT (5): > Interface is L1 up, but waiting for an external event, f.e. for a > protocol to establish. (802.1X) > > The interface does have L1 to the switch, but you are waiting for the > external interface to go up. You can set this from user space without > needing any kernel changes.
I can have a look at using dormant, but what is change_carrier supposed to do if not this? I didn't find a tool for DORMANT, I guess i will have to write one myself(using SIOCGIFFLAGS, SIOCSIFFLAGS)?