# Private config options for mDNS responder sample app

# Copyright (c) 2023 NordicNordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

mainmenu "Networking mDNS responder sample application"

config NET_SAMPLE_IFACE2_MY_IPV6_ADDR
	string "My IPv6 address for second interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE2_MY_IPV4_ADDR
	string "My IPv4 address for second interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE2_MY_IPV4_NETMASK
	string "My IPv4 netmask for second interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE2_VLAN_TAG
	int "VLAN tag for second interface"
	default 100
	range 0 4094
	depends on NET_VLAN
	help
	  Set VLAN (virtual LAN) tag (id) that is used in the sample
	  application.

config NET_SAMPLE_IFACE3_MY_IPV6_ADDR
	string "My IPv6 address for third interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE3_MY_IPV4_ADDR
	string "My IPv4 address for third interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE3_MY_IPV4_NETMASK
	string "My IPv4 netmask for third interface"
	help
	  The value depends on your network setup.

config NET_SAMPLE_IFACE3_VLAN_TAG
	int "VLAN tag for third interface"
	default 200
	range 0 4094
	depends on NET_VLAN
	help
	  Set VLAN (virtual LAN) tag (id) that is used in the sample
	  application.

source "Kconfig.zephyr"
