From: Vincent Mailhol <mailhol@kernel.org>
To: Oliver Hartkopp <socketcan@hartkopp.net>,
Vincent Mailhol <mailhol@kernel.org>,
linux-can@vger.kernel.org
Subject: Re: [RFC PATCH v5 2/2] can: reject CAN FD content when disabled on CAN XL interfaces
Date: Mon, 15 Sep 2025 19:55:35 +0900 [thread overview]
Message-ID: <67e0351c-b478-4938-a42d-77764b27b9d1@kernel.org> (raw)
In-Reply-To: <6afc7e2d-eecf-4c47-bcef-0e2cdd7f4a89@hartkopp.net>
On 11/09/2025 at 05:12, Oliver Hartkopp wrote:
> On 10.09.25 18:19, Vincent Mailhol wrote:
>> On 10/09/2025 at 17:48, Oliver Hartkopp wrote:
>>> On 10.09.25 09:40, Vincent Mailhol wrote:
>>>> On 10/09/2025 at 16:27, Oliver Hartkopp wrote:
>>>
>>>>>> /* CAN XL is allowed on virtual interfaces if it fits the MTU */
>>>>>> if (!priv)
>>>>>> return dev->mtu == CANXL_MTU;
>>>>>
>>>>> return can_is_canxl_dev_mtu(mtu);
>>>>>
>>>>> The MTU of CAN XL interfaces might vary.
>>>>
>>>> Maybe this is something that we discussed before, I do not remember, but how is
>>>> it that the MTU can vary?
>>>>
>>>> MTU is the *Maximum* Transmission Unit. I understand that the size of a CAN XL
>>>> frame is variable, but the MTU should be constant, right? Why can it vary?
>>>
>>> Depending on the realtime requirements the length of the CAN frames (and
>>> therefore the time the bus is blocked) the MTU can be reduced. This is (like the
>>> bitrate settings) a network architects decision which is enforced by setting the
>>> MTU accordingly.
>>
>> Is this an extension we offer in Socket CAN?
>
> Yes.
>
>> The standard says nothing about
>> having the MTU configurable.
>>
>> For CAN FD, we forcefully set the MTU in netlink.c
>>
>> https://elixir.bootlin.com/linux/v6.16/source/drivers/net/can/dev/netlink.c#L228
>
> Oh. I did not realize before that we can either modify the MTU with setting fd
> on/off and via setting the MTU in can_change_mtu()
>
> https://elixir.bootlin.com/linux/v6.16/source/drivers/net/can/dev/dev.c#L313
>
> ?!?
>
> The two APIs problem for changing the MTU?!?
>
> I expected the default MTU for CAN FD capable interfaces to be CANFD_MTU which
> is obviously not the case.
>
>> I will have to think of what are the implication for CAN XL.
>
> I would define a default CANXL MTU (CANXL_MTU 2060) which might be changed with
> can_change_mtu().
>
> And when ever we switch xl on this value is selected as device MTU.
>
> Or the user can change the MTU as he needs it.
> And when xl on is selected and the MTU is a can_is_canxl_dev_mtu() this value is
> used. When can_is_canxl_dev_mtu() is not true we take CANXL_MTU.
>
> Something like this.
Yes. I was thinking of something similar. This is what I added locally at the
moment:
if ((priv->ctrlmode & CAN_CTRLMODE_XL) &&
!can_is_canxl_dev_mtu(dev->mtu)) {
/* Set CAN XL MTU to its max unless if already set by user */
dev->mtu = CANXL_MAX_MTU;
}
But I am still testing it.
Yours sincerely,
Vincent Mailhol
next prev parent reply other threads:[~2025-09-15 10:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-09 9:24 [RFC PATCH v5 1/2] can: skb: enforce CANFD_FDF check in can_is_canfd_skb() Oliver Hartkopp
2025-09-09 9:24 ` [RFC PATCH v5 2/2] can: reject CAN FD content when disabled on CAN XL interfaces Oliver Hartkopp
2025-09-09 16:36 ` Oliver Hartkopp
2025-09-10 5:13 ` Vincent Mailhol
2025-09-10 7:27 ` Oliver Hartkopp
2025-09-10 7:40 ` Vincent Mailhol
2025-09-10 8:48 ` Oliver Hartkopp
2025-09-10 16:19 ` Vincent Mailhol
2025-09-10 20:12 ` Oliver Hartkopp
2025-09-15 10:55 ` Vincent Mailhol [this message]
2025-09-15 13:59 ` Vincent Mailhol
2025-09-15 18:08 ` Oliver Hartkopp
2025-09-15 18:54 ` Vincent Mailhol
2025-09-16 9:14 ` Oliver Hartkopp
2025-09-16 13:17 ` Vincent Mailhol
2025-09-17 21:29 ` Oliver Hartkopp
2025-09-18 9:18 ` Vincent Mailhol
2025-09-20 17:38 ` Oliver Hartkopp
2025-09-20 17:57 ` Vincent Mailhol
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=67e0351c-b478-4938-a42d-77764b27b9d1@kernel.org \
--to=mailhol@kernel.org \
--cc=linux-can@vger.kernel.org \
--cc=socketcan@hartkopp.net \
/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