xref: /linux/net/can/Kconfig (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
20d66548aSOliver Hartkopp#
30d66548aSOliver Hartkopp# Controller Area Network (CAN) network layer core configuration
40d66548aSOliver Hartkopp#
50d66548aSOliver Hartkopp
60d66548aSOliver Hartkoppmenuconfig CAN
70d66548aSOliver Hartkopp	tristate "CAN bus subsystem support"
8a7f7f624SMasahiro Yamada	help
90d66548aSOliver Hartkopp	  Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
1026bca9feSRobert P. J. Day	  communications protocol. Development of the CAN bus started in
1126bca9feSRobert P. J. Day	  1983 at Robert Bosch GmbH, and the protocol was officially
1226bca9feSRobert P. J. Day	  released in 1986. The CAN bus was originally mainly for automotive,
1326bca9feSRobert P. J. Day	  but is now widely used in marine (NMEA2000), industrial, and medical
1426bca9feSRobert P. J. Day	  applications. More information on the CAN network protocol family
1526bca9feSRobert P. J. Day	  PF_CAN is contained in <Documentation/networking/can.rst>.
160d66548aSOliver Hartkopp
170d66548aSOliver Hartkopp	  If you want CAN support you should say Y here and also to the
18d7786af5SVincent Mailhol	  specific driver for your controller(s) under the Network device
19d7786af5SVincent Mailhol	  support section.
20c18ce101SOliver Hartkopp
2177136836SMarc Kleine-Buddeif CAN
2277136836SMarc Kleine-Budde
23c18ce101SOliver Hartkoppconfig CAN_RAW
24c18ce101SOliver Hartkopp	tristate "Raw CAN Protocol (raw access with CAN-ID filtering)"
25f66b0301SMarc Kleine-Budde	default y
26a7f7f624SMasahiro Yamada	help
27c18ce101SOliver Hartkopp	  The raw CAN protocol option offers access to the CAN bus via
28c18ce101SOliver Hartkopp	  the BSD socket API. You probably want to use the raw socket in
29c18ce101SOliver Hartkopp	  most cases where no higher level protocol is being used. The raw
30c18ce101SOliver Hartkopp	  socket has several filter options e.g. ID masking / error frames.
31c18ce101SOliver Hartkopp	  To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.
32ffd980f9SOliver Hartkopp
33ffd980f9SOliver Hartkoppconfig CAN_BCM
34ffd980f9SOliver Hartkopp	tristate "Broadcast Manager CAN Protocol (with content filtering)"
35f66b0301SMarc Kleine-Budde	default y
36a7f7f624SMasahiro Yamada	help
37ffd980f9SOliver Hartkopp	  The Broadcast Manager offers content filtering, timeout monitoring,
38ffd980f9SOliver Hartkopp	  sending of RTR frames, and cyclic CAN messages without permanent user
39ffd980f9SOliver Hartkopp	  interaction. The BCM can be 'programmed' via the BSD socket API and
40ffd980f9SOliver Hartkopp	  informs you on demand e.g. only on content updates / timeouts.
41ffd980f9SOliver Hartkopp	  You probably want to use the bcm socket in most cases where cyclic
42ffd980f9SOliver Hartkopp	  CAN messages are used on the bus (e.g. in automotive environments).
43ffd980f9SOliver Hartkopp	  To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM.
44ccb29637SOliver Hartkopp
45c1aabdf3SOliver Hartkoppconfig CAN_GW
46c1aabdf3SOliver Hartkopp	tristate "CAN Gateway/Router (with netlink configuration)"
47f66b0301SMarc Kleine-Budde	default y
48a7f7f624SMasahiro Yamada	help
49c1aabdf3SOliver Hartkopp	  The CAN Gateway/Router is used to route (and modify) CAN frames.
50c1aabdf3SOliver Hartkopp	  It is based on the PF_CAN core infrastructure for msg filtering and
51c1aabdf3SOliver Hartkopp	  msg sending and can optionally modify routed CAN frames on the fly.
52c1aabdf3SOliver Hartkopp	  CAN frames can be routed between CAN network interfaces (one hop).
53c1aabdf3SOliver Hartkopp	  They can be modified with AND/OR/XOR/SET operations as configured
54c1aabdf3SOliver Hartkopp	  by the netlink configuration interface known e.g. from iptables.
55ccb29637SOliver Hartkopp
569d71dd0cSThe j1939 authorssource "net/can/j1939/Kconfig"
579d71dd0cSThe j1939 authors
58e057dd3fSOliver Hartkoppconfig CAN_ISOTP
59*ba63a7e0SOliver Hartkopp	tristate "ISO 15765-2 CAN transport protocol"
60e057dd3fSOliver Hartkopp	help
61e057dd3fSOliver Hartkopp	  CAN Transport Protocols offer support for segmented Point-to-Point
62e057dd3fSOliver Hartkopp	  communication between CAN nodes via two defined CAN Identifiers.
63*ba63a7e0SOliver Hartkopp	  This protocol driver implements segmented data transfers for CAN CC
64*ba63a7e0SOliver Hartkopp	  (aka Classical CAN, CAN 2.0B) and CAN FD frame types which were
65*ba63a7e0SOliver Hartkopp	  introduced with ISO 15765-2:2016.
66e057dd3fSOliver Hartkopp	  As CAN frames can only transport a small amount of data bytes
67*ba63a7e0SOliver Hartkopp	  (max. 8 bytes for CAN CC and max. 64 bytes for CAN FD) this
685a7de240SGeert Uytterhoeven	  segmentation is needed to transport longer Protocol Data Units (PDU)
695a7de240SGeert Uytterhoeven	  as needed e.g. for vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN
705a7de240SGeert Uytterhoeven	  traffic.
71e057dd3fSOliver Hartkopp
7277136836SMarc Kleine-Buddeendif
73