Re: [PATCH v8 0/7] can: support CAN XL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11.09.22 10:08, Vincent MAILHOL wrote:
Hi Oliver,

On Wed. 31 Aug. 2022 at 20:57, Oliver Hartkopp <socketcan@xxxxxxxxxxxx> wrote:
Hi Vincent,

I have discussed with Marc about this patch set and after our discussion
about len/flags he was missing an ACK from your side:

https://lore.kernel.org/linux-can/247226f6-b9b5-ec47-2234-d1cc70ee6954@xxxxxxxxxxxx/T/#u

Are you fine with this V8 patch set now?

I already created some CAN CiA p-o-c code for CAN XL segmentation:

https://github.com/hartkopp/can-cia-613-3-poc

When the patch set is committed and the definitions are fixed I would
also start with some documentation.

Sorry for the delay, it was tough to find time for the final review.

On 01.08.22 21:00, Oliver Hartkopp wrote:
The CAN with eXtended data Length (CAN XL) is a new CAN protocol with a
10Mbit/s data transfer with a new physical layer transceiver (for this
data section). CAN XL allows up to 2048 byte of payload and shares the
arbitration principle (11 bit priority) known from Classical CAN and
CAN FD. RTR and 29 bit identifiers are not implemented in CAN XL.

A short introdution to CAN XL can be found here:
https://www.bosch-semiconductors.com/media/ip_modules/pdf_2/can_xl_1/canxl_intro_20210225.pdf

V2: Major rework after discussion and feedback on Linux-CAN ML

- rework of struct canxl_frame
- CANXL_XLF flag is now the switch between CAN XL and CAN/CANFD
- variable length in r/w operations for CAN XL frames
- write CAN XL frame to raw socket enforces size <-> canxl_frame.len sync

V3: Fix length for CAN XL frames inside the sk_buff

- extend the CAN_RAW sockopt to handle fixed/truncated read/write operations

V4: Fix patch 5 (can: raw: add CAN XL support)

- fix return value (move 'err = -EINVAL' in raw_sendmsg())
- add CAN XL frame handling in can_rcv()
- change comment for CAN_RAW_XL_[RT]X_DYN definition (allow -> enable)

V5: Remove CAN_RAW_XL_[RT]X_DYN definition again

- CAN_RAW_XL_[RT]X_DYN (truncated data) feature is now enabled by default
- use CANXL_MIN_DLEN instead of '1' in canxl_frame definition
- add missing 'err = -EINVAL' initialization in raw_sendmsg())

V6:

- rework an separate skb identification and length helpers
- add CANFD_FDF flag in all CAN FD frame structures
- simplify patches for infrastructure and raw sockets
- add vxcan support in virtual CAN interface patch

V7:

- fixed indention as remarked by Marc
- set CANFD_FDF flag when detecting CAN FD frames generated by PF_PACKET
- Allow to use variable CAN XL MTU sizes to enforce real time requirements
    on CAN XL segments (e.g. to support of CAN CiA segmentation concept)

V8:

- fixed typo as remarked by Vincent
- rebased to latest can-next/net-next tree

Oliver Hartkopp (7):
    can: skb: unify skb CAN frame identification helpers
    can: skb: add skb CAN frame data length helpers
    can: set CANFD_FDF flag in all CAN FD frame structures
    can: canxl: introduce CAN XL data structure

As pointed out in the past, I still prefer to make canxl_fame::data a
flexible array (data[]) instead of specifying the maximum length (i.e.
data[CANXL_MAX_DLEN]). But as no one else manifested any objections on
the mailing, I conclude that the majority is either fine with the
data[CANXL_MAX_DLEN] or indifferent. Thus, I will acknowledge this
patch despite having a different personal opinion on the topic.

    can: canxl: update CAN infrastructure for CAN XL frames
    can: dev: add CAN XL support to virtual CAN
    can: raw: add CAN XL support

I send two additional comments for patches 3 and 5. Those two last
comments being minor ones, I let you directly handle those. With that
said:

Acked-by: Vincent Mailhol <mailhol.vincent@xxxxxxxxxx>

(valid for the full series, you can directly add this to the v9).

Thanks Vincent!

I commented your remarks on patch 3, 4 and 5. I assume this to be ok for you.

Will send a v9 later today with some updates in the cover letter to point to the online available CAN XL resources.

Thanks and best regards,
Oliver


   drivers/net/can/ctucanfd/ctucanfd_base.c |   1 -
   drivers/net/can/dev/rx-offload.c         |   2 +-
   drivers/net/can/dev/skb.c                | 113 ++++++++++++++++-------
   drivers/net/can/vcan.c                   |  12 +--
   drivers/net/can/vxcan.c                  |   8 +-
   include/linux/can/dev.h                  |   5 +
   include/linux/can/skb.h                  |  57 +++++++++++-
   include/uapi/linux/can.h                 |  55 ++++++++++-
   include/uapi/linux/can/raw.h             |   1 +
   include/uapi/linux/if_ether.h            |   1 +
   net/can/af_can.c                         |  76 ++++++++-------
   net/can/bcm.c                            |   9 +-
   net/can/gw.c                             |   4 +-
   net/can/isotp.c                          |   2 +-
   net/can/j1939/main.c                     |   4 +
   net/can/raw.c                            |  55 ++++++++---
   16 files changed, 299 insertions(+), 106 deletions(-)

Yours sincerely,
Vincent Mailhol



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux