Skip to content
Merged
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
27 changes: 18 additions & 9 deletions src/platform/silabs/wifi/SiWx/SlNetConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,21 +56,30 @@ void SLApplyWiFiDeviceConfiguration(sl_wifi_device_configuration_t * configurati
configuration->boot_config.config_feature_bit_map |= SL_SI91X_FEAT_SLEEP_GPIO_SEL_BITMAP;
#endif // SLI_SI91X_MCU_INTERFACE

#ifdef ipv6_FEATURE_REQUIRED
configuration->boot_config.tcp_ip_feature_bit_map |= (SL_SI91X_TCP_IP_FEAT_DHCPV6_CLIENT | SL_SI91X_TCP_IP_FEAT_IPV6);
#endif // ipv6_FEATURE_REQUIRED

#ifdef RSI_PROCESS_MAX_RX_DATA
configuration->boot_config.ext_tcp_ip_feature_bit_map |= SL_SI91X_EXT_TCP_MAX_RECV_LENGTH;
#endif // RSI_PROCESS_MAX_RX_DATA

#if defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK
configuration->boot_config.ext_tcp_ip_feature_bit_map |= (SL_SI91X_EXT_TCP_IP_DUAL_MODE_ENABLE | SL_SI91X_EXT_TCP_IP_FEAT_SSL_MEMORY_CLOUD);
#endif // defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK

#if !(defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK)
// Disable TCP/IP bypass for single stack (LwIP)
configuration->boot_config.tcp_ip_feature_bit_map |= SL_SI91X_TCP_IP_FEAT_BYPASS;
#endif // !(defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK)
#endif // !(SL_MATTER_ENABLE_DUAL_STACK)

#if defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK
// Enable dual mode support for dual stack
configuration->boot_config.ext_tcp_ip_feature_bit_map |= SL_SI91X_EXT_TCP_IP_DUAL_MODE_ENABLE;

// Enable DHCPv4 client, DNS client, and ICMP support for dual stack (required for IPv4)
configuration->boot_config.tcp_ip_feature_bit_map |=
(SL_SI91X_TCP_IP_FEAT_DHCPV4_CLIENT | SL_SI91X_TCP_IP_FEAT_DNS_CLIENT | SL_SI91X_TCP_IP_FEAT_ICMP);

// Enable IPv6 and DHCPv6 client support for dual stack
configuration->boot_config.tcp_ip_feature_bit_map |= (SL_SI91X_TCP_IP_FEAT_IPV6 | SL_SI91X_TCP_IP_FEAT_DHCPV6_CLIENT);

// Enable basic SSL and SSL memory cloud support with more RAM for certificate storage
configuration->boot_config.tcp_ip_feature_bit_map |= SL_SI91X_TCP_IP_FEAT_SSL;
configuration->boot_config.ext_tcp_ip_feature_bit_map |= SL_SI91X_EXT_TCP_IP_FEAT_SSL_MEMORY_CLOUD;
#endif // SL_MATTER_ENABLE_DUAL_STACK

#if defined(SL_MATTER_NEUTRAL_LESS_SWITCH_WIFI) && SL_MATTER_NEUTRAL_LESS_SWITCH_WIFI
// Neutral Less Switch doesn't work with 11ax, only 11n is supported
Expand Down
10 changes: 5 additions & 5 deletions src/platform/silabs/wifi/SiWx/WifiInterfaceImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -414,18 +414,18 @@ sl_status_t SetWifiConfigurations()
},
},
.ip = {
#if defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK
.mode = SL_IP_MANAGEMENT_DHCP_IPV4_LINK_LOCAL_IPV6,
.type = static_cast<sl_ip_address_type_t>(SL_IPV4 | SL_IPV6),
#else
.mode = SL_IP_MANAGEMENT_DHCP,
.type = SL_IPV6,
#endif // defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK
.host_name = NULL,
.ip = {{{0}}},
}
};

#if defined(SL_MATTER_ENABLE_DUAL_STACK) && SL_MATTER_ENABLE_DUAL_STACK
profile.ip.mode = SL_IP_MANAGEMENT_DHCP_IPV4_LINK_LOCAL_IPV6;
profile.ip.type = static_cast<sl_ip_address_type_t>(SL_IPV4 | SL_IPV6);
#endif // SL_MATTER_ENABLE_DUAL_STACK

chip::MutableByteSpan output(profile.config.ssid.value, kMaxWiFiSSIDLength);
chip::ByteSpan input(wfx_rsi.credentials.ssid, wfx_rsi.credentials.ssidLen);
TEMPORARY_RETURN_IGNORED chip::CopySpanToMutableSpan(input, output);
Expand Down
Loading