On Mon, Nov 09, 2009 at 05:09:27PM +0100, Wolfgang Grandegger wrote:
> Kurt Van Dijck wrote:
> > On Fri, Nov 06, 2009 at 11:04:27AM +0100, Kurt Van Dijck wrote:
> >> Thanks to this idea, I added 1 feature to the current softing driver:
> >> the channel number.
> >> after this, I think any matching is possible on such devices using udev.
> > 
> > I did some experiments with my udev alternative. seems that the
> > /sys/class/net/can0/channel file is not present then the daemon wants
> > it.
> 
> I still disagree to put files for hardware (non-networking) related
> properties into
> /sys/class/net/canX/. What about creating
> /sys/class/net/device/channelX, or /sys/class/net/device/can0/channnel.

in fact, /sys/class/net/canX is a symlink to
/sys/devices/<somewhere>/<device>/net/canX

on my current system, with softing card, this gives:

.
|-- driver -> ../../../../../bus/pcmcia/drivers/softing_cs
|-- id (new directory, was 'softing')
|-- net
|   |-- can0
|   |   |-- device -> ../../../0.0
|   |   |-- statistics
|   |   `-- subsystem -> ../../../../../../../class/net
|   `-- can1
|       |-- device -> ../../../0.0
|       |-- statistics
|       `-- subsystem -> ../../../../../../../class/net
`-- subsystem -> ../../../../../bus/pcmcia

1) creating /sys/devices/<somewhere>/<device>/channelX feels like
re-doing the class device work (net/canX).

2) to solve the 'multiple bus on a single card' issue, even creating
/sys/class/net/canX/device/channelX does not solve the problem.
udev scripts would only know to start from /sys/class/net/canX.
Once you follow the device/ symlink, you loose the channel information.
At least, you need the channel number, or another symlink in the
/sys/class/net/canX directory.

3) my current can devices have properties like address, addr_len,
features, which are very hardware related though.

I would prefer dividing properties into device specific & network
specific.

Having said this, would consulting netdev mailing list be an option for
this?

> We may need to introduce a dedicated bus, though.
I prefer not creating a bus which isn't one.
what you can do easier is to create a device whitout bus.
It would give (in sysfs) (given already 3 can devices in the system
to indicate the different numbering):
.
|-- driver -> ../../../../../bus/pcmcia/drivers/softing_cs
|-- channel0
|   |-- device -> ../../0.0
|   `-- net
|       `-- can3
|           |-- device -> ../../../channel0
|           |-- statistics
|           `-- subsystem -> ../../../../../../../class/net
|-- channel1
|   |-- device -> ../../0.0
|   `-- net
|       `-- can4
|           |-- device -> ../../../channel1
|           |-- statistics
|           `-- subsystem -> ../../../../../../../class/net
`-- subsystem -> ../../../../../bus/pcmcia

Such a structure would, I think, satisfy anyone's considerations,
but it requires serious per driver support, or extensive candev.ko
rework.
> 
> Wolfgang.
> 
Kurt
_______________________________________________
Socketcan-core mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-core

Reply via email to