# Kconfig.samples - Options for sample applications

#
# Copyright (c) 2016 Intel Corporation.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig NET_SAMPLES_IP_ADDRESSES
	bool "Set IP addresses for sample applications"
	default n
	help
	  Allow IP addresses to be set in config file for
	  networking client/server sample applications.

if NET_SAMPLES_IP_ADDRESSES

if NET_IPV6

config NET_SAMPLES_MY_IPV6_ADDR
	string "My IPv6 address"
	help
	  Use 2001:db8::1 here if uncertain.

config NET_SAMPLES_PEER_IPV6_ADDR
	string "Peer IPv6 address"
	help
	  This is only applicable in client side applications that try
	  to establish a connection to peer host.
	  Use 2001:db8::2 here if uncertain.

endif # NET_IPV6

if NET_IPV4

config NET_SAMPLES_MY_IPV4_ADDR
	string "My IPv4 address"
	help
	  Use 192.0.2.1 here if uncertain.

config NET_SAMPLES_PEER_IPV4_ADDR
	string "Peer IPv4 address"
	help
	  This is only applicable in client side applications that try
	  to establish a connection to peer host.
	  Use 192.0.2.2 here if uncertain.

endif # NET_IPV4

endif # NET_SAMPLES_IP_ADDRESSES
