-
Notifications
You must be signed in to change notification settings - Fork 638
Expand file tree
/
Copy pathdemo_config.h
More file actions
228 lines (198 loc) · 7.12 KB
/
Copy pathdemo_config.h
File metadata and controls
228 lines (198 loc) · 7.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/*
* AWS IoT Device SDK for Embedded C 202412.00
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef DEMO_CONFIG_H_
#define DEMO_CONFIG_H_
/**************************************************/
/******* DO NOT CHANGE the following order ********/
/**************************************************/
/* Include logging header files and define logging macros in the following order:
* 1. Include the header file "logging_levels.h".
* 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL.
* 3. Include the header file "logging_stack.h".
*/
/* Include header that defines log levels. */
#include "logging_levels.h"
/* Logging configuration for the Demo. */
#ifndef LIBRARY_LOG_NAME
#define LIBRARY_LOG_NAME "DEFENDER_DEMO"
#endif
#ifndef LIBRARY_LOG_LEVEL
#define LIBRARY_LOG_LEVEL LOG_INFO
#endif
#include "logging_stack.h"
/************ End of logging configuration ****************/
/**
* @brief Details of the MQTT broker to connect to.
*
* This is the Thing's Rest API Endpoint for AWS IoT.
*
* @note Your AWS IoT Core endpoint can be found in the AWS IoT console under
* Settings/Custom Endpoint, or using the describe-endpoint API.
*
* #define AWS_IOT_ENDPOINT "...insert here..."
*/
/**
* @brief AWS IoT MQTT broker port number.
*
* In general, port 8883 is for secured MQTT connections.
*
* @note Port 443 requires use of the ALPN TLS extension with the ALPN protocol
* name. When using port 8883, ALPN is not required.
*/
#define AWS_MQTT_PORT ( 8883 )
/**
* @brief Path of the file containing the server's root CA certificate.
*
* This certificate is used to identify the AWS IoT server and is publicly
* available. Refer to the AWS documentation available in the link below
* https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs
*
* Amazon's root CA certificate is automatically downloaded to the certificates
* directory from @ref https://www.amazontrust.com/repository/AmazonRootCA1.pem
* using the CMake build system.
*
* @note This certificate should be PEM-encoded.
* @note This path is relative from the demo binary created. Update
* ROOT_CA_CERT_PATH to the absolute path if this demo is executed from elsewhere.
*/
#ifndef ROOT_CA_CERT_PATH
#define ROOT_CA_CERT_PATH "certificates/AmazonRootCA1.crt"
#endif
/**
* @brief Path of the file containing the client certificate.
*
* Refer to the AWS documentation below for details regarding client
* authentication.
* https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html
*
* @note This certificate should be PEM-encoded.
*m
* #define CLIENT_CERT_PATH "...insert here..."
*/
/**
* @brief Path of the file containing the client's private key.
*
* Refer to the AWS documentation below for details regarding client
* authentication.
* https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html
*
* @note This private key should be PEM-encoded.
*
* #define CLIENT_PRIVATE_KEY_PATH "...insert here..."
*/
/**
* @brief Predefined thing name.
*
* This is the example predefine thing name and could be compiled in ROM code.
*/
#ifndef THING_NAME
#define THING_NAME "testclient"
#endif
/**
* @brief MQTT client identifier.
*
* No two clients may use the same client identifier simultaneously.
*
* @note The client identifier should match the Thing name per
* AWS IoT Security best practices:
* https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html
* However, it is not required for the demo to run.
*/
#ifndef CLIENT_IDENTIFIER
#define CLIENT_IDENTIFIER THING_NAME
#endif
/**
* @brief Size of the network buffer for MQTT packets.
*/
#define NETWORK_BUFFER_SIZE ( 1024U )
/**
* @brief The name of the operating system that the application is running on.
* The current value is given as an example. Please update for your specific
* operating system.
*/
#define OS_NAME "Ubuntu"
/**
* @brief The version of the operating system that the application is running
* on. The current value is given as an example. Please update for your specific
* operating system version.
*/
#define OS_VERSION "18.04 LTS"
/**
* @brief The name of the hardware platform the application is running on. The
* current value is given as an example. Please update for your specific
* hardware platform.
*/
#define HARDWARE_PLATFORM_NAME "PC"
/**
* @brief The name of the MQTT library used and its version, following an "@"
* symbol.
*/
#include "core_mqtt.h"
#define MQTT_LIB "core-mqtt@" MQTT_LIBRARY_VERSION
/**
* @brief Size of the open TCP ports array.
*
* A maximum of these many open TCP ports will be sent in the device defender
* report.
*/
#define OPEN_TCP_PORTS_ARRAY_SIZE 10
/**
* @brief Size of the open UDP ports array.
*
* A maximum of these many open UDP ports will be sent in the device defender
* report.
*/
#define OPEN_UDP_PORTS_ARRAY_SIZE 10
/**
* @brief Size of the established connections array.
*
* A maximum of these many established connections will be sent in the device
* defender report.
*/
#define ESTABLISHED_CONNECTIONS_ARRAY_SIZE 10
/**
* @brief Size of the CPU userspace usage array.
*
* A maximum of these many CPUs will be counted for custom metrics in the
* device defender report.
*/
#define CPU_USER_USAGE_ARRAY_SIZE 10
/**
* @brief Size of the network interface names and addresses arrays.
*
* A maximum of these many network interfaces will be counted for custom
* metrics in the device defender report.
*/
#define NETWORK_INTERFACE_ARRAY_SIZE 10
/**
* @brief Size of the buffer which contains the generated device defender report.
*/
#define DEVICE_METRICS_REPORT_BUFFER_SIZE 2000
/**
* @brief Major version number of the device defender report.
*/
#define DEVICE_METRICS_REPORT_MAJOR_VERSION 1
/**
* @brief Minor version number of the device defender report.
*/
#define DEVICE_METRICS_REPORT_MINOR_VERSION 0
#endif /* ifndef DEMO_CONFIG_H_ */