| /* |
| * |
| * 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 |