From: Marek Vasut <marex@denx.de>
To: Oliver Hartkopp <socketcan@hartkopp.net>,
Mirza Krak <mirza.krak@hostmobility.com>
Cc: "linux-can@vger.kernel.org" <linux-can@vger.kernel.org>,
Marc Kleine-Budde <mkl@pengutronix.de>,
Wolfgang Grandegger <wg@grandegger.com>
Subject: Re: [RFC] K-Line protocol via SocketCAN
Date: Tue, 14 Jun 2016 00:07:26 +0200 [thread overview]
Message-ID: <575F2E9E.3040307@denx.de> (raw)
In-Reply-To: <575DB7F4.3030906@hartkopp.net>
On 06/12/2016 09:28 PM, Oliver Hartkopp wrote:
> Hi Marek,
Hi!
> On 06/11/2016 09:42 PM, Marek Vasut wrote:
>> On 06/09/2016 10:12 PM, Oliver Hartkopp wrote:
>>> On 06/09/2016 09:21 PM, Marek Vasut wrote:
>>>> On 06/09/2016 08:29 PM, Oliver Hartkopp wrote:
>>>
>>>>>> I am more interested in the RTNL configuration interface, since the
>>>>>> kline has way too many parameters and the RTNL scales well in that
>>>>>> aspect.
>>>>>
>>>>> If like rtnl so much why don't you create a K-Line netdevice driver
>>>>> for
>>>>> it and use the PF_PACKET socket to exchange data with the netdevice?
>>>>
>>>> Because last time I did that with the arinc, I was told to integrate
>>>> that into the socketcan instead.
>>>>
>>>>>> When using the socket interface, I can also add various flags to the
>>>>>> packet and control the properties of the data that are to be
>>>>>> transmitted
>>>>>> via the KLine interface. That's real convenient.
>>>>>
>>>>> But that has nothing to do with PF_CAN.
>>>>
>>>> So I should add another orthogonal infrastructure ? That's what I did
>>>> with the arinc and I was told the exact opposite, so I am really
>>>> confused here .
>>>
>>> ARINC 825 *is* CAN. When people tell you to use the existing
>>> infrastructure that was a good hint, but K-Line is definitely not CAN.
>>
>> Well, I was talking about arinc 429 .
>>
>
> Ah - I remember that discussion:
> https://lwn.net/Articles/663130/
> http://thread.gmane.org/gmane.linux.network/385449
>
> What happed to it?
Priorities shifted. I still hope to return to it and get it into
mainline proper. Since I did some digging in the socketcan recently,
I have a better understanding of it now too. I believe the agreement
there was to put it into the socketcan stack as an extension, does it
still make sense ?
> I don't see anything from the patchset in the kernel.
Yes, sorry about that. I still keep the last email from that thread in
my todo so it won't get lost.
>>> Your patch set shows that you are adding things to the CAN
>>> infrastructure that have nothing to do with CAN.
>>>
>>> E.g. the K-Line timing you add in patch 4/5 has nothing to do with CAN
>>> specific configurations.
>>>
>>> Additionally I don't know whether the struct kline_frame is the optimal
>>> solution because it sticks to struct can_frame and does not reflect the
>>> (optional) K-Line address scheme.
>>>
>>> So you could either use the sl_kline.c with PF_PACKET and create a
>>> separate rtnl configuration for it OR you could create a character
>>> device which handles K-Line frames and has some ioctls to configure the
>>> specialized timings.
>>
>> Is adding a specialized chardev really such a great idea ?
>>
>
> Why not?
>
> E.g. think about a chardev in /dev/kline0 which is located in
> linux/drivers/misc and which uses a tty under the hood.
>
> I'm not a K-Line specialist like Mirza who was able to point at timings
> that should be handled in user space and not in kernel space.
If I start handling the timings in userspace, I won't be able to get to
the precision I need. That's the reason I'd like to put the kline ldisc
in kernel.
> But if you implement a chardev driver which allows the configuration of
> these kernel relevant K-Line timings and makes use of the tty layer -
> what should be wrong with this approach?
>
> You would have a single user K-Line interface which can handle specific
> struct kline data. Fine.
Hrm. I was just worried about adding new IOCTLs, but if that's fine, I
will reevaluate using just the ldisc.
>>> As K-Line never was multi-user capable by design the chardev approach is
>>> the most 'natural' concept IMHO.
>>
>> I could technically just implement this as a ldisc with some additional
>> ioctls, but is that really such a good idea ?
>
> Yes. It would be some kind of ldisc for a K-Line chardev driver (and not
> for a netdevice) like other ldiscs in linux/include/uapi/linux/tty.h
>
> Why do you feel this is not a good idea?
It feels much better now, so I will poke into that.
Thanks!
> Regards,
> Oliver
--
Best regards,
Marek Vasut
next prev parent reply other threads:[~2016-06-13 22:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-19 23:15 [RFC] K-Line protocol via SocketCAN Marek Vasut
2016-05-20 6:04 ` Mirza Krak
2016-05-20 6:28 ` Oliver Hartkopp
2016-05-20 11:59 ` Marek Vasut
2016-05-22 20:27 ` Patrick Menschel
2016-05-22 21:11 ` Marek Vasut
2016-06-01 2:26 ` Marek Vasut
2016-06-05 12:07 ` Oliver Hartkopp
2016-06-09 15:00 ` Marek Vasut
2016-06-09 18:29 ` Oliver Hartkopp
2016-06-09 19:21 ` Marek Vasut
2016-06-09 20:12 ` Oliver Hartkopp
2016-06-11 19:42 ` Marek Vasut
2016-06-12 19:28 ` Oliver Hartkopp
2016-06-13 22:07 ` Marek Vasut [this message]
2016-06-14 6:10 ` Oliver Hartkopp
2016-06-15 3:42 ` Marek Vasut
2016-06-15 6:57 ` Oliver Hartkopp
2016-06-15 11:05 ` Marek Vasut
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=575F2E9E.3040307@denx.de \
--to=marex@denx.de \
--cc=linux-can@vger.kernel.org \
--cc=mirza.krak@hostmobility.com \
--cc=mkl@pengutronix.de \
--cc=socketcan@hartkopp.net \
--cc=wg@grandegger.com \
/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.