# netusb configuration options

# Copyright (c) 2017 Intel Corp.
# SPDX-License-Identifier: Apache-2.0

menu "USB Device Networking support"

config USB_DEVICE_NETWORK
	bool
	select NET_L2_ETHERNET

config USB_DEVICE_NETWORK_ECM
	bool "USB Ethernet Control Model (ECM) Networking device"
	select USB_DEVICE_NETWORK
	help
	  Ethernet Control Model (ECM) is a part of  Communications Device
	  Class (CDC) USB protocol specified by USB-IF.

config USB_DEVICE_NETWORK_EEM
	bool "USB Ethernet Emulation Model (EEM) Networking device"
	select USB_DEVICE_NETWORK
	help
	  Ethernet Emulation Model (EEM) is part of  Communications Device
	  Class (CDC) USB protocol and can be used to encapsulate Ethernet
	  frames for transport over USB.

config USB_DEVICE_NETWORK_RNDIS
	bool "USB Remote NDIS (RNDIS) Networking device"
	select USB_DEVICE_NETWORK
	select USB_COMPOSITE_DEVICE
	help
	  Remote NDIS (RNDIS) is commonly used Microsoft vendor protocol with
	  Specification available from Microsoft web site.

if USB_DEVICE_NETWORK_ECM

config CDC_ECM_INTERRUPT_EP_MPS
	int
	default 16
	help
	  CDC ECM class interrupt endpoint size

config CDC_ECM_BULK_EP_MPS
	int
	default 64
	help
	  CDC ECM class bulk endpoint size

config USB_DEVICE_NETWORK_ECM_MAC
	string
	default "00005E005301"
	help
	  MAC Host OS Address string.
	  MAC Address which would be assigned to network device, created in
	  the Host's Operating System. Use RFC 7042 Documentation values as
	  default MAC.

endif # USB_DEVICE_NETWORK_ECM

if USB_DEVICE_NETWORK_EEM

config CDC_EEM_BULK_EP_MPS
	int
	default 64

endif # USB_DEVICE_NETWORK_EEM

if USB_DEVICE_NETWORK_RNDIS

config RNDIS_INTERRUPT_EP_MPS
	int
	default 16
	help
	  RNDIS interrupt endpoint size

config RNDIS_BULK_EP_MPS
	int
	default 64
	help
	  RNDIS bulk endpoint size

endif # USB_DEVICE_NETWORK_RNDIS

if USB_DEVICE_NETWORK

module = USB_DEVICE_NETWORK
module-dep = LOG
module-str = USB Device Network log level
source "subsys/net/Kconfig.template.log_config.net"

endif # USB_DEVICE_NETWORK

endmenu # USB Device Networking support
