Loading...
Searching...
No Matches
wifi.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Fabian Hüßler ML!PA Consulting GmbH
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
18
19#include "net/ethernet/hdr.h"
20#include "net/netopt.h"
21#include "net/wifi.h"
22#include "net/l2scan_list.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
35
43#define WIFI_SCAN_REQUEST_INITIALIZER(ch, cb, ms) \
44 (wifi_scan_request_t) { \
45 .base = NETOPT_SCAN_REQUEST_INITIALIZER(ch, cb), \
46 .timeout_ms_per_ch = ms, \
47 }
48
58
66#define WIFI_SCAN_RESULT_INITIALIZER(ch, str, sec) \
67 (wifi_scan_result_t) { \
68 .base = NETOPT_SCAN_RESULT_INITIALIZER(ch, str), \
69 .sec_mode = sec, \
70 .bssid = { 0 }, \
71 .ssid = { 0 }, \
72 }
73
78
84#define WIFI_SCAN_LIST_INITIALIZER(list) \
85 (wifi_scan_list_t) { \
86 .head = (list_node_t *)list, \
87 }
88
96
100typedef void (*wifi_on_scan_result_t) (void *netif, const wifi_scan_list_t *res);
101
110
119#define WIFI_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb, cr) \
120 (wifi_connect_request_t) { \
121 .base = NETOPT_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb), \
122 .cred = cr, \
123 .ssid = { 0 }, \
124 }
125
139
146#define WIFI_CONNECT_RESULT_INITIALIZER(ch, p_ssid) \
147 (wifi_connect_result_t) { \
148 .base = NETOPT_CONNECT_RESULT_INITIALIZER(ch), \
149 .ssid = p_ssid, \
150 .credentials = { .sec = WIFI_SECURITY_MODE_OPEN }, \
151 }
152
156typedef void (*wifi_on_connect_result_t) (void *netif, const wifi_connect_result_t *res);
157
164
170#define WIFI_DISCONNECT_REQUEST_INITIALIZER(dcb) \
171 (wifi_disconnect_request_t) { \
172 .base = NETOPT_DISCONNECT_REQUEST_INITIALIZER(dcb), \
173 }
174
182
189#define WIFI_DISCONNECT_RESULT_INITIALIZER(ch, p_ssid) \
190 (wifi_disconnect_result_t) { \
191 .base = NETOPT_DISCONNECT_RESULT_INITIALIZER(ch), \
192 .ssid = p_ssid, \
193 }
194
198typedef void (*wifi_on_disconnect_result_t) (void *netif, const wifi_disconnect_result_t *res);
199
200#ifdef __cplusplus
201}
202#endif
203
struct wifi_scan_list_node wifi_scan_list_node_t
Node type in a wifi scan list wifi_scan_list_t.
struct wifi_scan_result wifi_scan_result_t
A Wi-Fi scan result.
struct wifi_disconnect_result wifi_disconnect_result_t
A Wi-Fi disconnect result.
void(* wifi_on_scan_result_t)(void *netif, const wifi_scan_list_t *res)
Wi-Fi scan result callback prototype.
Definition wifi.h:100
void(* wifi_on_connect_result_t)(void *netif, const wifi_connect_result_t *res)
Wi-Fi connect result callback prototype.
Definition wifi.h:156
l2scan_list_t wifi_scan_list_t
A Wi-Fi scan list.
Definition wifi.h:77
void(* wifi_on_disconnect_result_t)(void *netif, const wifi_disconnect_result_t *res)
Wi-Fi disconnect result callback prototype.
Definition wifi.h:198
struct wifi_connect_request wifi_connect_request_t
A Wi-Fi connect request.
struct wifi_disconnect_request wifi_disconnect_request_t
A Wi-Fi disconnect request.
struct wifi_connect_result wifi_connect_result_t
A Wi-Fi connect result.
struct wifi_scan_request wifi_scan_request_t
A Wi-Fi scan request.
#define ETHERNET_ADDR_LEN
Length of an Ethernet address.
Definition hdr.h:31
struct l2scan_list l2scan_list_t
Type of a Link Layer scan list.
struct netopt_scan_request netopt_scan_request_t
Basic network scan request.
struct netopt_disconnect_result netopt_disconnect_result_t
Basic disconnect result.
struct netopt_connect_request netopt_connect_request_t
Basic network connect request.
struct netopt_connect_result netopt_connect_result_t
Basic network connect result.
struct netopt_disconnect_request netopt_disconnect_request_t
Basic network disconnect request.
struct netopt_scan_result netopt_scan_result_t
Basic network scan result.
struct wifi_security_wpa_psk wifi_security_wpa_psk_t
A WPA pre-shared-key.
wifi_security_mode_t
Type to express a Wi-Fi security mode.
Definition wifi.h:104
struct wifi_security_wpa_enterprise wifi_security_wpa_enterprise_t
WPA2 Enterprise credentials.
struct wifi_security_wep_psk wifi_security_wep_psk_t
A WEP pre-shared-key.
#define WIFI_SSID_LEN_MAX
Maximum length of an SSID.
Definition wifi.h:114
L2 Scan list API.
struct list_node list_node_t
List node structure.
Ethernet header definitions.
Definition of global configuration options.
A Wi-Fi connect request.
Definition wifi.h:105
char ssid[WIFI_SSID_LEN_MAX+1]
SSID of AP to connect to.
Definition wifi.h:108
netopt_connect_request_t base
Basic connect request.
Definition wifi.h:106
const wifi_security_mode_t * cred
Pointer to credentials.
Definition wifi.h:107
A Wi-Fi connect result.
Definition wifi.h:129
wifi_security_mode_t sec
WiFi security mode.
Definition wifi.h:133
wifi_security_wep_psk_t wep
WEP security mode.
Definition wifi.h:135
wifi_security_wpa_enterprise_t wpa_enterprise
WPA2 enterprise security mode.
Definition wifi.h:136
wifi_security_wpa_psk_t wpa_psk
WPA2 PSK security mode.
Definition wifi.h:134
const char * ssid
SSID of currently connected AP.
Definition wifi.h:131
union wifi_connect_result::@027174343274274043002331326103267274225261255300 credentials
Credentials.
netopt_connect_result_t base
Basic connect result.
Definition wifi.h:130
A Wi-Fi disconnect request.
Definition wifi.h:161
netopt_disconnect_request_t base
Basic disconnect request.
Definition wifi.h:162
A Wi-Fi disconnect result.
Definition wifi.h:178
const char * ssid
SSID of the AP no longer connected to.
Definition wifi.h:180
netopt_disconnect_result_t base
Basic disconnect result.
Definition wifi.h:179
Node type in a wifi scan list wifi_scan_list_t.
Definition wifi.h:92
wifi_scan_result_t result
Wi-Fi scan result.
Definition wifi.h:94
list_node_t node
Basic list node.
Definition wifi.h:93
A Wi-Fi scan request.
Definition wifi.h:31
uint16_t timeout_ms_per_ch
timeout for each channel to scan
Definition wifi.h:33
netopt_scan_request_t base
Basic scan request.
Definition wifi.h:32
A Wi-Fi scan result.
Definition wifi.h:52
wifi_security_mode_t sec_mode
Security mode of AP.
Definition wifi.h:54
uint8_t bssid[ETHERNET_ADDR_LEN]
BSSID of AP.
Definition wifi.h:55
netopt_scan_result_t base
Basic scan result.
Definition wifi.h:53
char ssid[WIFI_SSID_LEN_MAX+1]
SSID of AP.
Definition wifi.h:56
Definitions for Wi-Fi.