# SPDX-License-Identifier: GPL-2.0-only
#
# RxRPC session sockets
#

config AF_RXRPC
	tristate "RxRPC session sockets"
	depends on INET
	select CRYPTO
	select KEYS
	select NET_UDP_TUNNEL
	help
	  Say Y or M here to include support for RxRPC session sockets (just
	  the transport part, not the presentation part: (un)marshalling is
	  left to the application).

	  These are used for AFS kernel filesystem and userspace utilities.

	  This module at the moment only supports client operations and is
	  currently incomplete.

	  See Documentation/networking/rxrpc.rst.

config AF_RXRPC_IPV6
	bool "IPv6 support for RxRPC"
	depends on (IPV6 = m && AF_RXRPC = m) || (IPV6 = y && AF_RXRPC)
	help
	  Say Y here to allow AF_RXRPC to use IPV6 UDP as well as IPV4 UDP as
	  its network transport.

config AF_RXRPC_INJECT_LOSS
	bool "Inject packet loss into RxRPC packet stream"
	depends on AF_RXRPC
	help
	  Say Y here to inject packet loss by discarding some received and some
	  transmitted packets.


config AF_RXRPC_DEBUG
	bool "RxRPC dynamic debugging"
	depends on AF_RXRPC
	help
	  Say Y here to make runtime controllable debugging messages appear.

	  See Documentation/networking/rxrpc.rst.


config RXKAD
	bool "RxRPC Kerberos security"
	depends on AF_RXRPC
	select CRYPTO
	select CRYPTO_MANAGER
	select CRYPTO_SKCIPHER
	select CRYPTO_PCBC
	select CRYPTO_FCRYPT
	help
	  Provide kerberos 4 and AFS kaserver security handling for AF_RXRPC
	  through the use of the key retention service.

	  See Documentation/networking/rxrpc.rst.
