#
# Controller Area Network (CAN) network layer core configuration
#

menuconfig CAN
	depends on NET
	tristate "CAN bus subsystem support"
	---help---
	  Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial
	  communications protocol, which was developed by Bosch at
	  1991 mainly for automotive, but now widely used in marine
	  (NMEA2000), industrial and medical applications.
	  More information on the CAN network protocol family PF_CAN
	  is contained in <Documentation/networking/can.txt>.

	  If you want CAN support, you should say Y here and also to the
	  specific driver for your controller(s) below.

config CAN_RAW
	tristate "Raw CAN Protocol (raw access with CAN-ID filtering)"
	depends on CAN
	default N
	---help---
	  The Raw CAN protocol option offers access to the CAN bus via
	  the BSD socket API. You probably want to use the raw socket in
	  most cases where no higher level protocol is being used. The raw
	  socket has several filter options e.g. ID-Masking / Errorframes.
	  To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW.

config CAN_RAW_USER
	bool "Allow non-root users to access Raw CAN Protocol sockets"
	depends on CAN_RAW
	default N
	---help---
	  The Controller Area Network is a local field bus transmitting only
	  broadcast messages without any routing and security concepts.
	  In the majority of cases the user application has to deal with
	  raw CAN frames. Therefore it might be reasonable NOT to restrict
	  the CAN access only to the user root, as known from other networks.
	  Since CAN_RAW sockets can only send and receive frames to/from CAN
	  interfaces this does not affect security of others networks.
	  Say Y here if you want non-root users to be able to access CAN_RAW
	  sockets.

config CAN_BCM
	tristate "Broadcast Manager CAN Protocol (with content filtering)"
	depends on CAN
	default N
	---help---
	  The Broadcast Manager offers content filtering, timeout monitoring,
	  sending of RTR-frames and cyclic CAN messages without permanent user
	  interaction. The BCM can be 'programmed' via the BSD socket API and
	  informs you on demand e.g. only on content updates / timeouts.
	  You probably want to use the bcm socket in most cases where cyclic
	  CAN messages are used on the bus (e.g. in automotive environments).
	  To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM.

config CAN_BCM_USER
	bool "Allow non-root users to access CAN broadcast manager sockets"
	depends on CAN_BCM
	default N
	---help---
	  The Controller Area Network is a local field bus transmitting only
	  broadcast messages without any routing and security concepts.
	  In the majority of cases the user application has to deal with
	  raw CAN frames. Therefore it might be reasonable NOT to restrict
	  the CAN access only to the user root, as known from other networks.
	  Since CAN_BCM sockets can only send and receive frames to/from CAN
	  interfaces this does not affect security of others networks.
	  Say Y here if you want non-root users to be able to access CAN_BCM
	  sockets.

config CAN_DEBUG_CORE
	bool "CAN Core debugging messages"
	depends on CAN
	---help---
	  Say Y here if you want the CAN core to produce a bunch of debug
	  messages to the system log.  Select this if you are having a
	  problem with CAN support and want to see more of what is going on.


source "drivers/net/can/Kconfig"
