Network Services API  2.80.00.17
slnetsock.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2020, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
193 /*****************************************************************************/
194 /* Include files */
195 /*****************************************************************************/
196 
197 #ifndef __SL_NET_SOCK_H__
198 #define __SL_NET_SOCK_H__
199 
200 #include <stdint.h>
201 #include <sys/time.h>
202 
203 #ifdef __cplusplus
204 extern "C" {
205 #endif
206 
207 
221 /*****************************************************************************/
222 /* Macro declarations */
223 /*****************************************************************************/
224 
225 #define SLNETSOCK_MAX_CONCURRENT_SOCKETS (32)
227 /* Address families. */
228 #define SLNETSOCK_AF_UNSPEC (0)
229 #define SLNETSOCK_AF_INET (2)
230 #define SLNETSOCK_AF_INET6 (3)
231 #define SLNETSOCK_AF_RF (6)
232 #define SLNETSOCK_AF_PACKET (17)
234 /* Protocol families, same as address families. */
235 #define SLNETSOCK_PF_UNSPEC SLNETSOCK_AF_UNSPEC
236 #define SLNETSOCK_PF_INET SLNETSOCK_AF_INET
237 #define SLNETSOCK_PF_INET6 SLNETSOCK_AF_INET6
238 
239 /* Define argument types specifies the socket type. */
240 #define SLNETSOCK_SOCK_STREAM (1)
241 #define SLNETSOCK_SOCK_DGRAM (2)
242 #define SLNETSOCK_SOCK_RAW (3)
243 #define SLNETSOCK_SOCK_RX_MTR (4)
244 #define SLNETSOCK_SOCK_MAC_WITH_CCA (5)
245 #define SLNETSOCK_SOCK_MAC_WITH_NO_CCA (6)
246 #define SLNETSOCK_SOCK_BRIDGE (7)
247 #define SLNETSOCK_SOCK_ROUTER (8)
248 
249 /*
250  * Define some BSD protocol constants. Note, these values should match the BSD
251  * defined values, e.g. IPPROTO_ICMP
252  */
253 #define SLNETSOCK_PROTO_ICMP (1)
254 #define SLNETSOCK_PROTO_TCP (6)
255 #define SLNETSOCK_PROTO_UDP (17)
256 #define SLNETSOCK_PROTO_ICMPV6 (58)
257 #define SLNETSOCK_PROTO_RAW (255)
258 #define SLNETSOCK_PROTO_SECURE (100)
260 /* bind any addresses */
261 #define SLNETSOCK_INADDR_ANY (0)
262 #define SLNETSOCK_IN6ADDR_ANY (0)
263 
264 
265 /* socket options */
266 
267 /* possible values for the level parameter in slNetSock_setOpt / slNetSock_getOpt */
268 #define SLNETSOCK_LVL_SOCKET (1)
269 #define SLNETSOCK_LVL_IP (2)
270 #define SLNETSOCK_LVL_PHY (3)
272 /* possible values for the option parameter in slNetSock_setOpt / slNetSock_getOpt */
273 
274 /* socket level options (SLNETSOCK_LVL_SOCKET) */
275 #define SLNETSOCK_OPSOCK_RCV_BUF (8)
276 #define SLNETSOCK_OPSOCK_SND_BUF (202)
277 #define SLNETSOCK_OPSOCK_RCV_TIMEO (20)
278 #define SLNETSOCK_OPSOCK_SND_TIMEO (21)
279 #define SLNETSOCK_OPSOCK_KEEPALIVE (9)
280 #define SLNETSOCK_OPSOCK_KEEPALIVE_TIME (37)
281 #define SLNETSOCK_OPSOCK_LINGER (13)
282 #define SLNETSOCK_OPSOCK_NON_BLOCKING (24)
283 #define SLNETSOCK_OPSOCK_NON_IP_BOUNDARY (39)
284 #define SLNETSOCK_OPSOCK_ERROR (58)
285 #define SLNETSOCK_OPSOCK_SLNETSOCKSD (59)
286 #define SLNETSOCK_OPSOCK_BROADCAST (200)
287 #define SLNETSOCK_OPSOCK_REUSEADDR (201)
288 #define SLNETSOCK_OPSOCK_REUSEPORT (203)
290 /* IP level options (SLNETSOCK_LVL_IP) */
291 #define SLNETSOCK_OPIP_MULTICAST_TTL (61)
292 #define SLNETSOCK_OPIP_ADD_MEMBERSHIP (65)
293 #define SLNETSOCK_OPIP_DROP_MEMBERSHIP (66)
294 #define SLNETSOCK_OPIP_HDRINCL (67)
295 #define SLNETSOCK_OPIP_RAW_RX_NO_HEADER (68)
296 #define SLNETSOCK_OPIP_RAW_IPV6_HDRINCL (69)
297 #define SLNETSOCK_OPIPV6_ADD_MEMBERSHIP (70)
298 #define SLNETSOCK_OPIPV6_DROP_MEMBERSHIP (71)
299 #define SLNETSOCK_OPIPV6_MULTICAST_HOPS (72)
301 /* PHY level options (SLNETSOCK_LVL_PHY) */
302 #define SLNETSOCK_OPPHY_CHANNEL (28)
303 #define SLNETSOCK_OPPHY_RATE (100)
304 #define SLNETSOCK_OPPHY_TX_POWER (101)
305 #define SLNETSOCK_OPPHY_NUM_FRAMES_TO_TX (102)
306 #define SLNETSOCK_OPPHY_PREAMBLE (103)
307 #define SLNETSOCK_OPPHY_TX_INHIBIT_THRESHOLD (104)
308 #define SLNETSOCK_OPPHY_TX_TIMEOUT (105)
309 #define SLNETSOCK_OPPHY_ALLOW_ACKS (106)
311 /* TCP level options (SLNETSOCK_PROTO_TCP) */
312 #define SLNETSOCK_TCP_NODELAY (203)
313 #define SLNETSOCK_TCP_MAXSEG (204)
314 #define SLNETSOCK_TCP_NOPUSH (205)
315 #define SLNETSOCK_TCP_NOOPT (206)
316 #define SLNETSOCK_TCP_SACKPERMITTED (207)
317 #define SLNETSOCK_TCP_MAXRTT (208)
322 typedef enum
323 {
331 
338 typedef enum
339 {
349 
368 
369 /* available values for SLNETSOCK_SEC_ATTRIB_METHOD */
370 #define SLNETSOCK_SEC_METHOD_SSLV3 (0)
371 #define SLNETSOCK_SEC_METHOD_TLSV1 (1)
372 #define SLNETSOCK_SEC_METHOD_TLSV1_1 (2)
373 #define SLNETSOCK_SEC_METHOD_TLSV1_2 (3)
374 #define SLNETSOCK_SEC_METHOD_SSLv3_TLSV1_2 (4)
375 #define SLNETSOCK_SEC_METHOD_DLSV1 (5)
377 /* available values for SLNETSOCK_SEC_ATTRIB_CIPHERS. The value is bitmap! */
378 #define SLNETSOCK_SEC_CIPHER_SSL_RSA_WITH_RC4_128_SHA (1 << 0)
379 #define SLNETSOCK_SEC_CIPHER_SSL_RSA_WITH_RC4_128_MD5 (1 << 1)
380 #define SLNETSOCK_SEC_CIPHER_TLS_RSA_WITH_AES_256_CBC_SHA (1 << 2)
381 #define SLNETSOCK_SEC_CIPHER_TLS_DHE_RSA_WITH_AES_256_CBC_SHA (1 << 3)
382 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (1 << 4)
383 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_RC4_128_SHA (1 << 5)
384 #define SLNETSOCK_SEC_CIPHER_TLS_RSA_WITH_AES_128_CBC_SHA256 (1 << 6)
385 #define SLNETSOCK_SEC_CIPHER_TLS_RSA_WITH_AES_256_CBC_SHA256 (1 << 7)
386 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (1 << 8)
387 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (1 << 9)
388 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (1 << 10)
389 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (1 << 11)
390 #define SLNETSOCK_SEC_CIPHER_TLS_RSA_WITH_AES_128_GCM_SHA256 (1 << 12)
391 #define SLNETSOCK_SEC_CIPHER_TLS_RSA_WITH_AES_256_GCM_SHA384 (1 << 13)
392 #define SLNETSOCK_SEC_CIPHER_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (1 << 14)
393 #define SLNETSOCK_SEC_CIPHER_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (1 << 15)
394 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (1 << 16)
395 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (1 << 17)
396 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (1 << 18)
397 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (1 << 19)
398 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 20)
399 #define SLNETSOCK_SEC_CIPHER_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 21)
400 #define SLNETSOCK_SEC_CIPHER_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 22)
401 #define SLNETSOCK_SEC_CIPHER_FULL_LIST (0xFFFFFFFF)
402 
403 /* available values for SLNETSOCK_SEC_ATTRIB_ALPN */
404 #define SLNETSOCK_SEC_ALPN_H1 (1 << 0)
405 #define SLNETSOCK_SEC_ALPN_H2 (1 << 1)
406 #define SLNETSOCK_SEC_ALPN_H2C (1 << 2)
407 #define SLNETSOCK_SEC_ALPN_H2_14 (1 << 3)
408 #define SLNETSOCK_SEC_ALPN_H2_16 (1 << 4)
409 #define SLNETSOCK_SEC_ALPN_FULL_LIST ((SLNETSOCK_SEC_ALPN_H2_16 << 1 ) - 1)
410 
411 /* available values for the flags of the SlNetSock_startSec function */
412 #define SLNETSOCK_SEC_START_SECURITY_SESSION_ONLY (1 << 0)
413 #define SLNETSOCK_SEC_BIND_CONTEXT_ONLY (1 << 1)
414 #define SLNETSOCK_SEC_IS_SERVER (1 << 2)
416 /* available values for the flags of the SlNetSock_create function */
417 
418 #define SLNETSOCK_CREATE_IF_STATE_ENABLE (1 << 0)
419 #define SLNETSOCK_CREATE_IF_STATUS_CONNECTED (1 << 1)
420 #define SLNETSOCK_CREATE_ALLOW_PARTIAL_MATCH (1 << 2)
423 /* Definitions for shutting down some or all parts of a full duplex connection */
424 #define SLNETSOCK_SHUT_RD (0)
425 #define SLNETSOCK_SHUT_WR (1)
426 #define SLNETSOCK_SHUT_RDWR (2)
428 /* Length of address string representation */
429 #define SLNETSOCK_INET6_ADDRSTRLEN (46)
430 #define SLNETSOCK_INET_ADDRSTRLEN (16)
432 /* flags used in send/recv and friends.
433  *
434  * Note these flags must not exceed 24-bits. The implementation will
435  * OR the 8-bits of security flags into the remaining high 8 bits of
436  * 32-bit flag variables.
437  */
438 #define SLNETSOCK_MSG_OOB (0x0001)
439 #define SLNETSOCK_MSG_PEEK (0x0002)
440 #define SLNETSOCK_MSG_WAITALL (0x0004)
441 #define SLNETSOCK_MSG_DONTWAIT (0x0008)
442 #define SLNETSOCK_MSG_DONTROUTE (0x0010)
443 #define SLNETSOCK_MSG_NOSIGNAL (0x0020)
445 
446 /*****************************************************************************/
447 /* Structure/Enum declarations */
448 /*****************************************************************************/
449 
455 typedef struct SlNetSock_InAddr_t
456 {
457 #ifndef s_addr
458  uint32_t s_addr; /* Internet address 32 bits */
459 #else
460 
463  union S_un
464  {
465  uint32_t S_addr;
466  struct
467  {
468  uint8_t s_b1,s_b2,s_b3,s_b4;
469  } S_un_b;
470  struct
471  {
472  uint16_t s_w1,s_w2;
473  } S_un_w;
474  } S_un;
475 #endif
477 
483 typedef struct SlNetSock_In6Addr_t
484 {
485  union
486  {
487  uint8_t _S6_u8[16];
488  uint16_t _S6_u16[8];
489  uint32_t _S6_u32[4];
490  } _S6_un;
492 
496 typedef struct SlNetSock_NoDelay_t
497 {
498  uint32_t noDelayEnabled;
500 
504 typedef struct SlNetSock_MaxSeg_t
505 {
506  uint32_t maxSeg;
508 
512 typedef struct SlNetSock_NoPush_t
513 {
514  uint32_t noPushEnabled;
516 
520 typedef struct SlNetSock_NoOpt_t
521 {
522  uint32_t noOptEnabled;
524 
528 typedef struct SlNetSock_SackPermitted_t
529 {
530  uint32_t sackPermittedEnabled;
532 
536 typedef struct SlNetSock_MaxRtt_t
537 {
538  uint32_t maxRtt;
540 
544 typedef struct SlNetSock_Keepalive_t
545 {
546  uint32_t keepaliveEnabled;
548 
552 typedef struct SlNetSock_NonIpBoundary_t
553 {
554  int32_t nonIpBoundaryEnabled;
556 
560 typedef struct SlNetSock_Winsize_t
561 {
562  uint32_t winSize;
564 
568 typedef struct SlNetSock_Nonblocking_t
569 {
570  uint32_t nonBlockingEnabled;
572 
576 typedef struct SlNetSock_Broadcast_t
577 {
578  uint32_t broadcastEnabled;
580 
584 typedef struct SlNetSock_SecAttribNode_t
585 {
586  SlNetSockSecAttrib_e attribName;
587  uint8_t *attribBuff;
588  uint16_t attribBuffLen;
591 
600 typedef struct SlNetSock_SecureALPN_t
601 {
602  uint32_t secureALPN;
604 
608 typedef struct SlNetSock_SecureMask_t
609 {
610  uint32_t secureMask;
612 
616 typedef struct SlNetSock_SecureMethod_t
617 {
618  uint8_t secureMethod;
620 
624 typedef struct SlNetSock_IpMreq_t
625 {
626  SlNetSock_InAddr_t imr_multiaddr;
627  uint32_t imr_interface;
629 
633 typedef struct SlNetSock_IpV6Mreq_t
634 {
635  SlNetSock_In6Addr_t ipv6mr_multiaddr;
636  uint32_t ipv6mr_interface;
638 
642 typedef struct SlNetSock_linger_t
643 {
644  uint32_t l_onoff;
645  uint32_t l_linger;
647 
657 typedef struct timeval SlNetSock_Timeval_t;
662 typedef uint16_t SlNetSocklen_t;
667 typedef struct SlNetSock_Addr_t
668 {
669  uint16_t sa_family;
670  uint8_t sa_data[14];
672 
676 typedef struct SlNetSock_AddrIn6_t
677 {
678  uint16_t sin6_family;
679  uint16_t sin6_port;
680  uint32_t sin6_flowinfo;
682  uint32_t sin6_scope_id;
684 
688 typedef struct SlNetSock_AddrIn_t
689 {
690  uint16_t sin_family;
691  uint16_t sin_port;
693  int8_t sin_zero[8];
695 
696 /* ss_family + pad must be large enough to hold max of
697  * _SlNetSock_AddrIn6_t or _SlNetSock_AddrIn_t
698  */
702 typedef struct SlNetSock_SockAddrStorage_t
703 {
704  uint16_t ss_family;
705  uint8_t pad[26];
707 
711 typedef struct SlNetSock_SdSet_t
712 {
713  uint32_t sdSetBitmap[(SLNETSOCK_MAX_CONCURRENT_SOCKETS + (uint8_t)31)/(uint8_t)32]; /* Bitmap of SOCKET Descriptors */
715 
716 
721 {
722  uint8_t rate;
723  uint8_t channel;
724  int8_t rssi;
725  uint8_t padding;
726  uint32_t timestamp;
728 
729 
730 /*****************************************************************************/
731 /* Function prototypes */
732 /*****************************************************************************/
733 
746 int32_t SlNetSock_init(int32_t flags);
747 
829 int16_t SlNetSock_create(int16_t domain, int16_t type, int16_t protocol, uint32_t ifBitmap, int16_t flags);
830 
831 
854 int32_t SlNetSock_close(int16_t sd);
855 
856 
877 int32_t SlNetSock_shutdown(int16_t sd, int16_t how);
878 
879 
938 int16_t SlNetSock_accept(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen);
939 
940 
978 int32_t SlNetSock_bind(int16_t sd, const SlNetSock_Addr_t *addr, int16_t addrlen);
979 
980 
1009 int32_t SlNetSock_listen(int16_t sd, int16_t backlog);
1010 
1011 
1058 int32_t SlNetSock_connect(int16_t sd, const SlNetSock_Addr_t *addr, SlNetSocklen_t addrlen);
1059 
1090 int32_t SlNetSock_getPeerName(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen);
1091 
1092 
1127 int32_t SlNetSock_getSockName(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen);
1128 
1129 
1170 int32_t SlNetSock_select(int16_t nsds, SlNetSock_SdSet_t *readsds, SlNetSock_SdSet_t *writesds, SlNetSock_SdSet_t *exceptsds, SlNetSock_Timeval_t *timeout);
1171 
1172 
1178 int32_t SlNetSock_sdsSet(int16_t sd, SlNetSock_SdSet_t *sdset);
1179 
1180 
1186 int32_t SlNetSock_sdsClr(int16_t sd, SlNetSock_SdSet_t *sdset);
1187 
1188 
1194 int32_t SlNetSock_sdsClrAll(SlNetSock_SdSet_t *sdset);
1195 
1196 
1205 int32_t SlNetSock_sdsIsSet(int16_t sd, SlNetSock_SdSet_t *sdset);
1206 
1207 
1515 int32_t SlNetSock_setOpt(int16_t sd, int16_t level, int16_t optname, void *optval, SlNetSocklen_t optlen);
1516 
1517 
1548 int32_t SlNetSock_getOpt(int16_t sd, int16_t level, int16_t optname, void *optval, SlNetSocklen_t *optlen);
1549 
1550 
1579 int32_t SlNetSock_recv(int16_t sd, void *buf, uint32_t len, uint32_t flags);
1580 
1581 
1626 int32_t SlNetSock_recvFrom(int16_t sd, void *buf, uint32_t len, uint32_t flags, SlNetSock_Addr_t *from, SlNetSocklen_t *fromlen);
1627 
1628 
1656 int32_t SlNetSock_send(int16_t sd, const void *buf, uint32_t len, uint32_t flags);
1657 
1658 
1700 int32_t SlNetSock_sendTo(int16_t sd, const void *buf, uint32_t len, uint32_t flags, const SlNetSock_Addr_t *to, SlNetSocklen_t tolen);
1701 
1702 
1724 int32_t SlNetSock_getIfID(uint16_t sd);
1725 
1726 
1743 SlNetSockSecAttrib_t *SlNetSock_secAttribCreate(void);
1744 
1745 
1762 int32_t SlNetSock_secAttribDelete(SlNetSockSecAttrib_t *secAttrib);
1763 
1764 
1879 int32_t SlNetSock_secAttribSet(SlNetSockSecAttrib_t *secAttrib, SlNetSockSecAttrib_e attribName, void *val, uint16_t len);
1880 
1881 
1909 int32_t SlNetSock_startSec(int16_t sd, SlNetSockSecAttrib_t *secAttrib, uint8_t flags);
1910 
1911 
1920 #ifdef __cplusplus
1921 }
1922 #endif /* __cplusplus */
1923 
1924 #endif /* __NET_SOCK_H__ */
The SlNetSock_IpMreq_t structure is used in SLNETSOCK_OPIP_ADD_MEMBERSHIP and SLNETSOCK_OPIP_DROP_MEM...
Definition: slnetsock.h:625
struct SlNetSock_Keepalive_t SlNetSock_Keepalive_t
The SlNetSock_Keepalive_t structure is used in SLNETSOCK_OPSOCK_KEEPALIVE socket level option...
int32_t SlNetSock_sdsSet(int16_t sd, SlNetSock_SdSet_t *sdset)
SlNetSock_select&#39;s SlNetSock_SdSet_t SET function.
struct SlNetSock_MaxRtt_t SlNetSock_MaxRtt_t
The SlNetSock_MaxRtt_t structure is used in SLNETSOCK_TCP_MAXRTT TCP level option.
SlNetSockSecAttrib_e
The SlNetSockSecAttrib_e enumerations are used to declare security attribute objects in SlNetSock_sec...
Definition: slnetsock.h:338
struct SlNetSock_Broadcast_t SlNetSock_Broadcast_t
The SlNetSock_Broadcast_t structure is used in SLNETSOCK_OPSOCK_BROADCAST socket level option...
int32_t SlNetSock_startSec(int16_t sd, SlNetSockSecAttrib_t *secAttrib, uint8_t flags)
Start a security session on an opened socket.
int32_t SlNetSock_recvFrom(int16_t sd, void *buf, uint32_t len, uint32_t flags, SlNetSock_Addr_t *from, SlNetSocklen_t *fromlen)
Read data from socket.
Definition: slnetsock.h:328
struct SlNetSock_IpMreq_t SlNetSock_IpMreq_t
The SlNetSock_IpMreq_t structure is used in SLNETSOCK_OPIP_ADD_MEMBERSHIP and SLNETSOCK_OPIP_DROP_MEM...
struct SlNetSock_SecureALPN_t SlNetSock_SecureALPN_t
Secure ALPN structure.
Secure Mask structure.
Definition: slnetsock.h:609
The SlNetSock_SackPermitted_t structure is used in SLNETSOCK_TCP_NOPUSH TCP level option...
Definition: slnetsock.h:529
Definition: slnetsock.h:329
int32_t SlNetSock_sdsIsSet(int16_t sd, SlNetSock_SdSet_t *sdset)
SlNetSock_select&#39;s SlNetSock_SdSet_t ISSET function.
Generic socket address type to hold either IPv4 or IPv6 address.
Definition: slnetsock.h:703
int32_t SlNetSock_bind(int16_t sd, const SlNetSock_Addr_t *addr, int16_t addrlen)
Assign a name to a socket.
int32_t SlNetSock_getOpt(int16_t sd, int16_t level, int16_t optname, void *optval, SlNetSocklen_t *optlen)
Get socket options.
int32_t SlNetSock_close(int16_t sd)
Gracefully close socket.
int32_t SlNetSock_shutdown(int16_t sd, int16_t how)
Shutting down parts of a full-duplex connection.
int32_t SlNetSock_getIfID(uint16_t sd)
Get interface ID from socket descriptor (sd)
int32_t SlNetSock_recv(int16_t sd, void *buf, uint32_t len, uint32_t flags)
Read data from TCP socket.
The SlNetSock_NonIpBoundary_t structure is used in SLNETSOCK_OPSOCK_NON_IP_BOUNDARY socket level opti...
Definition: slnetsock.h:553
int32_t SlNetSock_secAttribSet(SlNetSockSecAttrib_t *secAttrib, SlNetSockSecAttrib_e attribName, void *val, uint16_t len)
set a security attribute
Definition: slnetsock.h:343
uint16_t SlNetSocklen_t
The SlNetSocklen_t is used for declaring the socket length parameter.
Definition: slnetsock.h:663
Definition: slnetsock.h:348
int16_t SlNetSock_create(int16_t domain, int16_t type, int16_t protocol, uint32_t ifBitmap, int16_t flags)
Create an endpoint for communication.
IpV4 socket address.
Definition: slnetsock.h:668
struct SlNetSock_AddrIn6_t SlNetSock_AddrIn6_t
SlNetSock IPv6 address, Internet style.
Definition: slnetsock.h:341
struct SlNetSock_Addr_t SlNetSock_Addr_t
IpV4 socket address.
#define SLNETSOCK_MAX_CONCURRENT_SOCKETS
Definition: slnetsock.h:225
int32_t SlNetSock_init(int32_t flags)
Initialize the SlNetSock module.
Definition: slnetsock.h:340
The SlNetSock_SdSet_t structure holds the sd array for SlNetSock_select function. ...
Definition: slnetsock.h:712
Definition: slnetsock.h:342
struct SlNetSock_SockAddrStorage_t SlNetSock_SockAddrStorage_t
Generic socket address type to hold either IPv4 or IPv6 address.
int16_t SlNetSock_accept(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen)
Accept a connection on a socket.
uint32_t s_addr
Definition: slnetsock.h:459
int32_t SlNetSock_sdsClr(int16_t sd, SlNetSock_SdSet_t *sdset)
SlNetSock_select&#39;s SlNetSock_SdSet_t CLR function.
struct SlNetSock_InAddr_t SlNetSock_InAddr_t
Internet address.
int32_t SlNetSock_getPeerName(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen)
Return address info about the remote side of the connection.
Internet address.
Definition: slnetsock.h:456
struct SlNetSock_NoOpt_t SlNetSock_NoOpt_t
The SlNetSock_NoOpt_t structure is used in SLNETSOCK_TCP_NOOPT TCP level option.
struct SlNetSock_SackPermitted_t SlNetSock_SackPermitted_t
The SlNetSock_SackPermitted_t structure is used in SLNETSOCK_TCP_NOPUSH TCP level option...
The SlNetSock_Winsize_t structure is used in SLNETSOCK_OPSOCK_RCV_BUF socket level option...
Definition: slnetsock.h:561
int32_t SlNetSock_setOpt(int16_t sd, int16_t level, int16_t optname, void *optval, SlNetSocklen_t optlen)
Set socket options.
The SlNetSock_NoDelay_t structure is used in SLNETSOCK_TCP_NODELAY TCP level option.
Definition: slnetsock.h:497
Definition: slnetsock.h:344
struct SlNetSock_Nonblocking_t SlNetSock_Nonblocking_t
The SlNetSock_Nonblocking_t structure is used in SLNETSOCK_OPSOCK_NON_BLOCKING socket level option...
struct SlNetSock_TransceiverRxOverHead_t SlNetSock_TransceiverRxOverHead_t
The SlNetSock_TransceiverRxOverHead_t structure holds the data for Rx transceiver mode using a raw so...
The SlNetSock_NoPush_t structure is used in SLNETSOCK_TCP_NOPUSH TCP level option.
Definition: slnetsock.h:513
Secure socket attribute context.
Definition: slnetsock.h:585
SlNetSock IPv6 address, Internet style.
Definition: slnetsock.h:677
int32_t SlNetSock_sdsClrAll(SlNetSock_SdSet_t *sdset)
SlNetSock_select&#39;s SlNetSock_SdSet_t ZERO function.
struct SlNetSock_NoPush_t SlNetSock_NoPush_t
The SlNetSock_NoPush_t structure is used in SLNETSOCK_TCP_NOPUSH TCP level option.
struct SlNetSock_IpV6Mreq_t SlNetSock_IpV6Mreq_t
The SlNetSock_IpV6Mreq_t structure is used in SLNETSOCK_OPIPV6_ADD_MEMBERSHIP and SLNETSOCK_OPIPV6_DR...
Definition: slnetsock.h:324
SlNetSockTxInhibitThreshold_e
The SlNetSockTxInhibitThreshold_e enumerations is used in SLNETSOCK_OPPHY_TX_INHIBIT_THRESHOLD PHY le...
Definition: slnetsock.h:322
SlNetSock_SecAttribNode_t * SlNetSockSecAttrib_t
Secure socket attribute handler.
Definition: slnetsock.h:596
Definition: slnetsock.h:325
The SlNetSock_Keepalive_t structure is used in SLNETSOCK_OPSOCK_KEEPALIVE socket level option...
Definition: slnetsock.h:545
struct SlNetSock_SecureMask_t SlNetSock_SecureMask_t
Secure Mask structure.
struct SlNetSock_linger_t SlNetSock_linger_t
The SlNetSock_linger_t structure is used in SLNETSOCK_OPSOCK_LINGER socket level option.
Definition: slnetsock.h:327
The SlNetSock_MaxRtt_t structure is used in SLNETSOCK_TCP_MAXRTT TCP level option.
Definition: slnetsock.h:537
int32_t SlNetSock_connect(int16_t sd, const SlNetSock_Addr_t *addr, SlNetSocklen_t addrlen)
Initiate a connection on a socket.
The SlNetSock_TransceiverRxOverHead_t structure holds the data for Rx transceiver mode using a raw so...
Definition: slnetsock.h:721
struct SlNetSock_SecAttribNode_t * next
Definition: slnetsock.h:590
struct SlNetSock_In6Addr_t SlNetSock_In6Addr_t
IpV6 or Ipv6 EUI64.
struct SlNetSock_SecAttribNode_t SlNetSock_SecAttribNode_t
Secure socket attribute context.
The SlNetSock_Nonblocking_t structure is used in SLNETSOCK_OPSOCK_NON_BLOCKING socket level option...
Definition: slnetsock.h:569
Secure Method structure.
Definition: slnetsock.h:617
struct SlNetSock_AddrIn_t SlNetSock_AddrIn_t
SlNetSock IPv4 address, Internet style.
Definition: slnetsock.h:326
struct SlNetSock_SecureMethod_t SlNetSock_SecureMethod_t
Secure Method structure.
SlNetSock IPv4 address, Internet style.
Definition: slnetsock.h:689
IpV6 or Ipv6 EUI64.
Definition: slnetsock.h:484
The SlNetSock_linger_t structure is used in SLNETSOCK_OPSOCK_LINGER socket level option.
Definition: slnetsock.h:643
The SlNetSock_MaxSeg_t structure is used in SLNETSOCK_TCP_MAXSEG TCP level option.
Definition: slnetsock.h:505
int32_t SlNetSock_listen(int16_t sd, int16_t backlog)
Listen for connections on a socket.
int32_t SlNetSock_sendTo(int16_t sd, const void *buf, uint32_t len, uint32_t flags, const SlNetSock_Addr_t *to, SlNetSocklen_t tolen)
Write data to socket.
The SlNetSock_IpV6Mreq_t structure is used in SLNETSOCK_OPIPV6_ADD_MEMBERSHIP and SLNETSOCK_OPIPV6_DR...
Definition: slnetsock.h:634
Definition: slnetsock.h:346
int32_t SlNetSock_secAttribDelete(SlNetSockSecAttrib_t *secAttrib)
Deletes a security attributes object.
struct SlNetSock_NoDelay_t SlNetSock_NoDelay_t
The SlNetSock_NoDelay_t structure is used in SLNETSOCK_TCP_NODELAY TCP level option.
Definition: slnetsock.h:345
SlNetSockSecAttrib_t * SlNetSock_secAttribCreate(void)
Creates a security attributes object.
struct SlNetSock_MaxSeg_t SlNetSock_MaxSeg_t
The SlNetSock_MaxSeg_t structure is used in SLNETSOCK_TCP_MAXSEG TCP level option.
struct timeval SlNetSock_Timeval_t
The SlNetSock_Timeval_t structure is used in the SLNETSOCK_OPSOCK_RCV_TIMEO and SLNETSOCK_OPSOCK_SND_...
Definition: slnetsock.h:658
int32_t SlNetSock_send(int16_t sd, const void *buf, uint32_t len, uint32_t flags)
Write data to TCP socket.
struct SlNetSock_NonIpBoundary_t SlNetSock_NonIpBoundary_t
The SlNetSock_NonIpBoundary_t structure is used in SLNETSOCK_OPSOCK_NON_IP_BOUNDARY socket level opti...
Definition: slnetsock.h:366
struct SlNetSock_Winsize_t SlNetSock_Winsize_t
The SlNetSock_Winsize_t structure is used in SLNETSOCK_OPSOCK_RCV_BUF socket level option...
Secure ALPN structure.
Definition: slnetsock.h:601
The SlNetSock_Broadcast_t structure is used in SLNETSOCK_OPSOCK_BROADCAST socket level option...
Definition: slnetsock.h:577
int32_t SlNetSock_getSockName(int16_t sd, SlNetSock_Addr_t *addr, SlNetSocklen_t *addrlen)
Get local address info by socket descriptor.
The SlNetSock_NoOpt_t structure is used in SLNETSOCK_TCP_NOOPT TCP level option.
Definition: slnetsock.h:521
struct SlNetSock_SdSet_t SlNetSock_SdSet_t
The SlNetSock_SdSet_t structure holds the sd array for SlNetSock_select function. ...
int32_t SlNetSock_select(int16_t nsds, SlNetSock_SdSet_t *readsds, SlNetSock_SdSet_t *writesds, SlNetSock_SdSet_t *exceptsds, SlNetSock_Timeval_t *timeout)
Monitor socket activity.
© Copyright 1995-2020, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale