On Thu, 2016-07-07 at 10:32 -0700, Florian Fainelli wrote: > > I know nothing about NCSI, pretty much like Jon Snow, but from a cursory > look at your patches, is not there a way to make the NCSCI capable > network devices strictly adhere to the net_device APIs and calling > conventions?
They already do. Basically imagine NC-SI being a replacement for the PHY of the device. Instead of having a PHY, your MII is directly connected to another NIC (the main system NIC) which conveniently provide that sideband MII interface for you. You then use the NC-SI protocol which uses a specific ethernet packet type to communicate with that other NIC as you would otherwise communicate with a PHY using MDIO. At least conceptually. For config. Normal traffic is still normal ethernet. The protocol is more complex than MDIO though, you can be connected to multiple NICs, you have to provide your MAC address to the other guy so he can route some incoming traffic to you etc... So in the current implementation by Gavin, all that is needed for an existing NIC driver to support NC-SI is a few lines of code to register with the stack, which will under the hood create the ncsi_dev associated with the net_dev and manage the protocol. >From a "user" point of view you still have a normal netdev doing normal ethernet, the NC-SI protocol is transparent and strictly used to maintain the link active between you and the other NIC thorugh which your traffic goes. Cheers, Ben.