From: Oliver Hartkopp <socketcan@hartkopp.net>
To: "linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Subject: Re: [RFC] CAN FD support part 2 - ideas and commented source
Date: Thu, 03 May 2012 14:50:32 +0200 [thread overview]
Message-ID: <4FA27F18.9080106@hartkopp.net> (raw)
In-Reply-To: <20120503123755.GD416@vandijck-laurijssen.be>
On 03.05.2012 14:37, Kurt Van Dijck wrote:
> Oliver,
>
> Your proposal looks more elaborate than my first one :-)
>
> In this email, I'll restrict myself to discussing ETH_P_CANFD.
>
> On Thu, May 03, 2012 at 01:14:58PM +0200, Oliver Hartkopp wrote:
>> Hi all,
>>
>> in this mail i would like to document the ideas for CAN FD support pointing
>> directly to the changes inside the source.
>>
>
> [........]
>>
>> That's it.
>
> using dev's MTU is a very good idea!
Tnx!
>
> Restricting the API to use one of 2 MTU's makes life easier.
>
>>
>> Any objections / better ideas?
> I don't see benefit in introducing ETH_P_CANFD.
> Using the skb's payload length differentiates enough between CAN_MTU & CANFD_MTU.
> Why not using that info. IMHO, ETH_P_CANFD duplicates the info.
This has a big advantage when thinking about wireshark & friends.
You can look into the eth protocol and know the skb data layout.
The length information is some kind of implicit knowledge.
>
> This part proves my point:
> @@ -69,13 +73,23 @@ static inline int can_dropped_invalid_skb(struct net_device *dev,
> {
> const struct can_frame *cf = (struct can_frame *)skb->data;
>
> - if (unlikely(skb->len != sizeof(*cf) || cf->can_dlc > 8)) {
> This check should have become:
> + if (unlikely(skb->len != dev->mut) || (cf->can_dlc > mtu_to_max_can_dlc(dev->mtu))
>
> Instead of all the if then else flows here.
> A lookup table to use by mtu_to_max_can_dlc is quite straight-forward:
> static const int mtu_to_max_can_dlc_table[] = {
> [sizeof(struct can_frame) = CAN_MAX_DLC,
> [sizeof(struct canfd_frame) = CANFD_MAX_DLC,
> };
Nice idea.
How big is mtu_to_max_can_dlc_table ??
sizeof(struct canfd_frame) * sizeof(int)
Regards,
Oliver
next prev parent reply other threads:[~2012-05-03 12:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4FA242D0.2070604@hartkopp.net>
2012-05-03 11:14 ` [RFC] CAN FD support part 2 - ideas and commented source Oliver Hartkopp
2012-05-03 12:37 ` Kurt Van Dijck
2012-05-03 12:50 ` Oliver Hartkopp [this message]
2012-05-03 13:22 ` Kurt Van Dijck
2012-05-07 11:51 ` Felix Obenhuber
2012-05-07 18:03 ` Oliver Hartkopp
2012-05-03 18:01 ` Wireshark / libpcap - was " Oliver Hartkopp
2012-05-04 9:29 ` Kurt Van Dijck
2012-05-04 9:59 ` Oliver Hartkopp
2012-05-07 12:19 ` Felix Obenhuber
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=4FA27F18.9080106@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=linux-can@vger.kernel.org \
/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