# Copyright (c) 2020 O.S.Systems
# SPDX -License-Identifier: Apache-2.0

# Disable default configs
CONFIG_BT=n

CONFIG_NET_L2_ETHERNET=n

CONFIG_NET_IPV4=n
CONFIG_NET_DHCPV4=n
CONFIG_NET_TCP=n

# Enable IEEE 802.15.4
CONFIG_NET_L2_IEEE802154=y
CONFIG_NET_L2_IEEE802154_SHELL=y

CONFIG_NET_CONFIG_IEEE802154_PAN_ID=0xcafe
CONFIG_NET_CONFIG_IEEE802154_CHANNEL=26

CONFIG_NET_IPV6=y
CONFIG_NET_IPV6_FRAGMENT=y
CONFIG_NET_6LO_CONTEXT=y
CONFIG_NET_MAX_6LO_CONTEXTS=10

CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=3
CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT=4
CONFIG_NET_MAX_CONTEXTS=10

CONFIG_NET_UDP=y

# Add DNS Server
CONFIG_DNS_SERVER_IP_ADDRESSES=y
CONFIG_DNS_SERVER1="2001:db8::1"

# UpdateHub
CONFIG_UPDATEHUB_SERVER="2001:db8::1"
CONFIG_UPDATEHUB_COAP_BLOCK_SIZE_EXP=2
