linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: linux-can@vger.kernel.org
Cc: Oliver Hartkopp <socketcan@hartkopp.net>
Subject: [RFC PATCH v6 0/7] can: support CAN XL
Date: Sun, 24 Jul 2022 09:43:55 +0200	[thread overview]
Message-ID: <20220724074402.117394-1-socketcan@hartkopp.net> (raw)

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

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
  can: canxl: update CAN infrastructure for CAN XL frames
  can: dev: add CAN XL support to virtual CAN
  can: raw: add CAN XL support

 drivers/net/can/ctucanfd/ctucanfd_base.c |   1 -
 drivers/net/can/dev/rx-offload.c         |   2 +-
 drivers/net/can/dev/skb.c                | 105 +++++++++++++++--------
 drivers/net/can/vcan.c                   |  11 ++-
 drivers/net/can/vxcan.c                  |   7 +-
 include/linux/can/skb.h                  |  57 +++++++++++-
 include/uapi/linux/can.h                 |  53 +++++++++++-
 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                            |  54 +++++++++---
 15 files changed, 281 insertions(+), 106 deletions(-)

-- 
2.30.2


             reply	other threads:[~2022-07-24  7:44 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-24  7:43 Oliver Hartkopp [this message]
2022-07-24  7:43 ` [RFC PATCH v6 1/7] can: skb: unify skb CAN frame identification helpers Oliver Hartkopp
2022-07-24  7:43 ` [RFC PATCH v6 2/7] can: skb: add skb CAN frame data length helpers Oliver Hartkopp
2022-07-24  7:43 ` [RFC PATCH v6 3/7] can: set CANFD_FDF flag in all CAN FD frame structures Oliver Hartkopp
2022-07-28 10:30   ` Marc Kleine-Budde
2022-07-24  7:43 ` [RFC PATCH v6 4/7] can: canxl: introduce CAN XL data structure Oliver Hartkopp
2022-07-24  7:44 ` [RFC PATCH v6 5/7] can: canxl: update CAN infrastructure for CAN XL frames Oliver Hartkopp
2022-07-27 14:04   ` Marc Kleine-Budde
2022-07-27 20:04     ` Oliver Hartkopp
2022-07-24  7:44 ` [RFC PATCH v6 6/7] can: dev: add CAN XL support to virtual CAN Oliver Hartkopp
2022-07-24  7:44 ` [RFC PATCH v6 7/7] can: raw: add CAN XL support 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=20220724074402.117394-1-socketcan@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;
as well as URLs for NNTP newsgroup(s).