Hello, IMO it is the right direction but it is just half the story.I remember having problems with the txqueuelen even with 4KB PDUs originally and I'm not sure if that has been improved already.
https://gitlab.com/Menschel/socketcan#can-isotp-overflows-when-the-tx-queue-is-too-smallIt would be great to have all of those size options in one place and some intelligent IO buffer.
Apart from that the PDU size does not matter for UDS, because UDS splits the data into chunks that are sent via transfer_data service and concatenated on the receiver end again, sort of the protocol's built-in IO buffer.
https://gitlab.com/Menschel/socketcan-uds/-/blob/master/uds/programmer.py#L495 BR, Patrick -- Am 11.03.23 um 15:34 schrieb Oliver Hartkopp:
With ISO 15765-2:2016 the PDU size is not limited to 2^12 - 1 (4095) bytes but can be represented as a 32 bit unsigned integer value which allows 2^32 - 1 bytes (~4GB). The use-cases like automotive unified diagnostic services (UDS) and flashing of ECUs still use the small static buffers which are provided at socket creation time. When a use-case requires to transfer PDUs up to 1025 kByte the maximum PDU size can now be extended by setting the module parameter max_pdu_size. The extended size buffers are only allocated on a per-socket/connection base when needed at run-time. Link: https://github.com/raspberrypi/linux/issues/5371 Signed-off-by: Oliver Hartkopp <socketcan@xxxxxxxxxxxx>
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature