blob: d54a9466b4d294cc1a4359ecd036b9a66a831740 [file] [log] [blame]
/*
*
* Copyright (c) 2023 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* This file defines default compile-time configuration constants
* for CHIP.
*
* Package integrators that wish to override these values should
* either use preprocessor definitions or create a project-
* specific chipProjectConfig.h header and then assert
* HAVE_CHIPPROJECTCONFIG_H via the package configuration tool
* via --with-chip-project-includes=DIR where DIR is the
* directory that contains the header.
*
*
*/
#pragma once
#include <lib/core/CHIPConfig.h>
namespace chip {
/**
* @def CHIP_CONFIG_MAX_ACTIVE_TCP_CONNECTIONS
*
* @brief Maximum Number of TCP connections a device can simultaneously have
*/
#ifndef CHIP_CONFIG_MAX_ACTIVE_TCP_CONNECTIONS
#define CHIP_CONFIG_MAX_ACTIVE_TCP_CONNECTIONS 4
#endif
#if INET_CONFIG_ENABLE_TCP_ENDPOINT && CHIP_CONFIG_MAX_ACTIVE_TCP_CONNECTIONS < 1
#error "If TCP is enabled, the device needs to support at least 1 TCP connection"
#endif
#if INET_CONFIG_ENABLE_TCP_ENDPOINT && CHIP_CONFIG_MAX_ACTIVE_TCP_CONNECTIONS > INET_CONFIG_NUM_TCP_ENDPOINTS
#error "If TCP is enabled, the maximum number of connections cannot exceed the number of tcp endpoints"
#endif
/**
* @def CHIP_CONFIG_MAX_TCP_PENDING_PACKETS
*
* @brief Maximum Number of outstanding pending packets in the queue before a TCP connection
* needs to be established
*/
#ifndef CHIP_CONFIG_MAX_TCP_PENDING_PACKETS
#define CHIP_CONFIG_MAX_TCP_PENDING_PACKETS 4
#endif
/**
* @def CHIP_CONFIG_MAX_TCP_PAYLOAD_SIZE_BYTES
*
* @brief Maximum payload size of a message over a TCP connection
*/
#ifndef CHIP_CONFIG_MAX_TCP_PAYLOAD_SIZE_BYTES
#define CHIP_CONFIG_MAX_TCP_PAYLOAD_SIZE_BYTES 1000000
#endif
/**
* @def CHIP_CONFIG_TCP_CONNECT_TIMEOUT_MSECS
*
* @brief
* This defines the default timeout for the TCP connect
* attempt to either succeed or notify the caller of an
* error.
*
*/
#ifndef CHIP_CONFIG_TCP_CONNECT_TIMEOUT_MSECS
#define CHIP_CONFIG_TCP_CONNECT_TIMEOUT_MSECS (10000)
#endif // CHIP_CONFIG_TCP_CONNECT_TIMEOUT_MSECS
/**
* @def CHIP_CONFIG_KEEPALIVE_INTERVAL_SECS
*
* @brief
* This defines the default interval (in seconds) between
* keepalive probes for a TCP connection.
* This value also controls the time between last data
* packet sent and the transmission of the first keepalive
* probe.
*
*/
#ifndef CHIP_CONFIG_TCP_KEEPALIVE_INTERVAL_SECS
#define CHIP_CONFIG_TCP_KEEPALIVE_INTERVAL_SECS (25)
#endif // CHIP_CONFIG_TCP_KEEPALIVE_INTERVAL_SECS
/**
* @def CHIP_CONFIG_MAX_TCP_KEEPALIVE_PROBES
*
* @brief
* This defines the default value for the maximum number of
* keepalive probes for a TCP connection.
*
*/
#ifndef CHIP_CONFIG_MAX_TCP_KEEPALIVE_PROBES
#define CHIP_CONFIG_MAX_TCP_KEEPALIVE_PROBES (5)
#endif // CHIP_CONFIG_MAX_TCP_KEEPALIVE_PROBES
/**
* @def CHIP_CONFIG_MAX_UNACKED_DATA_TIMEOUT_SECS
*
* @brief
* This defines the default value for the maximum timeout
* of unacknowledged data for a TCP connection.
*
*/
#ifndef CHIP_CONFIG_MAX_UNACKED_DATA_TIMEOUT_SECS
#define CHIP_CONFIG_MAX_UNACKED_DATA_TIMEOUT_SECS (30)
#endif // CHIP_CONFIG_MAX_UNACKED_DATA_TIMEOUT_SECS
} // namespace chip