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