1 /* 2 * Copyright (c) 2020, The OpenThread Authors. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 3. Neither the name of the copyright holder nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** 30 * @file 31 * This file includes compile-time configurations for the SRP (Service Registration Protocol) Server. 32 */ 33 34 #ifndef CONFIG_SRP_SERVER_H_ 35 #define CONFIG_SRP_SERVER_H_ 36 37 /** 38 * @addtogroup config-srp-server 39 * 40 * @brief 41 * This module includes configuration variables for the SRP Server. 42 * 43 * @{ 44 */ 45 46 /** 47 * @def OPENTHREAD_CONFIG_SRP_SERVER_ENABLE 48 * 49 * Define to 1 to enable SRP Server support. 50 */ 51 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_ENABLE 52 #define OPENTHREAD_CONFIG_SRP_SERVER_ENABLE 0 53 #endif 54 55 /** 56 * @def OPENTHREAD_CONFIG_SRP_SERVER_DEFAULT_ADDRESS_MODE 57 * 58 * Specifies the default address mode used by the SRP server. 59 * 60 * The address mode specifies how address and port number are determined by the SRP server and how this info is 61 * published in the Thread Network Data. 62 * 63 * The value of this configuration should be from `otSrpServerAddressMode` enumeration. 64 */ 65 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_DEFAULT_ADDRESS_MODE 66 #define OPENTHREAD_CONFIG_SRP_SERVER_DEFAULT_ADDRESS_MODE OT_SRP_SERVER_ADDRESS_MODE_UNICAST 67 #endif 68 69 /** 70 * @def OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MIN 71 * 72 * Specifies the min port number in the port range reserved for SRP server. 73 */ 74 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MIN 75 #define OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MIN 53535 76 #endif 77 78 /** 79 * @def OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MAX 80 * 81 * Specifies the max port number in the port range reserved for SRP server. 82 */ 83 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MAX 84 #define OPENTHREAD_CONFIG_SRP_SERVER_UDP_PORT_MAX 53554 85 #endif 86 87 /** 88 * @def OPENTHREAD_CONFIG_SRP_SERVER_PORT_SWITCH_ENABLE 89 * 90 * Define to 1 to enable SRP server feature to save its own port in non-volatile settings. 91 * 92 * When enabled, the SRP server will save its port in the non-volatile settings. On a server 93 * restart (e.g., due to a device reset) it will restore the port and change to a different one. The info is written to 94 * Settings after the first service has been registered due to receiving an SRP Update. 95 */ 96 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_PORT_SWITCH_ENABLE 97 #define OPENTHREAD_CONFIG_SRP_SERVER_PORT_SWITCH_ENABLE 1 98 #endif 99 100 /** 101 * @def OPENTHREAD_CONFIG_SRP_SERVER_SERVICE_UPDATE_TIMEOUT 102 * 103 * Specifies the timeout value (in milliseconds) for the service update handler. 104 * 105 * The default timeout value is the sum of the maximum total mDNS probing delays 106 * and a loose IPC timeout of 250ms. It is recommended that this configuration should 107 * not use a value smaller than the default value here, if an Advertising Proxy is used 108 * to handle the service update events. 109 */ 110 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_SERVICE_UPDATE_TIMEOUT 111 #define OPENTHREAD_CONFIG_SRP_SERVER_SERVICE_UPDATE_TIMEOUT ((4 * 250u) + 250u) 112 #endif 113 114 /** 115 * @def OPENTHREAD_CONFIG_SRP_SERVER_ADVERTISING_PROXY_ENABLE 116 * 117 * Define to 1 to enable Advertising Proxy for SRP Sever. 118 */ 119 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_ADVERTISING_PROXY_ENABLE 120 #define OPENTHREAD_CONFIG_SRP_SERVER_ADVERTISING_PROXY_ENABLE 0 121 #endif 122 123 /** 124 * @def OPENTHREAD_CONFIG_SRP_SERVER_FAST_START_MODE_ENABLE 125 * 126 * The Fast Start Mode is designed for scenarios where a device, often a mobile device, needs to act as a provisional 127 * SRP server (e.g., functioning as a temporary Border Router). The SRP server function is enabled only if no other 128 * Border Routers (BRs) are already providing the SRP service within the Thread network. A common use case is a mobile 129 * device joining a Thread network where it may be the first, or only, BR. Importantly, Fast Start Mode allows the 130 * device to quickly start its SRP server functionality upon joining the network, allowing other Thread devices to 131 * quickly connect and register their services without the typical delays associated with standard Border Router 132 * initialization (and SRP server startup). 133 * 134 * The Fast Start Mode can be enabled using `otSrpServerEnableFastStartMode()`. More details about behavior and 135 * restrictions are provided in the documentation of this API. 136 */ 137 #ifndef OPENTHREAD_CONFIG_SRP_SERVER_FAST_START_MODE_ENABLE 138 #define OPENTHREAD_CONFIG_SRP_SERVER_FAST_START_MODE_ENABLE 0 139 #endif 140 141 /** 142 * @} 143 */ 144 145 #endif // CONFIG_SRP_SERVER_H_ 146