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