# Activate all network Kconfig options in order to test that the result
# target compiles ok. Note that the different values in this file are
# just randomly selected, do not use the values in your real life
# applications.

# Generic options that are useful to be active
CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_ZTEST=y

# net_buf options
CONFIG_NET_BUF=y
CONFIG_NET_BUF_LOG=y
CONFIG_NET_BUF_LOG_LEVEL_DBG=y
CONFIG_NET_BUF_WARN_ALLOC_INTERVAL=2
CONFIG_NET_BUF_SIMPLE_LOG=y
CONFIG_NET_BUF_POOL_USAGE=y

# Core IP options
CONFIG_NETWORKING=y
CONFIG_NET_SHELL=y
CONFIG_NET_IP_ADDR_CHECK=y
CONFIG_NET_HOSTNAME_ENABLE=y

# Statistics
CONFIG_NET_STATISTICS=y
CONFIG_NET_STATISTICS_USER_API=y
CONFIG_NET_STATISTICS_PERIODIC_OUTPUT=y
CONFIG_NET_STATISTICS_IPV4=y
CONFIG_NET_STATISTICS_IPV6=y
CONFIG_NET_STATISTICS_IPV6_ND=y
CONFIG_NET_STATISTICS_ICMP=y
CONFIG_NET_STATISTICS_UDP=y
CONFIG_NET_STATISTICS_TCP=y
CONFIG_NET_STATISTICS_MLD=y

# L2 drivers
CONFIG_NET_L2_IEEE802154_RADIO_TX_RETRIES=2
CONFIG_NET_L2_IEEE802154_RADIO_CSMA_CA=y
CONFIG_NET_L2_IEEE802154_RADIO_ALOHA=n
CONFIG_NET_L2_IEEE802154_RADIO_CSMA_CA_MAX_BO=4
CONFIG_NET_L2_IEEE802154_RADIO_CSMA_CA_MIN_BE=3
CONFIG_NET_L2_IEEE802154_RADIO_CSMA_CA_MAX_BE=5
CONFIG_NET_L2_IEEE802154=y
CONFIG_NET_L2_IEEE802154_MGMT=y
CONFIG_NET_L2_IEEE802154_ACK_REPLY=y
CONFIG_NET_L2_IEEE802154_RFD=y
CONFIG_NET_L2_IEEE802154_SHELL=y
CONFIG_NET_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_L2_IEEE802154_FRAGMENT_REASS_CACHE_SIZE=2
CONFIG_NET_L2_IEEE802154_REASSEMBLY_TIMEOUT=10
CONFIG_NET_L2_IEEE802154_SECURITY=y
CONFIG_NET_L2_IEEE802154_SECURITY_CRYPTO_DEV_NAME="CRYPTO-DEV"
CONFIG_NET_L2_DUMMY=y
CONFIG_NET_L2_ETHERNET=y

CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_SMP=y
CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
CONFIG_NET_L2_BT=y
CONFIG_NET_L2_BT_ZEP1656=y
CONFIG_NET_L2_BT_SEC_LEVEL=4
CONFIG_NET_L2_BT_MGMT=y
CONFIG_NET_L2_BT_SHELL=y
CONFIG_NET_L2_IEEE802154_LOG_LEVEL_DBG=y
CONFIG_NET_DEBUG_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_L2_ETHERNET_LOG_LEVEL_DBG=y
CONFIG_NET_L2_BT_LOG_LEVEL_DBG=y

# IP offload support
CONFIG_NET_OFFLOAD=y
CONFIG_NET_OFFLOAD_LOG_LEVEL_DBG=y

# Routing table
CONFIG_NET_MAX_ROUTERS=3
CONFIG_NET_ROUTE=y
CONFIG_NET_ROUTE_MCAST=y

# TCP
CONFIG_NET_TCP=y
CONFIG_NET_TCP_LOG_LEVEL_DBG=y
CONFIG_NET_TCP_TIME_WAIT_DELAY=20000

# UDP
CONFIG_NET_UDP=y
CONFIG_NET_UDP_LOG_LEVEL_DBG=y

# Network context
CONFIG_NET_MAX_CONN=10
CONFIG_NET_CONN_CACHE=y
CONFIG_NET_MAX_CONTEXTS=5
CONFIG_NET_CONTEXT_NET_PKT_POOL=y
CONFIG_NET_CONTEXT_SYNC_RECV=y
CONFIG_NET_CONTEXT_CHECK=y

# SLIP

# Trickle algo
CONFIG_NET_TRICKLE=y
CONFIG_NET_TRICKLE_LOG_LEVEL_DBG=y

# Network buffer
CONFIG_NET_PKT_RX_COUNT=10
CONFIG_NET_PKT_TX_COUNT=10
CONFIG_NET_BUF_RX_COUNT=15
CONFIG_NET_BUF_TX_COUNT=15
CONFIG_NET_BUF_DATA_SIZE=128
CONFIG_NET_BUF_USER_DATA_SIZE=10

# IPv6
CONFIG_NET_IPV6=y
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=3
CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT=3
CONFIG_NET_IF_IPV6_PREFIX_COUNT=3
CONFIG_NET_INITIAL_HOP_LIMIT=64
CONFIG_NET_IPV6_MAX_NEIGHBORS=5
CONFIG_NET_IPV6_FRAGMENT=y
CONFIG_NET_IPV6_FRAGMENT_MAX_COUNT=2
CONFIG_NET_IPV6_FRAGMENT_TIMEOUT=23
CONFIG_NET_IPV6_MLD=y
CONFIG_NET_IPV6_NBR_CACHE=y
CONFIG_NET_IPV6_ND=y
CONFIG_NET_IPV6_DAD=y
CONFIG_NET_IPV6_RA_RDNSS=y
CONFIG_NET_IPV6_LOG_LEVEL_DBG=y
CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_DBG=y
CONFIG_NET_ICMPV6_LOG_LEVEL_DBG=y

# 6lo
CONFIG_NET_6LO=y
CONFIG_NET_6LO_CONTEXT=y
CONFIG_NET_MAX_6LO_CONTEXTS=2
CONFIG_NET_6LO_LOG_LEVEL_DBG=y

# Sample application generic options
CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_NET_CONFIG_MY_IPV6_ADDR="2001:db8::1"
CONFIG_NET_CONFIG_PEER_IPV6_ADDR="2001:db8::2"
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.0.2.2"
CONFIG_NET_CONFIG_IEEE802154_DEV_NAME="FOO-BAR"
CONFIG_NET_CONFIG_IEEE802154_PAN_ID=0x1234
CONFIG_NET_CONFIG_IEEE802154_CHANNEL=15
CONFIG_NET_CONFIG_IEEE802154_SECURITY_KEY="key"
CONFIG_NET_CONFIG_IEEE802154_SECURITY_KEY_MODE=0
CONFIG_NET_CONFIG_IEEE802154_SECURITY_LEVEL=0
CONFIG_NET_CONFIG_BT_NODE=y

# Network management
CONFIG_NET_MGMT=y
CONFIG_NET_MGMT_EVENT=y
CONFIG_NET_MGMT_EVENT_STACK_SIZE=800
CONFIG_NET_MGMT_EVENT_THREAD_PRIO=66
CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=2
CONFIG_NET_MGMT_EVENT_LOG_LEVEL_DBG=y
CONFIG_NET_DEBUG_MGMT_EVENT_STACK=y

# IPv4
CONFIG_NET_IPV4=y
CONFIG_NET_INITIAL_TTL=42
CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=2
CONFIG_NET_IF_MCAST_IPV4_ADDR_COUNT=2
CONFIG_NET_DHCPV4=y
CONFIG_NET_IPV4_AUTO=y
CONFIG_NET_IPV4_LOG_LEVEL_DBG=y
CONFIG_NET_IPV4_AUTO_LOG_LEVEL_DBG=y
CONFIG_NET_ICMPV4_LOG_LEVEL_DBG=y
CONFIG_NET_DHCPV4_LOG_LEVEL_DBG=y

# ARP
CONFIG_NET_ARP=y
CONFIG_NET_ARP_TABLE_SIZE=3
CONFIG_NET_ARP_LOG_LEVEL_DBG=y

# Logging
CONFIG_NET_LOG=y
CONFIG_NET_CORE_LOG_LEVEL_DBG=y
CONFIG_NET_IF_LOG_LEVEL_DBG=y
CONFIG_NET_UTILS_LOG_LEVEL_DBG=y
CONFIG_NET_CONTEXT_LOG_LEVEL_DBG=y
CONFIG_NET_PKT_LOG_LEVEL_DBG=y
CONFIG_NET_DEBUG_NET_PKT_EXTERNALS=4
CONFIG_NET_CONN_LOG_LEVEL_DBG=y
CONFIG_NET_ROUTE_LOG_LEVEL_DBG=y

# IP threads stack size
CONFIG_NET_TX_STACK_SIZE=1024
CONFIG_NET_RX_STACK_SIZE=1024

# DNS
CONFIG_DNS_RESOLVER=y
CONFIG_DNS_RESOLVER_ADDITIONAL_BUF_CTR=1
CONFIG_DNS_RESOLVER_ADDITIONAL_QUERIES=2
CONFIG_DNS_RESOLVER_MAX_SERVERS=5
CONFIG_DNS_SERVER_IP_ADDRESSES=y
CONFIG_DNS_SERVER1="2001:db8::33:fe:2c:53"
CONFIG_DNS_SERVER2="[2001:db8::42]:5353"
CONFIG_DNS_SERVER3="192.0.2.42"
CONFIG_DNS_SERVER4="2001:db8::2"
CONFIG_DNS_SERVER5="192.0.2.11:1000"
CONFIG_DNS_NUM_CONCUR_QUERIES=2
CONFIG_DNS_RESOLVER_LOG_LEVEL_DBG=y
CONFIG_MDNS_RESPONDER=y
CONFIG_MDNS_RESPONDER_LOG_LEVEL_DBG=y
CONFIG_LLMNR_RESPONDER=y
CONFIG_LLMNR_RESPONDER_LOG_LEVEL_DBG=y

# CoAP
CONFIG_COAP=y
CONFIG_COAP_LOG_LEVEL_DBG=y

# MQTT
CONFIG_MQTT_LIB=y
CONFIG_MQTT_KEEPALIVE=60
CONFIG_MQTT_LIB_TLS=y

# VLAN
CONFIG_NET_VLAN=y

# gPTP
CONFIG_NET_GPTP=y
CONFIG_NET_GPTP_STATISTICS=y
CONFIG_NET_GPTP_LOG_LEVEL_DBG=y
