Re: [PATCH 3/8] can: CAN Network device driver and SYSFS interface

From: Patrick McHardy
Date: Mon Feb 23 2009 - 04:56:04 EST


Wolfgang Grandegger wrote:
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.

Exactly.

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.

The first points sound pretty regular. The last one - just triggering
it is no problem of course, but since I don't know how the detection
works, I can't really tell whether its suitable.

And we need a user space
tool, e.g. canconfig, to handle the user requests and communicate with
the kernel side.

Thats pretty standard :)

We will follow that promising route. Any further help
or link is appreciated. Thanks.

It should be quite easy to move your interface on top. A few examples
that might be useful are vlan, ip_gre and macvlan.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/