Ping#

The Ping component implements a ping service based on the ICMPv6 protocol. The component sends ICMPv6 packets, receives the associated responses, and computes the round-trip latency. Using the sl_wisun_ping_request() API, an application emits a single ping packet. To receive the pong response, the application can then call the sl_wisun_ping_response() API.

The sl_wisun_ping() function provides a simple solution to periodically send and receive ping packets. To stop the process, call the sl_wisun_ping_stop() function. A ping test is configurable in size, number of pings sent, and timeout if a response is not received. Ping service supports multicast group addresses, where multiple response can be received from different addresses.

To initialize the component, call sl_wisun_ping_init() function.

Modules#

Ping API type definitions

Functions#

void

Initialize the ping service module.

void
sl_wisun_ping_request(const sl_wisun_ping_info_t *const ping_request)

Send a ping request.

void
sl_wisun_ping_response(sl_wisun_ping_info_t *const ping_response)

Retrieve a ping response.

sl_status_t
sl_wisun_ping(const sockaddr_in6_t *const remote_addr, const uint16_t packet_count, const uint16_t packet_length, sl_wisun_ping_stat_hnd_t stat_hnd, sl_wisun_ping_req_resp_done_hnd_t req_resp_sent_hnd)

Provide a high level ping API.

void

Stop the current ping process.

Function Documentation#

sl_wisun_ping_init#

void sl_wisun_ping_init (void )

Initialize the ping service module.

Parameters
N/A

This function initializes the service thread, mutex, and message queues.


Definition at line 165 of file /mnt/raid/workspaces/ws.wqPNW6Hyt/overlay/gsdk/app/wisun/component/ping/sl_wisun_ping.h

sl_wisun_ping_request#

void sl_wisun_ping_request (const sl_wisun_ping_info_t *const ping_request)

Send a ping request.

Parameters
[in]ping_request

Ping Request Information

The function sends a single ICMPv6 request.


Definition at line 172 of file /mnt/raid/workspaces/ws.wqPNW6Hyt/overlay/gsdk/app/wisun/component/ping/sl_wisun_ping.h

sl_wisun_ping_response#

void sl_wisun_ping_response (sl_wisun_ping_info_t *const ping_response)

Retrieve a ping response.

Parameters
[out]ping_response

Ping Response Information

The function retrieves a ping response information.


Definition at line 179 of file /mnt/raid/workspaces/ws.wqPNW6Hyt/overlay/gsdk/app/wisun/component/ping/sl_wisun_ping.h

sl_wisun_ping#

sl_status_t sl_wisun_ping (const sockaddr_in6_t *const remote_addr, const uint16_t packet_count, const uint16_t packet_length, sl_wisun_ping_stat_hnd_t stat_hnd, sl_wisun_ping_req_resp_done_hnd_t req_resp_sent_hnd)

Provide a high level ping API.

Parameters
[in]remote_addr

Remote destination address

[in]packet_count

Count of packets

[in]packet_length

ICMPv6 packet length including header

[in]stat_hnd

Custom statistic handler function

[in]req_resp_sent_hnd

Request/Response sent handler function

The function provides an interface for periodically sending and receiving ping ICMPv6 packets, and collecting statistic data. Returns

  • sl_status_t SL_STATUS_OK on success, otherwise SL_STATUS_FAIL or SL_STATUS_ABORT


Definition at line 192 of file /mnt/raid/workspaces/ws.wqPNW6Hyt/overlay/gsdk/app/wisun/component/ping/sl_wisun_ping.h

sl_wisun_ping_stop#

void sl_wisun_ping_stop (void )

Stop the current ping process.

Parameters
N/A

Reset request and response queues and send a special ping request with interrupt ping status.


Definition at line 203 of file /mnt/raid/workspaces/ws.wqPNW6Hyt/overlay/gsdk/app/wisun/component/ping/sl_wisun_ping.h