xref: /linux/net/can/Kconfig (revision 9d71dd0c70099914fcd063135da3c580865e924c)
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	depends on NET
80d66548aSOliver Hartkopp	tristate "CAN bus subsystem support"
90d66548aSOliver Hartkopp	---help---
100d66548aSOliver Hartkopp	  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
1626bca9feSRobert P. J. Day	  PF_CAN is contained in <Documentation/networking/can.rst>.
170d66548aSOliver Hartkopp
180d66548aSOliver Hartkopp	  If you want CAN support you should say Y here and also to the
190d66548aSOliver Hartkopp	  specific driver for your controller(s) below.
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
26c18ce101SOliver Hartkopp	---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
36ffd980f9SOliver Hartkopp	---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
48c1aabdf3SOliver Hartkopp	---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
56*9d71dd0cSThe j1939 authorssource "net/can/j1939/Kconfig"
57*9d71dd0cSThe j1939 authors
58ccb29637SOliver Hartkoppsource "drivers/net/can/Kconfig"
5977136836SMarc Kleine-Budde
6077136836SMarc Kleine-Buddeendif
61