1 /***************************************************************************/ /**
2  * @file  sl_net_wifi_types.h
3  *******************************************************************************
4  * # License
5  * <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
6  *******************************************************************************
7  *
8  * SPDX-License-Identifier: Zlib
9  *
10  * The licensor of this software is Silicon Laboratories Inc.
11  *
12  * This software is provided 'as-is', without any express or implied
13  * warranty. In no event will the authors be held liable for any damages
14  * arising from the use of this software.
15  *
16  * Permission is granted to anyone to use this software for any purpose,
17  * including commercial applications, and to alter it and redistribute it
18  * freely, subject to the following restrictions:
19  *
20  * 1. The origin of this software must not be misrepresented; you must not
21  *    claim that you wrote the original software. If you use this software
22  *    in a product, an acknowledgment in the product documentation would be
23  *    appreciated but is not required.
24  * 2. Altered source versions must be plainly marked as such, and must not be
25  *    misrepresented as being the original software.
26  * 3. This notice may not be removed or altered from any source distribution.
27  *
28  ******************************************************************************/
29 
30 #pragma once
31 #include "sl_net_types.h"
32 #include "sl_net_ip_types.h"
33 #include "sl_wifi_device.h" // The device specific Wi-Fi structures and definitions
34 #include "sl_wifi_types.h"
35 
36 /** \addtogroup SL_NET_TYPES
37  * @{ */
38 /**
39  * @brief Network Wi-Fi client profile.
40  *
41  * @details
42  * This structure holds the configuration for a Wi-Fi client profile, including the Wi-Fi client settings and the network IP configuration.
43  */
44 typedef struct {
45   sl_wifi_client_configuration_t
46     config; ///< Wi-Fi client configuration of type [sl_wifi_client_configuration_t](../wiseconnect-api-reference-guide-wi-fi/sl-wifi-client-configuration-t)
47   sl_net_ip_configuration_t ip; ///< Network IP configuration of type @ref sl_net_ip_configuration_t
48 } sl_net_wifi_client_profile_t;
49 
50 /**
51  * @brief Network Wi-Fi AP profile.
52  *
53  * @details
54  * This structure holds the configuration for a Wi-Fi Access Point (AP) profile, including the Wi-Fi AP settings and the network IP configuration.
55  */
56 typedef struct {
57   sl_wifi_ap_configuration_t
58     config; ///< Wi-Fi AP configuration of type [sl_wifi_ap_configuration_t](../wiseconnect-api-reference-guide-wi-fi/sl-wifi-ap-configuration-t)
59   sl_net_ip_configuration_t ip; ///< Network IP configuration of type @ref sl_net_ip_configuration_t
60 } sl_net_wifi_ap_profile_t;
61 
62 /**
63  * @brief Network Wi-Fi PSK credential entry.
64  *
65  * @details
66  * This structure holds the Pre-Shared Key (PSK) credentials for a Wi-Fi network, including the credential type, data length, and the actual credential data.
67  */
68 typedef struct {
69   sl_net_credential_type_t type; ///< Network credential type of @ref sl_net_credential_type_t
70   uint16_t data_length;          ///< Data length
71   uint8_t data[196];             ///< Data
72 } sl_net_wifi_psk_credential_entry_t;
73 
74 /**
75  * @brief Network Wi-Fi EAP credential entry.
76  *
77  * @details
78  * This structure holds the Extensible Authentication Protocol (EAP) credentials for a Wi-Fi network, including the credential type, data length, and the actual EAP credential data.
79  */
80 typedef struct {
81   sl_net_credential_type_t type; ///< Network credential type of @ref sl_net_credential_type_t
82   uint16_t data_length;          ///< Data length
83   sl_wifi_eap_credential_t
84     data; ///< Data of type [sl_wifi_eap_credential_t](../wiseconnect-api-reference-guide-wi-fi/sl-wifi-eap-credential-t)
85 } sl_net_wifi_eap_credential_entry_t;
86 /** @} */
87