Patrick McHardy wrote:Is sysfs really the best choice for this? It has the usual problems,
you can't change multiple parameters at once atomically. Now, I don't
know whether this is actually (and currently) a problem for CAN, but
given that we already have a generic netlink interface for creating
network interfaces that can easily support this, what are the reasons
for adding a new interface instead of using the existing one?
You refer to the API described at http://lwn.net/Articles/236919/, I
assume.
Well, I know that netlink is used to define routes in the kernel
or VLANs but I was not aware that it can also be used to configure real
network devices. What a pity. At a first glance, I could also be used
for CAN, of course. There are the following requirements:
1. Set and get CAN device properties like bit-rate and controller mode.
2. Show CAN bus state (active, error-passive or bus-off).
3. Get device constants like clock frequency and bit-timing parameters.
4. Dump CAN device statistics.
5. Trigger device restart if CAN bus-off state has been detected.
Not sure yet, if the interface if good for all purposes. Especially
point 5. might be better handled by an IOCTL.
And we need a user space
tool, e.g. canconfig, to handle the user requests and communicate with
the kernel side.
We will follow that promising route. Any further help
or link is appreciated. Thanks.