# 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.

# This test requires lot of memory so increase it here so that
# the compilation succeeds.
CONFIG_RAM_SIZE=350

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

# net_buf options
CONFIG_NET_BUF=y
CONFIG_NET_BUF_LOG=y
CONFIG_SYS_LOG_NET_BUF_LEVEL=4
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_INIT_PRIO=98
CONFIG_NET_SHELL=y
CONFIG_NET_IP_ADDR_CHECK=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_RPL=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_NET_L2_BLUETOOTH=y
CONFIG_NET_L2_BLUETOOTH_ZEP1656=y
CONFIG_NET_L2_BLUETOOTH_SEC_LEVEL=4
CONFIG_NET_L2_BLUETOOTH_MGMT=y
CONFIG_NET_L2_BLUETOOTH_SHELL=y
CONFIG_NET_L2_RAW_CHANNEL=y
CONFIG_NET_DEBUG_L2_IEEE802154=y
CONFIG_NET_DEBUG_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_DEBUG_L2_ETHERNET=y
CONFIG_NET_DEBUG_L2_BLUETOOTH=y

# IP offload support
CONFIG_NET_OFFLOAD=y
CONFIG_NET_DEBUG_NET_OFFLOAD=y

# RPL
CONFIG_NET_RPL=y
CONFIG_NET_RPL_MRHOF=y
CONFIG_NET_RPL_OF0=n
CONFIG_NET_RPL_MC_NONE=n
CONFIG_NET_RPL_MC_EXT=n
CONFIG_NET_RPL_MC_ENERGY=y
CONFIG_NET_RPL_MOP2=n
CONFIG_NET_RPL_MOP3=y
CONFIG_NET_RPL_DAO_MAX_RETRANSMISSIONS=2
CONFIG_NET_DEBUG_RPL=y

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

# TCP
CONFIG_NET_TCP=y
CONFIG_NET_DEBUG_TCP=y
CONFIG_NET_TCP_TIME_WAIT=y
CONFIG_NET_TCP_2MSL_TIME=20

# UDP
CONFIG_NET_UDP=y
CONFIG_NET_DEBUG_UDP=y

# Network context
CONFIG_NET_MAX_CONN=10
CONFIG_NET_CONN_CACHE=y
CONFIG_NET_MAX_CONTEXTS=4
CONFIG_NET_CONTEXT_NBUF_POOL=y
CONFIG_NET_CONTEXT_SYNC_RECV=y
CONFIG_NET_CONTEXT_CHECK=y

# SLIP
CONFIG_NET_SLIP_TUN=n
CONFIG_NET_SLIP_TAP=y

# Trickle algo
CONFIG_NET_TRICKLE=y
CONFIG_NET_DEBUG_TRICKLE=y

# Network buffer
CONFIG_NET_NBUF_RX_COUNT=10
CONFIG_NET_NBUF_TX_COUNT=10
CONFIG_NET_NBUF_RX_DATA_COUNT=15
CONFIG_NET_NBUF_TX_DATA_COUNT=15
CONFIG_NET_NBUF_DATA_SIZE=128
CONFIG_NET_NBUF_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_DEBUG_IPV6=y
CONFIG_NET_DEBUG_ICMPV6=y
CONFIG_NET_DEBUG_IPV6_NBR_CACHE=y

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

# Sample application generic options
CONFIG_NET_APP_SETTINGS=y
CONFIG_NET_APP_MY_IPV6_ADDR="2001:db8::1"
CONFIG_NET_APP_PEER_IPV6_ADDR="2001:db8::2"
CONFIG_NET_APP_MY_IPV4_ADDR="192.0.2.1"
CONFIG_NET_APP_PEER_IPV4_ADDR="192.0.2.2"
CONFIG_NET_APP_IEEE802154_DEV_NAME="FOO-BAR"
CONFIG_NET_APP_IEEE802154_PAN_ID=0x1234
CONFIG_NET_APP_IEEE802154_CHANNEL=15
CONFIG_NET_APP_IEEE802154_SECURITY_KEY="key"
CONFIG_NET_APP_IEEE802154_SECURITY_KEY_MODE=0
CONFIG_NET_APP_IEEE802154_SECURITY_LEVEL=0

# 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_DEBUG_MGMT_EVENT=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_DEBUG_IPV4=y
CONFIG_NET_DEBUG_ICMPV4=y
CONFIG_NET_DEBUG_DHCPV4=y

# ARP
CONFIG_NET_ARP=y
CONFIG_NET_ARP_TABLE_SIZE=3
CONFIG_NET_DEBUG_ARP=y

# Logging
CONFIG_NET_LOG=y
CONFIG_SYS_LOG_NET_LEVEL=4
CONFIG_NET_LOG_GLOBAL=y
CONFIG_NET_DEBUG_CORE=y
CONFIG_NET_DEBUG_IF=y
CONFIG_NET_DEBUG_UTILS=y
CONFIG_NET_DEBUG_CONTEXT=y
CONFIG_NET_DEBUG_NET_BUF=y
CONFIG_NET_DEBUG_NET_BUF_EXTERNALS=4
CONFIG_NET_DEBUG_CONN=y
CONFIG_NET_DEBUG_ROUTE=y

# IP threads stack size
CONFIG_NET_TX_STACK_SIZE=1024
CONFIG_NET_RX_STACK_SIZE=1024
CONFIG_NET_RX_STACK_RPL=300

# 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_NET_DEBUG_DNS_RESOLVE=y

# CoAP
CONFIG_ZOAP=y

# MQTT
CONFIG_MQTT_LIB=y
CONFIG_MQTT_MSG_MAX_SIZE=128
CONFIG_MQTT_ADDITIONAL_BUFFER_CTR=1
CONFIG_MQTT_SUBSCRIBE_MAX_TOPICS=2

# HTTP
CONFIG_HTTP=y
CONFIG_HTTP_SERVER=y
CONFIG_HTTP_HEADER_FIELD_ITEMS=2
CONFIG_HTTP_CLIENT=y
CONFIG_HTTP_PARSER=y
CONFIG_HTTP_PARSER_STRICT=y
