Silicon Labs socket API (deprecated)#

Silicon Labs socket API is deprecated. This component is provided as a temporary solution to maintain a compatility with v1.7 and older.

Functions#

sl_status_t
sl_wisun_open_socket(sl_wisun_socket_protocol_t protocol, sl_wisun_socket_id_t *socket_id) SL_DEPRECATED_API_SDK_4_4

Open a socket.

sl_status_t
sl_wisun_close_socket(sl_wisun_socket_id_t socket_id) SL_DEPRECATED_API_SDK_4_4

Close a socket.

sl_status_t
sl_wisun_sendto_on_socket(sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t *remote_address, uint16_t remote_port, uint16_t data_length, const uint8_t *data) SL_DEPRECATED_API_SDK_4_4

Write data to an unconnected socket.

sl_status_t
sl_wisun_listen_on_socket(sl_wisun_socket_id_t socket_id) SL_DEPRECATED_API_SDK_4_4

Set a TCP socket to listening state.

sl_status_t
sl_wisun_accept_on_socket(sl_wisun_socket_id_t socket_id, sl_wisun_socket_id_t *remote_socket_id, sl_wisun_ip_address_t *remote_address, uint16_t *remote_port) SL_DEPRECATED_API_SDK_4_4

Accept a pending connection request on a TCP socket.

sl_status_t
sl_wisun_connect_socket(sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t *remote_address, uint16_t remote_port) SL_DEPRECATED_API_SDK_4_4

Initiate a connection from a socket to a remote peer socket.

sl_status_t
sl_wisun_bind_socket(sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t *local_address, uint16_t local_port) SL_DEPRECATED_API_SDK_4_4

Bind a socket to a specific local address and/or a port number.

sl_status_t
sl_wisun_send_on_socket(sl_wisun_socket_id_t socket_id, uint16_t data_length, const uint8_t *data) SL_DEPRECATED_API_SDK_4_4

Write data to a connected socket.

sl_status_t
sl_wisun_receive_on_socket(sl_wisun_socket_id_t socket_id, sl_wisun_ip_address_t *remote_address, uint16_t *remote_port, uint16_t *data_length, uint8_t *data) SL_DEPRECATED_API_SDK_4_4

Read data from a socket.

sl_status_t
sl_wisun_set_socket_option(sl_wisun_socket_id_t socket_id, sl_wisun_socket_option_t option, const sl_wisun_socket_option_data_t *option_data) SL_DEPRECATED_API_SDK_4_4

Set a socket option.

sl_status_t
sl_wisun_get_socket_option(sl_wisun_socket_id_t socket_id, sl_wisun_socket_option_t option, sl_wisun_socket_option_data_t *option_data) SL_DEPRECATED_API_SDK_4_4

Get a socket option.

Function Documentation#

sl_wisun_open_socket#

sl_status_t sl_wisun_open_socket (sl_wisun_socket_protocol_t protocol, sl_wisun_socket_id_t * socket_id)

Open a socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_protocol_t[in]protocol

Protocol type of the socket

sl_wisun_socket_id_t *[out]socket_id

ID of the opened socket

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function opens a socket. Up to 10 sockets may be open at any given time, including those opened implicitly via sl_wisun_accept_on_socket().

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See socket() for a replacement.


sl_wisun_close_socket#

sl_status_t sl_wisun_close_socket (sl_wisun_socket_id_t socket_id)

Close a socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

Returns

  • SL_STATUS_OK if successful, an error code otherwise

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See close() for a replacement.


sl_wisun_sendto_on_socket#

sl_status_t sl_wisun_sendto_on_socket (sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t * remote_address, uint16_t remote_port, uint16_t data_length, const uint8_t * data)

Write data to an unconnected socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

const sl_wisun_ip_address_t *[in]remote_address

IP address of the remote peer

uint16_t[in]remote_port

Port number of the remote peer

uint16_t[in]data_length

Amount of data to write

const uint8_t *[in]data

Pointer to the data

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function initiates a data transmission to a remote peer and can only be used on an unconnected UDP or ICMP socket. Completion of the transmission is indicated with a SL_WISUN_MSG_SOCKET_DATA_SENT_IND_ID event. The function takes a copy of the data, so the caller may free the resource when the function returns.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See sendto() for a replacement.


sl_wisun_listen_on_socket#

sl_status_t sl_wisun_listen_on_socket (sl_wisun_socket_id_t socket_id)

Set a TCP socket to listening state.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function sets a TCP socket to listening state, allowing it to act as a server socket, i.e., to receive connection requests from clients. Connection requests are indicated with SL_WISUN_MSG_SOCKET_CONNECTION_AVAILABLE_IND_ID events and accepted using sl_wisun_accept_on_socket(). This function can only be used on an unconnected TCP socket.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See listen() for a replacement.


sl_wisun_accept_on_socket#

sl_status_t sl_wisun_accept_on_socket (sl_wisun_socket_id_t socket_id, sl_wisun_socket_id_t * remote_socket_id, sl_wisun_ip_address_t * remote_address, uint16_t * remote_port)

Accept a pending connection request on a TCP socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket on listening state

sl_wisun_socket_id_t *[out]remote_socket_id

ID of the new connected socket

sl_wisun_ip_address_t *[out]remote_address

IP address of the remote peer

uint16_t *[out]remote_port

Port number of the remote peer

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function accepts a pending connection request from a remote peer and creates a new connected TCP socket for the connection. To decline a connection request, the request must be accepted and then closed using sl_wisun_close_socket(). The function can only be used on a TCP socket in listening state.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See accept() for a replacement.


sl_wisun_connect_socket#

sl_status_t sl_wisun_connect_socket (sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t * remote_address, uint16_t remote_port)

Initiate a connection from a socket to a remote peer socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

const sl_wisun_ip_address_t *[in]remote_address

IP address of the remote peer

uint16_t[in]remote_port

Port number of the remote peer

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function initiates a connection from a local socket to to a remote peer socket. The result of the connection is indicated with a SL_WISUN_MSG_SOCKET_CONNECTED_IND_ID event. Connecting a socket is mandatory for TCP client sockets but may be also used on other types of sockets. A connected socket can only receive and transmit data with the designated peer. This function can only be used on an unconnected TCP or UDP socket.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See connect() for a replacement.


sl_wisun_bind_socket#

sl_status_t sl_wisun_bind_socket (sl_wisun_socket_id_t socket_id, const sl_wisun_ip_address_t * local_address, uint16_t local_port)

Bind a socket to a specific local address and/or a port number.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

const sl_wisun_ip_address_t *[in]local_address

Local IP address to use on the socket. NULL if not bound.

uint16_t[in]local_port

Local port number to use on the socket. Zero if not bound.

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function binds the local address and/or the port of a socket. When the local address is bound, the socket will only accept traffic sent to the specified address and the transmitted packets will use the address as the source address. If not bound, the socket will accept data sent to any valid address of the device. The source address is selected by the stack. Binding the local port number sets the port number for received and transmitted packets. If not bound, the stack will select a port number automatically. This function can only be used on an unconnected TCP or UDP socket. Once bound to a specific address and/or port, the value cannot be changed.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See bind() for a replacement.


sl_wisun_send_on_socket#

sl_status_t sl_wisun_send_on_socket (sl_wisun_socket_id_t socket_id, uint16_t data_length, const uint8_t * data)

Write data to a connected socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

uint16_t[in]data_length

Amount of data to write

const uint8_t *[in]data

Pointer to the data

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function initiates transmission of data to a connected remote peer and can only be used on a connected socket. Completion of the transmission is indicated with a SL_WISUN_MSG_SOCKET_DATA_SENT_IND_ID event. The function takes a copy of the data, so the caller may free the resource when the function returns.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See send() for a replacement.


sl_wisun_receive_on_socket#

sl_status_t sl_wisun_receive_on_socket (sl_wisun_socket_id_t socket_id, sl_wisun_ip_address_t * remote_address, uint16_t * remote_port, uint16_t * data_length, uint8_t * data)

Read data from a socket.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

sl_wisun_ip_address_t *[out]remote_address

IP address of the remote peer

uint16_t *[out]remote_port

Port number of the remote peer

uint16_t *[inout]data_length

Amount of data to read on input, amount of data read on output

uint8_t *[in]data

Pointer to where the read data is stored

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function reads buffered data from a socket. When reading data from a UDP or ICMP socket, the entire packet must be read. Any data left unread is discarded after this call. TCP sockets allow reading only a part of the buffered data.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See recvfrom() for a replacement.


sl_wisun_set_socket_option#

sl_status_t sl_wisun_set_socket_option (sl_wisun_socket_id_t socket_id, sl_wisun_socket_option_t option, const sl_wisun_socket_option_data_t * option_data)

Set a socket option.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

sl_wisun_socket_option_t[in]option

Socket option to set

const sl_wisun_socket_option_data_t *[in]option_data

Socket option specific data

Returns

  • SL_STATUS_OK if successful, an error code otherwise

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See setsockopt() for a replacement.


sl_wisun_get_socket_option#

sl_status_t sl_wisun_get_socket_option (sl_wisun_socket_id_t socket_id, sl_wisun_socket_option_t option, sl_wisun_socket_option_data_t * option_data)

Get a socket option.

Parameters
TypeDirectionArgument NameDescription
sl_wisun_socket_id_t[in]socket_id

ID of the socket

sl_wisun_socket_option_t[in]option

Socket option to get

sl_wisun_socket_option_data_t *[out]option_data

Socket option specific data

Returns

  • SL_STATUS_OK if successful, an error code otherwise

This function retrieves the value of a socket option.

DeprecatedThis function will be removed in the future versions of the Wi-SUN stack. See getsockopt() for a replacement.