netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Marc Kleine-Budde <mkl@pengutronix.de>,
	Marek Vasut <marex@denx.de>,
	netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	Wolfgang Grandegger <wg@grandegger.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Andrey Vostrikov <andrey.vostrikov@cogentembedded.com>
Subject: Re: [RFC][PATCH] net: arinc429: Add ARINC-429 stack
Date: Mon, 02 Nov 2015 12:14:27 +0100	[thread overview]
Message-ID: <56374593.6000200@hartkopp.net> (raw)
In-Reply-To: <56373140.6040003@pengutronix.de>

On 02.11.2015 10:47, Marc Kleine-Budde wrote:
> On 11/02/2015 12:16 AM, Marek Vasut wrote:
>> The ARINC-429 is a technical standard, which describes, among others,
>> a data bus used by airplanes. The standard contains much more, since
>> it is based off the ISO/OSI model, but this patch implements just the
>> data bus protocol.
>>
>> This stack is derived from the SocketCAN implementation, already present
>> in the kernel and thus behaves in a very similar fashion. Thus far, we
>> support sending RAW ARINC-429 datagrams, configuration of the RX and TX
>> clock speed and filtering.
>>
>> The ARINC-429 datagram is four-byte long. The first byte is always the
>> LABEL, the function of remaining three bytes can vary, so we handle it
>> as an opaque PAYLOAD. The userspace tools can send these datagrams via
>> a standard socket.
>>
>> A LABEL-based filtering can be configured on each socket separately in
>> a way comparable to CAN -- user uses setsockopt() to push a list of
>> label,mask tuples into the kernel and the kernel will deliver a datagram
>> to the socket if (<received_label> & mask) == (label & mask), otherwise
>> the datagram is not delivered.
>
> What's difference compared to CAN besides a different MTU? The CAN stack
> is already capable to handle CAN and CAN-FD frames. Would it make sense
> to integrate the ARINC-429 into the existing CAN stack?

That was my first impression too.

What about defining some overlay data structure to map ARINC-429 frames into 
CAN frames?

E.g. we could write the ARINC 32 bit data completely into data[0..3] and 
additionally copy the 8 bit label information (or should it better be 10 bit 
including the Source/Destination Identifiers?) additionally into the can_id.

 From what I can see the filtering by label is similar to filtering by can_id.
And you would be able to use the can-gw functionality too.

The only real difference is the bitrate configuration of the ARINC interface.

I wonder if a similar approach would fit here as we discussed with the 
University of Prague for a LIN implementation using the PF_CAN infrastructure:

http://rtime.felk.cvut.cz/can/lin-bus/

It could probably boil down to a 'CAN interface' that is named arinc0 which 
implements the serial driver like in slcan.c or sllin.c ...

Regards,
Oliver

  reply	other threads:[~2015-11-02 11:14 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-01 23:16 [RFC][PATCH] net: arinc429: Add ARINC-429 stack Marek Vasut
2015-11-02  9:47 ` Marc Kleine-Budde
2015-11-02 11:14   ` Oliver Hartkopp [this message]
2015-11-02 18:16     ` Marek Vasut
2015-11-02 20:15       ` Vostrikov Andrey
2015-11-02 20:25         ` Marek Vasut
2015-11-03 10:36           ` Aleksander Morgado
2015-11-03 11:36             ` Marc Kleine-Budde
2015-11-03 15:06               ` Aleksander Morgado
2015-11-03 15:15                 ` Marc Kleine-Budde
2015-11-03 16:10                   ` Aleksander Morgado
2015-11-03 17:32                     ` Oliver Hartkopp
2015-11-03 17:41                       ` Marek Vasut
2015-11-03 18:03                         ` Oliver Hartkopp
2015-11-03 19:19                           ` Marek Vasut
2015-11-03 19:28                             ` Oliver Hartkopp
2015-11-03 21:43                               ` Marek Vasut
2015-11-04  9:34                                 ` Aleksander Morgado
2015-11-04 13:54                                   ` Marek Vasut
2015-11-04 15:03                                     ` Vostrikov Andrey
2015-11-04 15:07                                       ` Marek Vasut
2015-11-04 15:18                                         ` Vostrikov Andrey
2015-11-04 15:19                                           ` Aleksander Morgado
2015-11-04 15:33                                             ` Marek Vasut
2015-11-04 15:45                                               ` Aleksander Morgado
2015-11-10 16:15                                                 ` Marek Vasut
2015-11-18 16:38                                                   ` Aleksander Morgado
2015-11-18 16:41                                                     ` Marek Vasut
2015-11-03 20:26                       ` Vostrikov Andrey
2015-11-03 21:24                         ` Oliver Hartkopp
2015-11-03 21:41                           ` Marek Vasut
2015-11-04 10:44                             ` Oliver Hartkopp
2015-11-03 21:52                           ` Vostrikov Andrey
2015-11-03 15:19                 ` Marek Vasut
2015-11-03 16:18                   ` Aleksander Morgado
2015-11-03 16:56                     ` Aleksander Morgado
2015-11-03 17:33                       ` Marek Vasut
2015-11-03 20:15                         ` Vostrikov Andrey
2015-11-04  9:31                         ` Aleksander Morgado
2015-11-03 16:47                   ` Aleksander Morgado
2015-11-03 17:37                     ` Marek Vasut
2015-11-03 17:01             ` Oliver Hartkopp
2015-11-04  9:51               ` Aleksander Morgado
2015-11-03 21:44       ` Marek Vasut
2015-11-02 19:41     ` Aleksander Morgado
2015-11-02 19:55       ` Oliver Hartkopp

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=56374593.6000200@hartkopp.net \
    --to=socketcan@hartkopp.net \
    --cc=andrew@lunn.ch \
    --cc=andrey.vostrikov@cogentembedded.com \
    --cc=davem@davemloft.net \
    --cc=marex@denx.de \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).