18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Controller Area Network (CAN) network layer core configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig CAN
78c2ecf20Sopenharmony_ci	depends on NET
88c2ecf20Sopenharmony_ci	tristate "CAN bus subsystem support"
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
118c2ecf20Sopenharmony_ci	  communications protocol. Development of the CAN bus started in
128c2ecf20Sopenharmony_ci	  1983 at Robert Bosch GmbH, and the protocol was officially
138c2ecf20Sopenharmony_ci	  released in 1986. The CAN bus was originally mainly for automotive,
148c2ecf20Sopenharmony_ci	  but is now widely used in marine (NMEA2000), industrial, and medical
158c2ecf20Sopenharmony_ci	  applications. More information on the CAN network protocol family
168c2ecf20Sopenharmony_ci	  PF_CAN is contained in <Documentation/networking/can.rst>.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	  If you want CAN support you should say Y here and also to the
198c2ecf20Sopenharmony_ci	  specific driver for your controller(s) below.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciif CAN
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciconfig CAN_RAW
248c2ecf20Sopenharmony_ci	tristate "Raw CAN Protocol (raw access with CAN-ID filtering)"
258c2ecf20Sopenharmony_ci	default y
268c2ecf20Sopenharmony_ci	help
278c2ecf20Sopenharmony_ci	  The raw CAN protocol option offers access to the CAN bus via
288c2ecf20Sopenharmony_ci	  the BSD socket API. You probably want to use the raw socket in
298c2ecf20Sopenharmony_ci	  most cases where no higher level protocol is being used. The raw
308c2ecf20Sopenharmony_ci	  socket has several filter options e.g. ID masking / error frames.
318c2ecf20Sopenharmony_ci	  To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciconfig CAN_BCM
348c2ecf20Sopenharmony_ci	tristate "Broadcast Manager CAN Protocol (with content filtering)"
358c2ecf20Sopenharmony_ci	default y
368c2ecf20Sopenharmony_ci	help
378c2ecf20Sopenharmony_ci	  The Broadcast Manager offers content filtering, timeout monitoring,
388c2ecf20Sopenharmony_ci	  sending of RTR frames, and cyclic CAN messages without permanent user
398c2ecf20Sopenharmony_ci	  interaction. The BCM can be 'programmed' via the BSD socket API and
408c2ecf20Sopenharmony_ci	  informs you on demand e.g. only on content updates / timeouts.
418c2ecf20Sopenharmony_ci	  You probably want to use the bcm socket in most cases where cyclic
428c2ecf20Sopenharmony_ci	  CAN messages are used on the bus (e.g. in automotive environments).
438c2ecf20Sopenharmony_ci	  To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM.
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciconfig CAN_GW
468c2ecf20Sopenharmony_ci	tristate "CAN Gateway/Router (with netlink configuration)"
478c2ecf20Sopenharmony_ci	default y
488c2ecf20Sopenharmony_ci	help
498c2ecf20Sopenharmony_ci	  The CAN Gateway/Router is used to route (and modify) CAN frames.
508c2ecf20Sopenharmony_ci	  It is based on the PF_CAN core infrastructure for msg filtering and
518c2ecf20Sopenharmony_ci	  msg sending and can optionally modify routed CAN frames on the fly.
528c2ecf20Sopenharmony_ci	  CAN frames can be routed between CAN network interfaces (one hop).
538c2ecf20Sopenharmony_ci	  They can be modified with AND/OR/XOR/SET operations as configured
548c2ecf20Sopenharmony_ci	  by the netlink configuration interface known e.g. from iptables.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_cisource "net/can/j1939/Kconfig"
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciconfig CAN_ISOTP
598c2ecf20Sopenharmony_ci	tristate "ISO 15765-2:2016 CAN transport protocol"
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  CAN Transport Protocols offer support for segmented Point-to-Point
628c2ecf20Sopenharmony_ci	  communication between CAN nodes via two defined CAN Identifiers.
638c2ecf20Sopenharmony_ci	  As CAN frames can only transport a small amount of data bytes
648c2ecf20Sopenharmony_ci	  (max. 8 bytes for 'classic' CAN and max. 64 bytes for CAN FD) this
658c2ecf20Sopenharmony_ci	  segmentation is needed to transport longer Protocol Data Units (PDU)
668c2ecf20Sopenharmony_ci	  as needed e.g. for vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN
678c2ecf20Sopenharmony_ci	  traffic.
688c2ecf20Sopenharmony_ci	  This protocol driver implements data transfers according to
698c2ecf20Sopenharmony_ci	  ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types.
708c2ecf20Sopenharmony_ci	  If you want to perform automotive vehicle diagnostic services (UDS),
718c2ecf20Sopenharmony_ci	  say 'y'.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_cisource "drivers/net/can/Kconfig"
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciendif
76