# Kconfig - netusb configuration options

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

menu "USB Device Networking support"
	depends on USB_DEVICE_STACK

config USB_DEVICE_NETWORK
	bool
	default n
	select NET_L2_ETHERNET

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

config USB_DEVICE_NETWORK_RNDIS
	bool
	prompt "USB Remote NDIS (RNDIS) Networking device"
	select USB_DEVICE_NETWORK
	default n
	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_INT_EP_ADDR
	hex "CDC ECM Interrupt Endpoint address"
	default 0x83
	range 0x81 0x8F
	help
	  CDC ECM class interrupt endpoint address

config CDC_ECM_IN_EP_ADDR
	hex "CDC ECM BULK IN Endpoint address"
	default 0x82
	range 0x81 0x8F
	help
	  CDC ECM class IN endpoint address

config CDC_ECM_OUT_EP_ADDR
	hex "CDC ECM BULK OUT Endpoint address"
	default 0x01
	range 0x01 0x0F
	help
	  CDC ECM class OUT endpoint address

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

endmenu # USB Device Networking support
