============================================================================ README.isotp Readme file for ISO 15765-2 CAN transport protocol for protocol family CAN * WARNING: This is ALPHA code for discussions and first tests that should * not be used in production environments. * * In the discussion the Socket-API to the userspace or the ISO-TP socket * options or the return values we may change! Current behaviour: * * - no ISO-TP specific return values are provided to the userspace * - when a transfer (tx) is on the run the next write() blocks until it's done * - no support for sending wait frames to the data source in the rx path 1 What is ISO-TP for CAN 2 Tools and Examples 2.1 isotpsend - send PDUs from stdin to CAN 2.2 isotprecv - print received PDU on stdout 2.3 isotpdump - dump CAN frames with PCI decoding (using CAN_RAW socket) 2.4 isotpsniffer - dump reassembled ISO-TP PDUs (using CAN_ISOTP socket) 2.5 isotptun - create an IP tunnel over unreliable ISO-TP PDUs 3 Remarks 3.1 tx_queue_len on real CAN busses (!!!) 3.2 State of the Socket API & Discussion 1 What is ISO-TP for CAN ------------------------ CAN Transport Protocols offer support for segmented Point-to-Point communication between CAN nodes via two defined CAN Identifiers. This protocol driver implements data transfers according ISO 15765-2. CAN ISO-TP is an unreliable datagram protocol and is implemented like this. For that reason error indications, like 'dropped PDUs in the receive path due to wrong SequenceNumbers' are intentionally not supported. See discussion in section 3.2 Code examples of how to use ISO-TP sockets can be found in the source code of the available tools described below. The API is still a RFC and will be described in detail later, when it's finalized. 2 Tools and Examples -------------------- The source code of these tools can be found in the BerliOS SVN repository http://developer.berlios.de/svn/?group_id=6475 in trunk/can-utils For the examples below we assume a test setup with two hosts: _______ _______ | | | | | Host1 | | Host2 | | | | | | can1 | | can2 | |_______| |_______| | | |------------------------------| CAN bus 2.1 isotpsend - send PDUs from stdin to CAN isotpsend gives this help when invoked without any parameters: Usage: isotpsend [options] Options: -s (source can_id. Use 8 digits for extended IDs) -d (destination can_id. Use 8 digits for extended IDs) -x (extended addressing mode. Use 'any' for all addresses) -p (set and enable padding byte) -P (check padding in FC. (l)ength (c)ontent (a)ll) -t