0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Controller Area Network (CAN) network layer core configuration
0004 #
0005
0006 menuconfig CAN
0007 tristate "CAN bus subsystem support"
0008 help
0009 Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
0010 communications protocol. Development of the CAN bus started in
0011 1983 at Robert Bosch GmbH, and the protocol was officially
0012 released in 1986. The CAN bus was originally mainly for automotive,
0013 but is now widely used in marine (NMEA2000), industrial, and medical
0014 applications. More information on the CAN network protocol family
0015 PF_CAN is contained in <Documentation/networking/can.rst>.
0016
0017 If you want CAN support you should say Y here and also to the
0018 specific driver for your controller(s) under the Network device
0019 support section.
0020
0021 if CAN
0022
0023 config CAN_RAW
0024 tristate "Raw CAN Protocol (raw access with CAN-ID filtering)"
0025 default y
0026 help
0027 The raw CAN protocol option offers access to the CAN bus via
0028 the BSD socket API. You probably want to use the raw socket in
0029 most cases where no higher level protocol is being used. The raw
0030 socket has several filter options e.g. ID masking / error frames.
0031 To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.
0032
0033 config CAN_BCM
0034 tristate "Broadcast Manager CAN Protocol (with content filtering)"
0035 default y
0036 help
0037 The Broadcast Manager offers content filtering, timeout monitoring,
0038 sending of RTR frames, and cyclic CAN messages without permanent user
0039 interaction. The BCM can be 'programmed' via the BSD socket API and
0040 informs you on demand e.g. only on content updates / timeouts.
0041 You probably want to use the bcm socket in most cases where cyclic
0042 CAN messages are used on the bus (e.g. in automotive environments).
0043 To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM.
0044
0045 config CAN_GW
0046 tristate "CAN Gateway/Router (with netlink configuration)"
0047 default y
0048 help
0049 The CAN Gateway/Router is used to route (and modify) CAN frames.
0050 It is based on the PF_CAN core infrastructure for msg filtering and
0051 msg sending and can optionally modify routed CAN frames on the fly.
0052 CAN frames can be routed between CAN network interfaces (one hop).
0053 They can be modified with AND/OR/XOR/SET operations as configured
0054 by the netlink configuration interface known e.g. from iptables.
0055
0056 source "net/can/j1939/Kconfig"
0057
0058 config CAN_ISOTP
0059 tristate "ISO 15765-2:2016 CAN transport protocol"
0060 help
0061 CAN Transport Protocols offer support for segmented Point-to-Point
0062 communication between CAN nodes via two defined CAN Identifiers.
0063 As CAN frames can only transport a small amount of data bytes
0064 (max. 8 bytes for 'classic' CAN and max. 64 bytes for CAN FD) this
0065 segmentation is needed to transport longer Protocol Data Units (PDU)
0066 as needed e.g. for vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN
0067 traffic.
0068 This protocol driver implements data transfers according to
0069 ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types.
0070 If you want to perform automotive vehicle diagnostic services (UDS),
0071 say 'y'.
0072
0073 endif