xref: /OK3568_Linux_fs/kernel/net/can/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Controller Area Network (CAN) network layer core configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunmenuconfig CAN
7*4882a593Smuzhiyun	depends on NET
8*4882a593Smuzhiyun	tristate "CAN bus subsystem support"
9*4882a593Smuzhiyun	help
10*4882a593Smuzhiyun	  Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
11*4882a593Smuzhiyun	  communications protocol. Development of the CAN bus started in
12*4882a593Smuzhiyun	  1983 at Robert Bosch GmbH, and the protocol was officially
13*4882a593Smuzhiyun	  released in 1986. The CAN bus was originally mainly for automotive,
14*4882a593Smuzhiyun	  but is now widely used in marine (NMEA2000), industrial, and medical
15*4882a593Smuzhiyun	  applications. More information on the CAN network protocol family
16*4882a593Smuzhiyun	  PF_CAN is contained in <Documentation/networking/can.rst>.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	  If you want CAN support you should say Y here and also to the
19*4882a593Smuzhiyun	  specific driver for your controller(s) below.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunif CAN
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunconfig CAN_RAW
24*4882a593Smuzhiyun	tristate "Raw CAN Protocol (raw access with CAN-ID filtering)"
25*4882a593Smuzhiyun	default y
26*4882a593Smuzhiyun	help
27*4882a593Smuzhiyun	  The raw CAN protocol option offers access to the CAN bus via
28*4882a593Smuzhiyun	  the BSD socket API. You probably want to use the raw socket in
29*4882a593Smuzhiyun	  most cases where no higher level protocol is being used. The raw
30*4882a593Smuzhiyun	  socket has several filter options e.g. ID masking / error frames.
31*4882a593Smuzhiyun	  To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunconfig CAN_BCM
34*4882a593Smuzhiyun	tristate "Broadcast Manager CAN Protocol (with content filtering)"
35*4882a593Smuzhiyun	default y
36*4882a593Smuzhiyun	help
37*4882a593Smuzhiyun	  The Broadcast Manager offers content filtering, timeout monitoring,
38*4882a593Smuzhiyun	  sending of RTR frames, and cyclic CAN messages without permanent user
39*4882a593Smuzhiyun	  interaction. The BCM can be 'programmed' via the BSD socket API and
40*4882a593Smuzhiyun	  informs you on demand e.g. only on content updates / timeouts.
41*4882a593Smuzhiyun	  You probably want to use the bcm socket in most cases where cyclic
42*4882a593Smuzhiyun	  CAN messages are used on the bus (e.g. in automotive environments).
43*4882a593Smuzhiyun	  To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunconfig CAN_GW
46*4882a593Smuzhiyun	tristate "CAN Gateway/Router (with netlink configuration)"
47*4882a593Smuzhiyun	default y
48*4882a593Smuzhiyun	help
49*4882a593Smuzhiyun	  The CAN Gateway/Router is used to route (and modify) CAN frames.
50*4882a593Smuzhiyun	  It is based on the PF_CAN core infrastructure for msg filtering and
51*4882a593Smuzhiyun	  msg sending and can optionally modify routed CAN frames on the fly.
52*4882a593Smuzhiyun	  CAN frames can be routed between CAN network interfaces (one hop).
53*4882a593Smuzhiyun	  They can be modified with AND/OR/XOR/SET operations as configured
54*4882a593Smuzhiyun	  by the netlink configuration interface known e.g. from iptables.
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunsource "net/can/j1939/Kconfig"
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig CAN_ISOTP
59*4882a593Smuzhiyun	tristate "ISO 15765-2:2016 CAN transport protocol"
60*4882a593Smuzhiyun	help
61*4882a593Smuzhiyun	  CAN Transport Protocols offer support for segmented Point-to-Point
62*4882a593Smuzhiyun	  communication between CAN nodes via two defined CAN Identifiers.
63*4882a593Smuzhiyun	  As CAN frames can only transport a small amount of data bytes
64*4882a593Smuzhiyun	  (max. 8 bytes for 'classic' CAN and max. 64 bytes for CAN FD) this
65*4882a593Smuzhiyun	  segmentation is needed to transport longer Protocol Data Units (PDU)
66*4882a593Smuzhiyun	  as needed e.g. for vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN
67*4882a593Smuzhiyun	  traffic.
68*4882a593Smuzhiyun	  This protocol driver implements data transfers according to
69*4882a593Smuzhiyun	  ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types.
70*4882a593Smuzhiyun	  If you want to perform automotive vehicle diagnostic services (UDS),
71*4882a593Smuzhiyun	  say 'y'.
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunsource "drivers/net/can/Kconfig"
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunendif
76