Zephyr API 3.6.99
Loading...
Searching...
No Matches
socket_ncs.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Nordic Semiconductor
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_NET_SOCKET_NCS_H_
8#define ZEPHYR_INCLUDE_NET_SOCKET_NCS_H_
9
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include <stddef.h>
20#include <stdbool.h>
21
22/* When CONFIG_NET_SOCKETS_OFFLOAD is enabled, offloaded sockets take precedence
23 * when creating a new socket. Combine this flag with a socket type when
24 * creating a socket, to enforce native socket creation (e. g. SOCK_STREAM | SOCK_NATIVE).
25 * If it's desired to create a native TLS socket, but still offload the
26 * underlying TCP/UDP socket, use e. g. SOCK_STREAM | SOCK_NATIVE_TLS.
27 */
28#define SOCK_NATIVE 0x80000000
29#define SOCK_NATIVE_TLS 0x40000000
30
33#define NET_SOCKET_NCS_BASE 1000
34
35/* NCS specific TLS level socket options */
36
42#define TLS_DTLS_HANDSHAKE_TIMEO (NET_SOCKET_NCS_BASE + 18)
43
46#define TLS_DTLS_CONN_SAVE (NET_SOCKET_NCS_BASE + 19)
47
50#define TLS_DTLS_CONN_LOAD (NET_SOCKET_NCS_BASE + 20)
51
57#define TLS_DTLS_HANDSHAKE_STATUS (NET_SOCKET_NCS_BASE + 21)
58
59/* Valid values for TLS_DTLS_HANDSHAKE_TIMEO option */
60#define TLS_DTLS_HANDSHAKE_TIMEO_NONE 0
61#define TLS_DTLS_HANDSHAKE_TIMEO_1S 1
62#define TLS_DTLS_HANDSHAKE_TIMEO_3S 3
63#define TLS_DTLS_HANDSHAKE_TIMEO_7S 7
64#define TLS_DTLS_HANDSHAKE_TIMEO_15S 15
65#define TLS_DTLS_HANDSHAKE_TIMEO_31S 31
66#define TLS_DTLS_HANDSHAKE_TIMEO_63S 63
67#define TLS_DTLS_HANDSHAKE_TIMEO_123S 123
69/* Valid values for TLS_DTLS_HANDSHAKE_STATUS option */
70#define TLS_DTLS_HANDSHAKE_STATUS_FULL 0
71#define TLS_DTLS_HANDSHAKE_STATUS_CACHED 1
72
77#define TLS_DTLS_FRAG_EXT (NET_SOCKET_NCS_BASE + 22)
78
80#define DTLS_FRAG_EXT_DISABLED 0
86#define DTLS_FRAG_EXT_512_ENABLED 1
92#define DTLS_FRAG_EXT_1024_ENABLED 2
93
94/* NCS specific socket options */
95
97#define SO_EXCEPTIONAL_DATA (NET_SOCKET_NCS_BASE + 33)
101#define SO_KEEPOPEN (NET_SOCKET_NCS_BASE + 34)
103#define SO_BINDTOPDN (NET_SOCKET_NCS_BASE + 40)
104
110#define SO_RAI (NET_SOCKET_NCS_BASE + 61)
111
119#define RAI_NO_DATA 1
125#define RAI_LAST 2
131#define RAI_ONE_RESP 3
136#define RAI_ONGOING 4
141#define RAI_WAIT_MORE 5
142
157#define SO_SENDCB (NET_SOCKET_NCS_BASE + 63)
158
168
170typedef void (*socket_ncs_sendcb_t)(const struct socket_ncs_sendcb_params *params);
171
177
184#define SO_POLLCB (NET_SOCKET_NCS_BASE + 64)
185
189 int fd;
191 short events;
193 short revents;
194};
195
197typedef void (*socket_ncs_pollcb_t)(const struct socket_ncs_pollcb_params *params);
198
208
209/* NCS specific IPPROTO_ALL level socket options */
210
212#define IPPROTO_ALL 512
214#define SO_SILENCE_ALL (NET_SOCKET_NCS_BASE + 30)
215
216/* NCS specific IPPROTO_IP level socket options */
217
219#define SO_IP_ECHO_REPLY (NET_SOCKET_NCS_BASE + 31)
220
221/* NCS specific IPPROTO_IPV6 level socket options */
222
224#define SO_IPV6_ECHO_REPLY (NET_SOCKET_NCS_BASE + 32)
225
227#define SO_IPV6_DELAYED_ADDR_REFRESH (NET_SOCKET_NCS_BASE + 62)
228
229/* NCS specific TCP level socket options */
230
234#define SO_TCP_SRV_SESSTIMEO (NET_SOCKET_NCS_BASE + 55)
235
236/* NCS specific gettaddrinfo() flags */
237
245#define AI_PDNSERV 0x1000
246
247/* NCS specific send() and sendto() flags */
248
254#define MSG_WAITACK 0x200
255
256#ifdef __cplusplus
257}
258#endif
259
260#endif /* ZEPHYR_INCLUDE_NET_SOCKET_NCS_H_ */
void(* socket_ncs_sendcb_t)(const struct socket_ncs_sendcb_params *params)
Callback type in the socket_ncs_sendcb structure.
Definition socket_ncs.h:170
void(* socket_ncs_pollcb_t)(const struct socket_ncs_pollcb_params *params)
Callback type in the socket_ncs_pollcb structure.
Definition socket_ncs.h:197
Parameters returned in the socket_ncs_pollcb_t callback.
Definition socket_ncs.h:187
short revents
Returned events bitmask.
Definition socket_ncs.h:193
short events
Requested events bitmask.
Definition socket_ncs.h:191
int fd
Socket handle.
Definition socket_ncs.h:189
Option value for the SO_POLLCB socket option.
Definition socket_ncs.h:200
bool oneshot
If set, the callback is automatically unset after first invocation.
Definition socket_ncs.h:206
short events
Event mask to subscribe to (for example, ZSOCK_POLLIN | ZSOCK_POLLOUT).
Definition socket_ncs.h:204
socket_ncs_pollcb_t callback
Callback function.
Definition socket_ncs.h:202
Parameters returned in the socket_ncs_sendcb_t callback.
Definition socket_ncs.h:160
size_t bytes_sent
Number of bytes that was sent.
Definition socket_ncs.h:166
int fd
Socket handle.
Definition socket_ncs.h:162
int status
Status.
Definition socket_ncs.h:164
Option value for the SO_SENDCB socket option.
Definition socket_ncs.h:173
socket_ncs_sendcb_t callback
Callback function.
Definition socket_ncs.h:175