Subject: Re: [RFC][PATCH] net: arinc429: Add ARINC-429 stack

From: Marek Vasut <[email-masked]>
Date: Tue, 3 Nov 2015 18:41:09 +0100

On Tuesday, November 03, 2015 at 06:32:12 PM, Oliver Hartkopp wrote:

[...]

> It looks like you need to shift the stuff in user space every time.
> 
> So you might better think of something like this:
> 
>     struct a429_frame {
>             __u32   label;   /* ARINC 429 label */
>             __u8    length;  /* always set to 8 */
>             __u8    __pad;   /* padding */
>             __u8    __res0;  /* reserved / padding */
>             __u8    __res1;  /* reserved / padding */
>             __u32   data __attribute__((aligned(8)));
>             __u8    p;       /* p */
>             __u8    ssm;     /* ssm */
>             __u8    sdi;     /* sdi */
>             __u8    __end;   /* padding */
>     };

You don't want to interpret those P(arity)/SSM/SDI bits, since they differ
depending on whatever the remote party sends. That's why I decided to just
make those into 3-bytes of data and let the userland application deal with
it as seen fit. Besides, the ARINC "FTP" really uses those 3 bytes as plain
data.

> Good thing would be that you can directly see the content in logfiles and
> you can easily modify the content on the fly by can-gw.
> 
> Of course the arinc netdevice driver would have to take care to do the
> correct rx/tx whatever. But routing and processing arinc content through
> the CAN stack does not seem to be a bad idea IMO.

Pretty much, yeah.

Best regards,
Marek Vasut