Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions ports/zephyr-cp/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ config UART_LINE_CTRL
config ENTROPY_GENERATOR
default y

# ===== CircuitPython feature defaults — enabled by default, boards can disable =====

config CIRCUITPY_WIFI_PING
bool "wifi.radio.ping() on Zephyr's ICMP API"
default y
help
Boards that are out of flash can set this to n. radio.ping() then
returns None, as it does for an unreachable host.

# ===== Bluetooth defaults =====

# Use a variable for the chosen name so the comma isn't parsed as an argument separator
Expand Down
3 changes: 3 additions & 0 deletions ports/zephyr-cp/boards/nrf7002dk_nrf5340_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ CONFIG_LOG=n
CONFIG_ASSERT=n
CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_BT=n

# Out of flash; radio.ping() alone overflows it.
CONFIG_CIRCUITPY_WIFI_PING=n
65 changes: 37 additions & 28 deletions ports/zephyr-cp/common-hal/wifi/Network.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,44 @@ mp_obj_t common_hal_wifi_network_get_country(wifi_network_obj_t *self) {
}

mp_obj_t common_hal_wifi_network_get_authmode(wifi_network_obj_t *self) {
// Translate Zephyr's wifi_security_type. An empty list would read as an
// open network to any caller checking for AUTHMODE_OPEN.
uint32_t authmode_mask = 0;
// switch (self->record.authmode) {
// case WIFI_AUTH_OPEN:
// authmode_mask = AUTHMODE_OPEN;
// break;
// case WIFI_AUTH_WEP:
// authmode_mask = AUTHMODE_WEP;
// break;
// case WIFI_AUTH_WPA_PSK:
// authmode_mask = AUTHMODE_WPA | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_PSK:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA_WPA2_PSK:
// authmode_mask = AUTHMODE_WPA | AUTHMODE_WPA2 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_ENTERPRISE:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_ENTERPRISE;
// break;
// case WIFI_AUTH_WPA3_PSK:
// authmode_mask = AUTHMODE_WPA3 | AUTHMODE_PSK;
// break;
// case WIFI_AUTH_WPA2_WPA3_PSK:
// authmode_mask = AUTHMODE_WPA2 | AUTHMODE_WPA3 | AUTHMODE_PSK;
// break;
// default:
// break;
// }
switch (self->scan_result.security) {
case WIFI_SECURITY_TYPE_NONE:
authmode_mask = AUTHMODE_OPEN;
break;
case WIFI_SECURITY_TYPE_WEP:
authmode_mask = AUTHMODE_WEP;
break;
case WIFI_SECURITY_TYPE_WPA_PSK:
authmode_mask = AUTHMODE_WPA | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_PSK:
case WIFI_SECURITY_TYPE_PSK_SHA256:
authmode_mask = AUTHMODE_WPA2 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_SAE: // == WIFI_SECURITY_TYPE_SAE_HNP (alias)
case WIFI_SECURITY_TYPE_SAE_H2E:
case WIFI_SECURITY_TYPE_SAE_AUTO:
case WIFI_SECURITY_TYPE_SAE_EXT_KEY:
case WIFI_SECURITY_TYPE_FT_SAE:
authmode_mask = AUTHMODE_WPA3 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_WPA_AUTO_PERSONAL:
authmode_mask = AUTHMODE_WPA | AUTHMODE_WPA2 | AUTHMODE_WPA3 | AUTHMODE_PSK;
break;
case WIFI_SECURITY_TYPE_EAP: // == WIFI_SECURITY_TYPE_EAP_TLS (alias)
case WIFI_SECURITY_TYPE_EAP_PEAP_MSCHAPV2:
case WIFI_SECURITY_TYPE_EAP_PEAP_GTC:
case WIFI_SECURITY_TYPE_EAP_TTLS_MSCHAPV2:
case WIFI_SECURITY_TYPE_EAP_PEAP_TLS:
case WIFI_SECURITY_TYPE_FT_EAP:
authmode_mask = AUTHMODE_WPA2 | AUTHMODE_ENTERPRISE;
break;
default:
break;
}
mp_obj_t authmode_list = mp_obj_new_list(0, NULL);
if (authmode_mask != 0) {
for (uint8_t i = 0; i < 32; i++) {
Expand Down
Loading
Loading