STRUCT CANXL_FRAME(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct canxl_frame(9)

okay bestie, so this page is from the Kernel API Manual and it's literally all about struct canxl_frame β€” that's the CAN with e'X'tended frame 'L'ength frame structure. yes the title spells it out with those little quotes, we love a dramatic acronym reveal ✨


🌸 SYNOPSIS 🌸

here's the whole struct, character for character, no cap:

struct canxl_frame {
    canid_t prio;
    __u8 flags;
    __u8 sdt;
    __u16 len;
    __u32 af;
    __u8 data[CANXL_MAX_DLEN];
 };

πŸŽ€ Members πŸŽ€

  • prio β€” the 11 bit arbitration priority, and the CAN_*_FLAG flags inside it are zero'ed out / it's also the VCID. multitasking icon honestly πŸ‘‘
  • flags β€” extra flags for CAN XL πŸ¦‹
  • sdt β€” the SDU (that's service data unit, iykyk) type
  • len β€” frame payload length in byte, and it lives in the range CANXL_MIN_DLEN .. CANXL_MAX_DLEN
  • af β€” the acceptance field
  • data β€” the actual CAN XL frame payload, CANXL_MIN_DLEN .. CANXL_MAX_DLEN byte πŸ“

πŸ¦‹ Description πŸ¦‹

so the tea is: prio shares the exact same position as can_id from struct can[fd]_frame. like, same seat at the table, same coordinates. periodt πŸ’…


⭐ SEE ALSO ⭐

  • Kernel file ./include/uapi/linux/can.h
  • struct can_frame(9)
  • struct canfd_frame(9)
  • struct sockaddr_can(9)
  • struct can_filter(9)

go read those too, they're iconic in their own right 🫢


and that's the whole vibe, bestie πŸ’– this cutie lives in ./include/uapi/linux, dated October 2026, and yes the footer says struct canxl_frame(9) too β€” main character energy from top to bottom πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from