# Generic IP stack options and features
CONFIG_NETWORKING=y
CONFIG_NET_TCP=y
CONFIG_NET_UDP=y
CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_INIT_STACKS=y
CONFIG_NET_SHELL=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_MAX_CONTEXTS=16
CONFIG_NET_IPV6=y
CONFIG_NET_IPV4=y
CONFIG_NET_DHCPV4=n

CONFIG_NET_RX_STACK_SIZE=2048

# Number of network buffers
CONFIG_NET_PKT_RX_COUNT=80
CONFIG_NET_PKT_TX_COUNT=80
CONFIG_NET_BUF_RX_COUNT=80
CONFIG_NET_BUF_TX_COUNT=80

# Number of IPv6 Network Interfaces
CONFIG_NET_IF_MAX_IPV6_COUNT=2

# IPv6 address counts
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=4
CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT=5

# IPv6 neighbors/routes count. This determines how many nodes
# our RPL network can have.
CONFIG_NET_IPV6_MAX_NEIGHBORS=25

# RPL and routing options
CONFIG_NET_RPL=y
CONFIG_NET_ROUTE=y
CONFIG_NET_ROUTING=y
CONFIG_NET_RPL_L2_IEEE802154=y
# This is used as a prefix when creating DAG. You can pick your own
# prefix here, better not to use this exact value.
CONFIG_NET_RPL_PREFIX="fde3:2cda:3eea:4d14::1/64"

# HTTP(S) admin and websocket interface support
CONFIG_HTTP=y
CONFIG_HTTP_SERVER=y
CONFIG_HTTP_SERVER_NUM_URLS=8
CONFIG_WEBSOCKET=y
CONFIG_WEBSOCKET_CONSOLE=n

# Allow two concurrent incoming connections
CONFIG_NET_TCP_BACKLOG_SIZE=1
CONFIG_NET_APP_SERVER_NUM_CONN=2

# Crypto support
CONFIG_MBEDTLS=y
CONFIG_MBEDTLS_BUILTIN=y
CONFIG_MBEDTLS_CFG_FILE="config-mini-tls1_2.h"
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=12000

# Logging
CONFIG_NET_LOG=y
CONFIG_INIT_STACKS=y
CONFIG_PRINTK=y
CONFIG_SYS_LOG_SHOW_COLOR=y
CONFIG_SYS_LOG_NET_LEVEL=4
#CONFIG_SYS_LOG_IEEE802154_DRIVER_LEVEL=2

# Debugging
CONFIG_NET_DEBUG_NET_PKT=n
CONFIG_NET_DEBUG_WEBSOCKET=n
CONFIG_NET_DEBUG_RPL=n
CONFIG_NET_DEBUG_ROUTE=n
CONFIG_NET_DEBUG_APP=n
CONFIG_NET_DEBUG_IPV6=n
CONFIG_NET_DEBUG_L2_ETHERNET=n
CONFIG_NET_DEBUG_IPV6_NBR_CACHE=n
CONFIG_NET_DEBUG_CONTEXT=n
CONFIG_NET_DEBUG_TCP=n
CONFIG_NET_DEBUG_CORE=n
CONFIG_NET_DEBUG_CONN=n
CONFIG_NET_DEBUG_IF=n
CONFIG_NET_DEBUG_HTTP=n
CONFIG_MBEDTLS_DEBUG=n

# Network application settings
CONFIG_NET_APP_SETTINGS=y
CONFIG_NET_APP_NEED_IPV6=y
CONFIG_NET_APP_NEED_IPV4=y
# This is the ethernet interface setting for admin purposes
CONFIG_NET_APP_MY_IPV6_ADDR="2001:db8::1"
CONFIG_NET_APP_MY_IPV4_ADDR="192.0.2.1"

# Set a proper hostname for the router
CONFIG_NET_HOSTNAME_ENABLE=y

# mDNS support is activated. After this one can connect to this device
# by zephyr.local name
CONFIG_MDNS_RESPONDER=y

# IPv6 compression is needed for IEEE 802.15.4
CONFIG_NET_6LO=y
CONFIG_NET_6LO_CONTEXT=n

#COAP
CONFIG_COAP=y

#MGMT
CONFIG_NET_MGMT=y
CONFIG_NET_MGMT_EVENT=y
CONFIG_NET_MGMT_EVENT_INFO=y
CONFIG_NET_MGMT_EVENT_STACK_SIZE=2048
CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=20

#JSON
CONFIG_JSON_LIBRARY=y

CONFIG_NET_DEFAULT_IF_ETHERNET=y

# IEEE 802.15.4 options
CONFIG_NET_L2_IEEE802154_SHELL=y
CONFIG_NET_L2_IEEE802154=y
CONFIG_NET_L2_IEEE802154_FRAGMENT=y
CONFIG_NET_APP_IEEE802154_CHANNEL=18

# IEEE MCR20A 802.15.4 options
CONFIG_NET_APP_IEEE802154_DEV_NAME="mcr20a"
CONFIG_IEEE802154_MCR20A=y
CONFIG_SPI=y

#For TLS support enable options below
# HTTP(S) admin and websocket interface support
#CONFIG_HTTPS=y
# Firefox sends lot of fields to this needs to be quite large
#CONFIG_HTTP_HEADERS=20
#CONFIG_MBEDTLS_HEAP_SIZE=28500
