All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Hubert Denkmair <xor@xor.wtf>,
	"linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Subject: Re: "user id" for can usb adapters
Date: Tue, 14 Jun 2016 08:39:16 +0200	[thread overview]
Message-ID: <575FA694.4080709@hartkopp.net> (raw)
In-Reply-To: <575F02F0.6070600@xor.wtf>

Hi Hubert,

On 06/13/2016 09:01 PM, Hubert Denkmair wrote:

>>> I am aware that there is a file /sys/class/net/<device>/dev_id - but no idea if that would be the right place.
>>
>> Why not?
>
> Hrm, I'm not sure.
> Kernel documentation says:
>
> ---
> What:           /sys/class/net/<iface>/dev_id
> Description:
> 		Indicates the device unique identifier. Format is an hexadecimal
> 		value. This is used to disambiguate interfaces which might be
> 		stacked (e.g: VLAN interfaces) but still have the same MAC
> 		address as their parent device.
> ---
>
> Unfortunately, the description is clearly targeted to devices with MAC-Addresses;

Really? It is indented to disambiguate interfaces with the same MAC.
All CAN interfaces have the same MAC (00:00:00:00:00:00) :-)

In linux/include/linux/netdev.h the comment for dev_id is:

@dev_id:
Used to differentiate devices that share the same link layer address

And still we have no differentiating link layer address for CAN.

> Anyways, I would read it as "for net devices sharing the same physical device, use dev_id to distinguish them".
> Even if it isn't specified anywhere, as a application developer I would also presume that all the child devices of one parent would be numbered continuously from 0.
> The user id, on the other hand, would be a random number that the device owner can choose on its own.

I would tend to a increasing numbering as default. But 'root' should be 
able to set a user specified value into this dev_id. Especially when the 
interface is capable to store this dev_id (e.g. in EEPROM) the next time 
this value could be read from EEPROM and set into dev_id.

> Also, if the dev_id is already used in socketcan context (the pcan pro driver seems to do), one might break existing applications by using the new feature.

No. So far this dev_id was intended to be used as described above - but 
no one pushed this idea further. Your request proves the need for some 
dev_id again.

> Then, I don't know if a write to the dev_id attribute would be hard to implement / need changes in the network subsystem.

I don't know too. I think we would need some new callbacks in 
linux/include/linux/can/dev.h :

int (*do_set_dev_id)(struct net_device *dev, int dev_id);
int (*do_get_dev_id)(struct net_device *dev);

To read/write the dev_id to the EEPROM when supported.

So it would be 'just' to check whether sysfs dev_id can be made writable 
for CAN interfaces like tx_queue_len already is.

> Using a new sysfs attribute would be easy-going, I guess.

Don't know if it would be simpler.

> Anyways, I'm by no means a experienced kernel developer and I will leave these decisions to people who are :-)

I don't claim to have 'the best solution' - but making use of dev_id 
looks better than creating 'just another' configuration option.

Best regards,
Oliver

      reply	other threads:[~2016-06-14  6:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-11 13:03 "user id" for can usb adapters Hubert Denkmair
2016-06-12 19:05 ` Oliver Hartkopp
2016-06-13 19:01   ` Hubert Denkmair
2016-06-14  6:39     ` Oliver Hartkopp [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=575FA694.4080709@hartkopp.net \
    --to=socketcan@hartkopp.net \
    --cc=linux-can@vger.kernel.org \
    --cc=xor@xor.wtf \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.