Network Interface#

Note

  • Stack overflows may occur if you invoke functions or use your own variables or data structures while handling callbacks. Please configure the stack size by modifying the pre-processor macro SL_SI91X_EVENT_HANDLER_STACK_SIZE as per your application's requirements. See here for the instructions for modifying a pre-processor macro.

  • Event/Callback handlers must not contain function calls or code which can block or delay the execution of the event/callback handler as it will cause all the other events to queue up and delay the execution of other events since all the events are invoked and handled from a single thread.

  • Do not call any synchronous SDK APIs from within the Event/Callback handlers.

Functions#

sl_status_t
sl_net_init(sl_net_interface_t interface, const void *configuration, void *network_context, sl_net_event_handler_t event_handler)

Initialize the specified network interface.

sl_status_t
sl_net_deinit(sl_net_interface_t interface)

De-initialize a network interface.

sl_status_t
sl_net_up(sl_net_interface_t interface, sl_net_profile_id_t profile_id)

Bring a network interface up.

sl_status_t
sl_net_down(sl_net_interface_t interface)

Bring a network interface down.

sl_status_t
sl_net_dns_resolve_hostname(const char *host_name, const uint32_t timeout, const sl_net_dns_resolution_ip_type_t dns_resolution_ip, sl_ip_address_t *ip_address)

Resolve the given host name to an IP address.

sl_status_t
sl_net_set_dns_server(sl_net_interface_t interface, const sl_net_dns_address_t *address)

Sets DNS server IP addresses.

Function Documentation#

sl_net_init#

sl_status_t sl_net_init (sl_net_interface_t interface, const void * configuration, void * network_context, sl_net_event_handler_t event_handler)

Initialize the specified network interface.

Parameters
[in]interface

The network interface to initialize. One of the values from sl_net_interface_t

[in]configuration

Pointer to the configuration structure for the specified interface of type sl_wifi_device_configuration_t. If NULL, then the following configuration is used internally by SDK:

sl_net_interface_t

Default configuration

SL_NET_WIFI_CLIENT_INTERFACE

sl_wifi_default_client_configuration

SL_NET_WIFI_AP_INTERFACE

sl_wifi_default_ap_configuration

[in]network_context

Runtime context specific to network interface.

[in]event_handler

Function pointer to the network event handler callback of sl_net_event_handler_t type

This function initializes the specified network interface with the provided configuration, network context, and event handler. It supports various network interfaces such as Wi-Fi client, Wi-Fi access point.

Once the user passes a function pointer to the event handler, the network context is passed in the callback, and various events can be received through this callback.

Returns

Note

  • For Wi-Fi events, sl_net uses the wifi callback framework. Register the corresponding Wi-Fi event handlers using sl_wifi_set_callback API.

  • The network_context parameter is used only when the module is acting as a station in external stack mode (lwIP). In this case, network_context should refer to a valid sl_net_wifi_lwip_context_t variable.


Definition at line 82 of file components/service/network_manager/inc/sl_net.h

sl_net_deinit#

sl_status_t sl_net_deinit (sl_net_interface_t interface)

De-initialize a network interface.

Parameters
[in]interface

Interface identified by sl_net_interface_t.

This function de-initializes the specified network interface, releasing any resources that were allocated during initialization.

After this, the user will not receive callbacks related to events.

For the SL_NET_WIFI_CLIENT_INTERFACE and SL_NET_WIFI_AP_INTERFACE interface, this function ensures proper shutdown of the Wi-Fi driver, soft resets the NWP, and releases resources.

  • Pre-conditions:

Returns


Definition at line 106 of file components/service/network_manager/inc/sl_net.h

sl_net_up#

sl_status_t sl_net_up (sl_net_interface_t interface, sl_net_profile_id_t profile_id)

Bring a network interface up.

Parameters
[in]interface

Interface identified by sl_net_interface_t.

[in]profile_id

Network profile identifier for the specific interface of type sl_net_profile_id_t

This function brings the specified network interface up, making it ready for network communication.

For SL_NET_WIFI_CLIENT_INTERFACE, the API fetches profile data from the profile ID, scans the network and connects to the network, configures the IP address, and updates the profile data.

For SL_NET_WIFI_AP_INTERFACE, the API fetches profile data from the profile ID, configures the IP address, updates the profile data, and starts the Access Point (AP).

  • Pre-conditions:

Returns

Note

  • By default, profile and credential configurations in sl_net_defaults.h are used by SDK.

  • To enable support for both IPv4 and IPv6, the ip.type in the profile should be set to (SL_IPV4|SL_IPV6).

  • The user can define their profile and credential configurations for an interface by calling sl_net_set_profile and sl_net_set_credential APIs before calling sl_net_up API.


Definition at line 139 of file components/service/network_manager/inc/sl_net.h

sl_net_down#

sl_status_t sl_net_down (sl_net_interface_t interface)

Bring a network interface down.

Parameters
[in]interface

Interface identified by sl_net_interface_t. This parameter specifies which network interface to bring down.

This function deactivates the specified network interface, effectively disconnecting it from the WLAN network. It should be called to properly shut down the interface and release any associated resources.

  • Pre-conditions:

    • sl_net_up should be called before this API to ensure the interface is active before attempting to bring it down.

Returns


Definition at line 162 of file components/service/network_manager/inc/sl_net.h

sl_net_dns_resolve_hostname#

sl_status_t sl_net_dns_resolve_hostname (const char * host_name, const uint32_t timeout, const sl_net_dns_resolution_ip_type_t dns_resolution_ip, sl_ip_address_t * ip_address)

Resolve the given host name to an IP address.

Parameters
[in]host_name


Host name that needs to be resolved.

[in]timeout


Timeout in milliseconds.

  • If the timeout value is greater than zero, the caller will be blocked until the timeout period to get the response.

  • If the value is zero, the response will be sent through sl_net_event_handler_t.

[in]dns_resolution_ip


DNS resolution by IP of type sl_net_dns_resolution_ip_type_t.

[out]ip_address


IP address object to store resolved IP address of type sl_ip_address_t.

This function resolves a host name to its corresponding IP address. It requires the DNS client feature to be enabled in the TCP/IP feature bitmap before calling.

Returns


Definition at line 86 of file components/service/network_manager/inc/sl_net_dns.h

sl_net_set_dns_server#

sl_status_t sl_net_set_dns_server (sl_net_interface_t interface, const sl_net_dns_address_t * address)

Sets DNS server IP addresses.

Parameters
[in]interface

The network interface of type sl_net_interface_t.

[in]address

The structure containing the primary and secondary server addresses of type sl_net_dns_address_t.

This function configures the DNS server IP addresses for the specified network interface.

If both primary and secondary server addresses are NULL, the DNS mode will be set to DHCP. Otherwise, the DNS mode will be set to static.

Returns


Definition at line 113 of file components/service/network_manager/inc/sl_net_dns.h