How to use `nrf_socket` to implement PING function on nrf9160?

I tried to use NRF_SOCK_RAW and NRF_IPPROTO_RAW to create socket, but found `modem fault`!

//this is my wrapper

socket_create(true, AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, NULL, NULL)

{
    sockfd = socket(family, type, protocol);
    if (sockfd < 0) {    
         snprintf(buf, sizeof(buf), "Failed to create socket: %s\r\n", strerror(errno));
    }
}



[<---] [2026-03-04 17:39:29:874] [INF][Hub] <SOCKET> Ping src <192.168.153.6> -> dst <www.baidu.com> ...
[<---] [2026-03-04 17:39:29:880] [INF][Hub] <SOCKET> [DNS] Standard query 0x4c7f A www.baidu.com
[<---] [2026-03-04 17:39:29:945] [INF][Hub] <SOCKET> [DNS] Standard query response 0x4c7f A www.baidu.com A 183.2.172.177
[<---] [2026-03-04 17:39:29:985] [DBG][Hub] <SOCKET> Create RAW socket
[<---] [2026-03-04 17:39:29:991] [ERR][Hub] <SOCKET> Failed to create socket: Can't send after socket shutdown
[<---] [2026-03-04 17:39:29:998] [ERR][Hub] <SOCKET> Ping Failed to socket error!
[<---] [2026-03-04 17:39:29:998] ret: 0.
[<---] [2026-03-04 17:39:30:007] [ERR][Unknown] <NETINT> =======================================================
[<---] [2026-03-04 17:39:30:014] [ERR][Unknown] <NETINT> [MODEM FAULT] PC <0x000D3314> REASON <0x010>
[<---] [2026-03-04 17:39:30:020] [ERR][Unknown] <NETINT> =======================================================
[<---] [2026-03-04 17:39:30:027] [INF][Unknown] <NETSRV> [EXCE]: REBOOT

Related