# 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
