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

# Disable default configs
CONFIG_NET_L2_IEEE802154=n

CONFIG_NET_IPV4=n
CONFIG_NET_DHCPV4=n
CONFIG_NET_TCP=n

# Enable Bluetooth LE IPSP
CONFIG_BT=y
CONFIG_BT_SMP=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
CONFIG_BT_DEVICE_NAME="UpdateHub - IPSP"

CONFIG_NET_CONFIG_BT_NODE=y
CONFIG_NET_CONFIG_AUTO_INIT=y

CONFIG_NET_L2_BT=y
CONFIG_NET_L2_BT_SHELL=y

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=2
CONFIG_NET_MAX_CONTEXTS=10

CONFIG_NET_UDP=y

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

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