Mistake on this page?
Report an issue in GitHub or email us
nsapi_types.h
1 
2 /** \addtogroup netsocket */
3 /** @{*/
4 /* nsapi.h - The network socket API
5  * Copyright (c) 2015 ARM Limited
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef NSAPI_TYPES_H
21 #define NSAPI_TYPES_H
22 
23 #include <stdint.h>
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 
30 /** Enum of standardized error codes
31  *
32  * Valid error codes have negative values and may
33  * be returned by any network operation.
34  *
35  * @enum nsapi_error
36  */
38  NSAPI_ERROR_OK = 0, /*!< no error */
39  NSAPI_ERROR_WOULD_BLOCK = -3001, /*!< no data is not available but call is non-blocking */
40  NSAPI_ERROR_UNSUPPORTED = -3002, /*!< unsupported functionality */
41  NSAPI_ERROR_PARAMETER = -3003, /*!< invalid configuration */
42  NSAPI_ERROR_NO_CONNECTION = -3004, /*!< not connected to a network */
43  NSAPI_ERROR_NO_SOCKET = -3005, /*!< socket not available for use */
44  NSAPI_ERROR_NO_ADDRESS = -3006, /*!< IP address is not known */
45  NSAPI_ERROR_NO_MEMORY = -3007, /*!< memory resource not available */
46  NSAPI_ERROR_NO_SSID = -3008, /*!< ssid not found */
47  NSAPI_ERROR_DNS_FAILURE = -3009, /*!< DNS failed to complete successfully */
48  NSAPI_ERROR_DHCP_FAILURE = -3010, /*!< DHCP failed to complete successfully */
49  NSAPI_ERROR_AUTH_FAILURE = -3011, /*!< connection to access point failed */
50  NSAPI_ERROR_DEVICE_ERROR = -3012, /*!< failure interfacing with the network processor */
51  NSAPI_ERROR_IN_PROGRESS = -3013, /*!< operation (eg connect) in progress */
52  NSAPI_ERROR_ALREADY = -3014, /*!< operation (eg connect) already in progress */
53  NSAPI_ERROR_IS_CONNECTED = -3015, /*!< socket is already connected */
54  NSAPI_ERROR_CONNECTION_LOST = -3016, /*!< connection lost */
55  NSAPI_ERROR_CONNECTION_TIMEOUT = -3017, /*!< connection timed out */
56  NSAPI_ERROR_ADDRESS_IN_USE = -3018, /*!< Address already in use */
57  NSAPI_ERROR_TIMEOUT = -3019, /*!< operation timed out */
58  NSAPI_ERROR_BUSY = -3020, /*!< device is busy and cannot accept new operation */
59 };
60 
61 
62 /** Enum of connection status types
63  *
64  * Valid error codes have negative values.
65  *
66  * @enum nsapi_connection_status
67  */
69  NSAPI_STATUS_LOCAL_UP = 0, /*!< local IP address set */
70  NSAPI_STATUS_GLOBAL_UP = 1, /*!< global IP address set */
71  NSAPI_STATUS_DISCONNECTED = 2, /*!< no connection to network */
72  NSAPI_STATUS_CONNECTING = 3, /*!< connecting to network */
73  NSAPI_STATUS_ERROR_UNSUPPORTED = NSAPI_ERROR_UNSUPPORTED
74 } nsapi_connection_status_t;
75 
76 
77 /** Enum of event types
78  *
79  * Event callbacks are accompanied with an event-dependent parameter passed as an intptr_t.
80  *
81  * @enum nsapi_event
82  */
83 typedef enum nsapi_event {
84  NSAPI_EVENT_CONNECTION_STATUS_CHANGE = 0, /*!< network connection status has changed, the parameter = new status (nsapi_connection_status_t) */
85  NSAPI_EVENT_CELLULAR_STATUS_BASE = 0x1000, /*!< Cellular modem status has changed, See the enum values from enum cellular_connection_status_t in /features/cellular/framework/common/CellularCommon.h */
86  NSAPI_EVENT_CELLULAR_STATUS_END = 0x1FFF /*!< cellular modem status has changed, See the enum values from enum cellular_connection_status_t in /features/cellular/framework/common/CellularCommon.h */
87 } nsapi_event_t;
88 
89 
90 /** Type used to represent error codes
91  *
92  * This is a separate type from enum nsapi_error to avoid breaking
93  * compatibility in type-sensitive overloads
94  */
95 typedef signed int nsapi_error_t;
96 
97 /** Type used to represent the size of data passed through sockets
98  */
99 typedef unsigned int nsapi_size_t;
100 
101 /** Type used to represent either a size or error passed through sockets
102  *
103  * A valid nsapi_size_or_error_t is either a non-negative size or a
104  * negative error code from the nsapi_error_t
105  */
106 typedef signed int nsapi_size_or_error_t;
107 
108 /** Type used to represent either a value or error
109  *
110  * A valid nsapi_value_or_error_t is either a non-negative value or a
111  * negative error code from the nsapi_error_t
112  */
113 typedef signed int nsapi_value_or_error_t;
114 
115 /** Enum of encryption types
116  *
117  * The security type specifies a particular security to use when
118  * connected to a WiFi network
119  */
120 typedef enum nsapi_security {
121  NSAPI_SECURITY_NONE = 0x0, /*!< open access point */
122  NSAPI_SECURITY_WEP = 0x1, /*!< phrase conforms to WEP */
123  NSAPI_SECURITY_WPA = 0x2, /*!< phrase conforms to WPA */
124  NSAPI_SECURITY_WPA2 = 0x3, /*!< phrase conforms to WPA2 */
125  NSAPI_SECURITY_WPA_WPA2 = 0x4, /*!< phrase conforms to WPA/WPA2 */
126  NSAPI_SECURITY_PAP = 0x5, /*!< phrase conforms to PPP authentication context */
127  NSAPI_SECURITY_CHAP = 0x6, /*!< phrase conforms to PPP authentication context */
128  NSAPI_SECURITY_UNKNOWN = 0xFF, /*!< unknown/unsupported security in scan results */
130 
131 /** Size of 2 char network interface name from driver
132  */
133 #define NSAPI_INTERFACE_PREFIX_SIZE 2
134 
135 /** Maximum size of network interface name
136  */
137 #define NSAPI_INTERFACE_NAME_MAX_SIZE 6
138 
139 /** Maximum size of IP address representation
140  */
141 #define NSAPI_IP_SIZE NSAPI_IPv6_SIZE
142 
143 /** Maximum number of bytes for IP address
144  */
145 #define NSAPI_IP_BYTES NSAPI_IPv6_BYTES
146 
147 /** Maximum size of MAC address representation
148  */
149 #define NSAPI_MAC_SIZE 18
150 
151 /** Maximum number of bytes for MAC address
152  */
153 #define NSAPI_MAC_BYTES 6
154 
155 /** Size of IPv4 representation
156  */
157 #define NSAPI_IPv4_SIZE 16
158 
159 /** Number of bytes in IPv4 address
160  */
161 #define NSAPI_IPv4_BYTES 4
162 
163 /** Size of IPv6 representation
164  */
165 #define NSAPI_IPv6_SIZE 40
166 
167 /** Number of bytes in IPv6 address
168  */
169 #define NSAPI_IPv6_BYTES 16
170 
171 /** Enum of IP address versions
172  *
173  * The IP version specifies the type of an IP address.
174  *
175  * @enum nsapi_version
176  */
177 typedef enum nsapi_version {
178  NSAPI_UNSPEC, /*!< Address is unspecified */
179  NSAPI_IPv4, /*!< Address is IPv4 */
180  NSAPI_IPv6, /*!< Address is IPv6 */
181 } nsapi_version_t;
182 
183 /** IP address structure for passing IP addresses by value
184  */
185 typedef struct nsapi_addr {
186  /** IP version
187  * - NSAPI_IPv4
188  * - NSAPI_IPv6
189  * - NSAPI_UNSPEC
190  */
191  nsapi_version_t version;
192 
193  /** IP address
194  * The raw bytes of the IP address stored in big-endian format
195  */
197 } nsapi_addr_t;
198 
199 
200 /** Opaque handle for network sockets
201  */
202 typedef void *nsapi_socket_t;
203 
204 
205 /** Enum of socket protocols
206  *
207  * The socket protocol specifies a particular protocol to
208  * be used with a newly created socket.
209  *
210  * @enum nsapi_protocol
211  */
212 typedef enum nsapi_protocol {
213  NSAPI_TCP, /*!< Socket is of TCP type */
214  NSAPI_UDP, /*!< Socket is of UDP type */
215 } nsapi_protocol_t;
216 
217 /** Enum of standardized stack option levels
218  * for use with NetworkStack::setstackopt and getstackopt.
219  *
220  * @enum nsapi_stack_level
221  */
222 typedef enum nsapi_stack_level {
223  NSAPI_STACK = 5000, /*!< Stack option level - see nsapi_stack_option_t for options */
224 } nsapi_stack_level_t;
225 
226 /** Enum of standardized stack option names for level NSAPI_STACK
227  * of NetworkStack::setstackopt and getstackopt.
228  *
229  * These options may not be supported on all stacks, in which
230  * case NSAPI_ERROR_UNSUPPORTED may be returned.
231  *
232  * @enum nsapi_stack_option
233  */
234 typedef enum nsapi_stack_option {
235  NSAPI_IPV4_MRU, /*!< Sets/gets size of largest IPv4 fragmented datagram to reassemble */
236  NSAPI_IPV6_MRU, /*!< Sets/gets size of largest IPv6 fragmented datagram to reassemble */
237 } nsapi_stack_option_t;
238 
239 /** Enum of standardized socket option levels
240  * for use with Socket::setsockopt and getsockopt.
241  *
242  * @enum nsapi_socket_level
243  */
244 typedef enum nsapi_socket_level {
245  NSAPI_SOCKET = 7000, /*!< Socket option level - see nsapi_socket_option_t for options */
246 } nsapi_socket_level_t;
247 
248 /** Enum of standardized socket option names for level NSAPI_SOCKET
249  * of Socket::setsockopt and getsockopt.
250  *
251  * These options may not be supported on all stacks, in which
252  * case NSAPI_ERROR_UNSUPPORTED may be returned.
253  *
254  * @enum nsapi_socket_option
255  */
256 typedef enum nsapi_socket_option {
257  NSAPI_REUSEADDR, /*!< Allow bind to reuse local addresses */
258  NSAPI_KEEPALIVE, /*!< Enables sending of keepalive messages */
259  NSAPI_KEEPIDLE, /*!< Sets timeout value to initiate keepalive */
260  NSAPI_KEEPINTVL, /*!< Sets timeout value for keepalive */
261  NSAPI_LINGER, /*!< Keeps close from returning until queues empty */
262  NSAPI_SNDBUF, /*!< Sets send buffer size */
263  NSAPI_RCVBUF, /*!< Sets recv buffer size */
264  NSAPI_ADD_MEMBERSHIP, /*!< Add membership to multicast address */
265  NSAPI_DROP_MEMBERSHIP, /*!< Drop membership to multicast address */
266  NSAPI_BIND_TO_DEVICE, /*!< Bind socket network interface name*/
267 } nsapi_socket_option_t;
268 
269 /** Supported IP protocol versions of IP stack
270  *
271  * @enum nsapi_ip_stack
272  */
273 typedef enum nsapi_ip_stack {
274  DEFAULT_STACK = 0,
275  IPV4_STACK,
276  IPV6_STACK,
277  IPV4V6_STACK
278 } nsapi_ip_stack_t;
279 
280 /* Backwards compatibility - previously didn't distinguish stack and socket options */
281 typedef nsapi_socket_level_t nsapi_level_t;
282 typedef nsapi_socket_option_t nsapi_option_t;
283 
284 /** nsapi_wifi_ap structure
285  *
286  * Structure representing a WiFi Access Point
287  */
288 typedef struct nsapi_wifi_ap {
289  char ssid[33]; /* 32 is what 802.11 defines as longest possible name; +1 for the \0 */
290  uint8_t bssid[6];
291  nsapi_security_t security;
292  int8_t rssi;
293  uint8_t channel;
295 
296 
297 /** nsapi_stack structure
298  *
299  * Stack structure representing a specific instance of a stack.
300  */
301 typedef struct nsapi_stack {
302  /** Network stack operation table
303  *
304  * Provides access to the underlying api of the stack. This is not
305  * flattened into the nsapi_stack to allow allocation in read-only
306  * memory.
307  */
308  const struct nsapi_stack_api *stack_api;
309 
310  /** Opaque handle for network stacks
311  */
312  void *stack;
313 
314  // Internal nsapi buffer
315  unsigned _stack_buffer[16];
316 } nsapi_stack_t;
317 
318 /** nsapi_ip_mreq structure
319  */
320 typedef struct nsapi_ip_mreq {
321  nsapi_addr_t imr_multiaddr; /* IP multicast address of group */
322  nsapi_addr_t imr_interface; /* local IP address of interface */
324 
325 /** nsapi_stack_api structure
326  *
327  * Common api structure for network stack operations. A network stack
328  * can provide a nsapi_stack_api structure filled out with the
329  * appropriate implementation.
330  *
331  * Unsupported operations can be left as null pointers.
332  */
333 typedef struct nsapi_stack_api {
334  /** Get the local IP address
335  *
336  * @param stack Stack handle
337  * @return Local IP Address or null address if not connected
338  */
339  nsapi_addr_t (*get_ip_address)(nsapi_stack_t *stack);
340 
341  /** Translates a hostname to an IP address
342  *
343  * The hostname may be either a domain name or an IP address. If the
344  * hostname is an IP address, no network transactions will be performed.
345  *
346  * If no stack-specific DNS resolution is provided, the hostname
347  * will be resolve using a UDP socket on the stack.
348  *
349  * @param stack Stack handle
350  * @param addr Destination for the host IP address
351  * @param host Hostname to resolve
352  * @param version Address family
353  * @return 0 on success, negative error code on failure
354  */
355  nsapi_error_t (*gethostbyname)(nsapi_stack_t *stack, const char *host, nsapi_addr_t *addr, nsapi_version_t version);
356 
357  /** Add a domain name server to list of servers to query
358  *
359  * @param addr Destination for the host address
360  * @return 0 on success, negative error code on failure
361  */
362  nsapi_error_t (*add_dns_server)(nsapi_stack_t *stack, nsapi_addr_t addr);
363 
364  /** Set stack-specific stack options
365  *
366  * The setstackopt allow an application to pass stack-specific hints
367  * to the underlying stack. For unsupported options,
368  * NSAPI_ERROR_UNSUPPORTED is returned and the stack is unmodified.
369  *
370  * @param stack Stack handle
371  * @param level Stack-specific protocol level
372  * @param optname Stack-specific option identifier
373  * @param optval Option value
374  * @param optlen Length of the option value
375  * @return 0 on success, negative error code on failure
376  */
377  nsapi_error_t (*setstackopt)(nsapi_stack_t *stack, int level,
378  int optname, const void *optval, unsigned optlen);
379 
380  /** Get stack-specific stack options
381  *
382  * The getstackopt allow an application to retrieve stack-specific hints
383  * from the underlying stack. For unsupported options,
384  * NSAPI_ERROR_UNSUPPORTED is returned and optval is unmodified.
385  *
386  * @param stack Stack handle
387  * @param level Stack-specific protocol level
388  * @param optname Stack-specific option identifier
389  * @param optval Destination for option value
390  * @param optlen Length of the option value
391  * @return 0 on success, negative error code on failure
392  */
393  nsapi_error_t (*getstackopt)(nsapi_stack_t *stack, int level,
394  int optname, void *optval, unsigned *optlen);
395 
396  /** Opens a socket
397  *
398  * Creates a network socket and stores it in the specified handle.
399  * The handle must be passed to following calls on the socket.
400  *
401  * A stack may have a finite number of sockets, in this case
402  * NSAPI_ERROR_NO_SOCKET is returned if no socket is available.
403  *
404  * @param stack Stack context
405  * @param socket Destination for the handle to a newly created socket
406  * @param proto Protocol of socket to open, NSAPI_TCP or NSAPI_UDP
407  * @return 0 on success, negative error code on failure
408  */
409  nsapi_error_t (*socket_open)(nsapi_stack_t *stack, nsapi_socket_t *socket,
410  nsapi_protocol_t proto);
411 
412  /** Close the socket
413  *
414  * Closes any open connection and deallocates any memory associated
415  * with the socket.
416  *
417  * @param stack Stack handle
418  * @param socket Socket handle
419  * @return 0 on success, negative error code on failure
420  */
421  nsapi_error_t (*socket_close)(nsapi_stack_t *stack, nsapi_socket_t socket);
422 
423  /** Bind a specific address to a socket
424  *
425  * Binding a socket specifies the address and port on which to receive
426  * data. If the IP address is zeroed, only the port is bound.
427  *
428  * @param stack Stack handle
429  * @param socket Socket handle
430  * @param addr Local address to bind, may be null
431  * @param port Local port to bind
432  * @return 0 on success, negative error code on failure.
433  */
434  nsapi_error_t (*socket_bind)(nsapi_stack_t *stack, nsapi_socket_t socket,
435  nsapi_addr_t addr, uint16_t port);
436 
437  /** Listen for connections on a TCP socket
438  *
439  * Marks the socket as a passive socket that can be used to accept
440  * incoming connections.
441  *
442  * @param stack Stack handle
443  * @param socket Socket handle
444  * @param backlog Number of pending connections that can be queued
445  * simultaneously
446  * @return 0 on success, negative error code on failure
447  */
448  nsapi_error_t (*socket_listen)(nsapi_stack_t *stack, nsapi_socket_t socket, int backlog);
449 
450  /** Connects TCP socket to a remote host
451  *
452  * Initiates a connection to a remote server specified by the
453  * indicated address.
454  *
455  * @param stack Stack handle
456  * @param socket Socket handle
457  * @param addr The address of the remote host
458  * @param port The port of the remote host
459  * @return 0 on success, negative error code on failure
460  */
461  nsapi_error_t (*socket_connect)(nsapi_stack_t *stack, nsapi_socket_t socket,
462  nsapi_addr_t addr, uint16_t port);
463 
464  /** Accepts a connection on a TCP socket
465  *
466  * The server socket must be bound and set to listen for connections.
467  * On a new connection, creates a network socket and stores it in the
468  * specified handle. The handle must be passed to following calls on
469  * the socket.
470  *
471  * A stack may have a finite number of sockets, in this case
472  * NSAPI_ERROR_NO_SOCKET is returned if no socket is available.
473  *
474  * This call is non-blocking. If accept would block,
475  * NSAPI_ERROR_WOULD_BLOCK is returned immediately.
476  *
477  * @param stack Stack handle
478  * @param server Socket handle to server to accept from
479  * @param socket Destination for a handle to the newly created socket
480  * @param addr Destination for the address of the remote host
481  * @param port Destination for the port of the remote host
482  * @return 0 on success, negative error code on failure
483  */
484  nsapi_error_t (*socket_accept)(nsapi_stack_t *stack, nsapi_socket_t server,
485  nsapi_socket_t *socket, nsapi_addr_t *addr, uint16_t *port);
486 
487  /** Send data over a TCP socket
488  *
489  * The socket must be connected to a remote host. Returns the number of
490  * bytes sent from the buffer.
491  *
492  * This call is non-blocking. If send would block,
493  * NSAPI_ERROR_WOULD_BLOCK is returned immediately.
494  *
495  * @param stack Stack handle
496  * @param socket Socket handle
497  * @param data Buffer of data to send to the host
498  * @param size Size of the buffer in bytes
499  * @return Number of sent bytes on success, negative error
500  * code on failure
501  */
502  nsapi_size_or_error_t (*socket_send)(nsapi_stack_t *stack, nsapi_socket_t socket,
503  const void *data, nsapi_size_t size);
504 
505  /** Receive data over a TCP socket
506  *
507  * The socket must be connected to a remote host. Returns the number of
508  * bytes received into the buffer.
509  *
510  * This call is non-blocking. If recv would block,
511  * NSAPI_ERROR_WOULD_BLOCK is returned immediately.
512  *
513  * @param stack Stack handle
514  * @param socket Socket handle
515  * @param data Destination buffer for data received from the host
516  * @param size Size of the buffer in bytes
517  * @return Number of received bytes on success, negative error
518  * code on failure
519  */
520  nsapi_size_or_error_t (*socket_recv)(nsapi_stack_t *stack, nsapi_socket_t socket,
521  void *data, nsapi_size_t size);
522 
523  /** Send a packet over a UDP socket
524  *
525  * Sends data to the specified address. Returns the number of bytes
526  * sent from the buffer.
527  *
528  * This call is non-blocking. If sendto would block,
529  * NSAPI_ERROR_WOULD_BLOCK is returned immediately.
530  *
531  * @param stack Stack handle
532  * @param socket Socket handle
533  * @param addr The address of the remote host
534  * @param port The port of the remote host
535  * @param data Buffer of data to send to the host
536  * @param size Size of the buffer in bytes
537  * @return Number of sent bytes on success, negative error
538  * code on failure
539  */
540  nsapi_size_or_error_t (*socket_sendto)(nsapi_stack_t *stack, nsapi_socket_t socket,
541  nsapi_addr_t addr, uint16_t port, const void *data, nsapi_size_t size);
542 
543  /** Receive a packet over a UDP socket
544  *
545  * Receives data and stores the source address in address if address
546  * is not NULL. Returns the number of bytes received into the buffer.
547  *
548  * This call is non-blocking. If recvfrom would block,
549  * NSAPI_ERROR_WOULD_BLOCK is returned immediately.
550  *
551  * @param stack Stack handle
552  * @param socket Socket handle
553  * @param addr Destination for the address of the remote host
554  * @param port Destination for the port of the remote host
555  * @param data Destination buffer for data received from the host
556  * @param size Size of the buffer in bytes
557  * @return Number of received bytes on success, negative error
558  * code on failure
559  */
560  nsapi_size_or_error_t (*socket_recvfrom)(nsapi_stack_t *stack, nsapi_socket_t socket,
561  nsapi_addr_t *addr, uint16_t *port, void *buffer, nsapi_size_t size);
562 
563  /** Register a callback on state change of the socket
564  *
565  * The specified callback will be called on state changes such as when
566  * the socket can recv/send/accept successfully and on when an error
567  * occurs. The callback may also be called spuriously without reason.
568  *
569  * The callback may be called in an interrupt context and should not
570  * perform expensive operations such as recv/send calls.
571  *
572  * @param stack Stack handle
573  * @param socket Socket handle
574  * @param callback Function to call on state change
575  * @param data Argument to pass to callback
576  */
577  void (*socket_attach)(nsapi_stack_t *stack, nsapi_socket_t socket,
578  void (*callback)(void *), void *data);
579 
580  /** Set stack-specific socket options
581  *
582  * The setsockopt allow an application to pass stack-specific hints
583  * to the underlying stack. For unsupported options,
584  * NSAPI_ERROR_UNSUPPORTED is returned and the socket is unmodified.
585  *
586  * @param stack Stack handle
587  * @param socket Socket handle
588  * @param level Stack-specific protocol level
589  * @param optname Stack-specific option identifier
590  * @param optval Option value
591  * @param optlen Length of the option value
592  * @return 0 on success, negative error code on failure
593  */
594  nsapi_error_t (*setsockopt)(nsapi_stack_t *stack, nsapi_socket_t socket, int level,
595  int optname, const void *optval, unsigned optlen);
596 
597  /** Get stack-specific socket options
598  *
599  * The getstackopt allow an application to retrieve stack-specific hints
600  * from the underlying stack. For unsupported options,
601  * NSAPI_ERROR_UNSUPPORTED is returned and optval is unmodified.
602  *
603  * @param stack Stack handle
604  * @param socket Socket handle
605  * @param level Stack-specific protocol level
606  * @param optname Stack-specific option identifier
607  * @param optval Destination for option value
608  * @param optlen Length of the option value
609  * @return 0 on success, negative error code on failure
610  */
611  nsapi_error_t (*getsockopt)(nsapi_stack_t *stack, nsapi_socket_t socket, int level,
612  int optname, void *optval, unsigned *optlen);
614 
615 
616 #ifdef __cplusplus
617 }
618 #endif
619 
620 #endif
621 
622 /** @}*/
nsapi_stack structure
Definition: nsapi_types.h:301
nsapi_stack_option
Enum of standardized stack option names for level NSAPI_STACK of NetworkStack::setstackopt and getsta...
Definition: nsapi_types.h:234
const struct nsapi_stack_api * stack_api
Network stack operation table.
Definition: nsapi_types.h:308
void * nsapi_socket_t
Opaque handle for network sockets.
Definition: nsapi_types.h:202
void * stack
Opaque handle for network stacks.
Definition: nsapi_types.h:312
nsapi_security
Enum of encryption types.
Definition: nsapi_types.h:120
nsapi_stack_api structure
Definition: nsapi_types.h:333
signed int nsapi_error_t
Type used to represent error codes.
Definition: nsapi_types.h:95
struct nsapi_stack_api nsapi_stack_api_t
nsapi_stack_api structure
nsapi_stack_level
Enum of standardized stack option levels for use with NetworkStack::setstackopt and getstackopt...
Definition: nsapi_types.h:222
nsapi_ip_stack
Supported IP protocol versions of IP stack.
Definition: nsapi_types.h:273
signed int nsapi_size_or_error_t
Type used to represent either a size or error passed through sockets.
Definition: nsapi_types.h:106
Callback< R()> callback(R(*func)()=0)
Create a callback class with type inferred from the arguments.
Definition: Callback.h:3848
#define NSAPI_IP_BYTES
Maximum number of bytes for IP address.
Definition: nsapi_types.h:145
nsapi_socket_level
Enum of standardized socket option levels for use with Socket::setsockopt and getsockopt.
Definition: nsapi_types.h:244
signed int nsapi_value_or_error_t
Type used to represent either a value or error.
Definition: nsapi_types.h:113
struct nsapi_addr nsapi_addr_t
IP address structure for passing IP addresses by value.
nsapi_wifi_ap structure
Definition: nsapi_types.h:288
nsapi_event
Enum of event types.
Definition: nsapi_types.h:83
struct nsapi_wifi_ap nsapi_wifi_ap_t
nsapi_wifi_ap structure
uint8_t bytes[16]
IP address The raw bytes of the IP address stored in big-endian format.
Definition: nsapi_types.h:196
nsapi_version_t version
IP version.
Definition: nsapi_types.h:191
nsapi_connection_status
Enum of connection status types.
Definition: nsapi_types.h:68
unsigned int nsapi_size_t
Type used to represent the size of data passed through sockets.
Definition: nsapi_types.h:99
IP address structure for passing IP addresses by value.
Definition: nsapi_types.h:185
enum nsapi_security nsapi_security_t
Enum of encryption types.
struct nsapi_ip_mreq nsapi_ip_mreq_t
nsapi_ip_mreq structure
nsapi_error
Enum of standardized error codes.
Definition: nsapi_types.h:37
struct nsapi_stack nsapi_stack_t
nsapi_stack structure
nsapi_ip_mreq structure
Definition: nsapi_types.h:320
nsapi_protocol
Enum of socket protocols.
Definition: nsapi_types.h:212
nsapi_socket_option
Enum of standardized socket option names for level NSAPI_SOCKET of Socket::setsockopt and getsockopt...
Definition: nsapi_types.h:256
nsapi_version
Enum of IP address versions.
Definition: nsapi_types.h:177
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.