• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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