40 #include <ti/drivers/net/wifi/simplelink.h> 42 #ifndef __SL_SOCKET_H__ 43 #define __SL_SOCKET_H__ 66 #define SL_FD_SETSIZE SL_MAX_SOCKETS 67 #define SL_BSD_SOCKET_ID_MASK (0x1F) 70 #define SL_SOCK_STREAM (1) 71 #define SL_SOCK_DGRAM (2) 72 #define SL_SOCK_RAW (3) 73 #define SL_SOCK_RX_MTR (4) 74 #define SL_IPPROTO_TCP (6) 75 #define SL_IPPROTO_UDP (17) 76 #define SL_IPPROTO_RAW (255) 77 #define SL_SEC_SOCKET (100) 80 #define SL_AF_INET (2) 81 #define SL_AF_INET6 (3) 83 #define SL_AF_PACKET (17) 85 #define SL_PF_INET AF_INET 86 #define SL_PF_INET6 AF_INET6 87 #define SL_INADDR_ANY (0) 88 #define SL_IN6ADDR_ANY (0) 92 #define SL_SOCKET_PAYLOAD_TYPE_MASK (0xF0) 93 #define SL_SOCKET_PAYLOAD_TYPE_RAW_TRANCEIVER (0x80) 96 #define SL_SOCKET_TX_FAILED_EVENT (1) 97 #define SL_SOCKET_ASYNC_EVENT (2) 101 #define SL_SOCKET_TRIGGER_EVENT_SELECT (1) 103 #define SL_SOL_SOCKET (1) 104 #define SL_IPPROTO_IP (2) 105 #define SL_SOL_PHY_OPT (3) 107 #define SL_SO_RCVBUF (8) 108 #define SL_SO_KEEPALIVE (9) 109 #define SL_SO_LINGER (13) 110 #define SL_SO_RCVTIMEO (20) 111 #define SL_SO_SNDTIMEO (21) 112 #define SL_SO_NONBLOCKING (24) 113 #define SL_SO_SECMETHOD (25) 114 #define SL_SO_SECURE_MASK (26) 115 #define SL_SO_SECURE_FILES (27) 116 #define SL_SO_CHANGE_CHANNEL (28) 117 #define SL_SO_SECURE_FILES_PRIVATE_KEY_FILE_NAME (30) 118 #define SL_SO_SECURE_FILES_CERTIFICATE_FILE_NAME (31) 119 #define SL_SO_SECURE_FILES_CA_FILE_NAME (32) 120 #define SL_SO_SECURE_FILES_PEER_CERT_OR_DH_KEY_FILE_NAME (33) 121 #define SL_SO_STARTTLS (35) 122 #define SL_SO_SSL_CONNECTION_PARAMS (36) 123 #define SL_SO_KEEPALIVETIME (37) 124 #define SL_SO_SECURE_DISABLE_CERTIFICATE_STORE (38) 125 #define SL_SO_RX_NO_IP_BOUNDARY (39) 126 #define SL_SO_SECURE_ALPN (40) 127 #define SL_SO_SECURE_EXT_CLIENT_CHLNG_RESP (41) 128 #define SL_SO_SECURE_DOMAIN_NAME_VERIFICATION (42) 129 #define SL_SO_SECURE_ENABLE_OCSP (43) 130 #define SL_SO_SECURE_ALPN_GENERAL (44) 132 #define SL_IP_MULTICAST_IF (60) 133 #define SL_IP_MULTICAST_TTL (61) 134 #define SL_IP_ADD_MEMBERSHIP (65) 135 #define SL_IP_DROP_MEMBERSHIP (66) 136 #define SL_IP_HDRINCL (67) 137 #define SL_IP_RAW_RX_NO_HEADER (68) 138 #define SL_IP_RAW_IPV6_HDRINCL (69) 139 #define SL_IPV6_ADD_MEMBERSHIP (70) 140 #define SL_IPV6_DROP_MEMBERSHIP (71) 141 #define SL_IPV6_MULTICAST_HOPS (72) 143 #define SL_SO_PHY_RATE (100) 144 #define SL_SO_PHY_TX_POWER (101) 145 #define SL_SO_PHY_NUM_FRAMES_TO_TX (102) 146 #define SL_SO_PHY_PREAMBLE (103) 147 #define SL_SO_PHY_TX_INHIBIT_THRESHOLD (104) 148 #define SL_SO_PHY_TX_TIMEOUT (105) 149 #define SL_SO_PHY_ALLOW_ACKS (106) 150 #define SL_SO_PHY_RX_BSSID_DATA_FRAMES (107) 154 SL_TX_INHIBIT_THRESHOLD_MIN = 1,
155 SL_TX_INHIBIT_THRESHOLD_LOW = 2,
156 SL_TX_INHIBIT_THRESHOLD_DEFAULT = 3,
157 SL_TX_INHIBIT_THRESHOLD_MED = 4,
158 SL_TX_INHIBIT_THRESHOLD_HIGH = 5,
159 SL_TX_INHIBIT_THRESHOLD_MAX = 6
160 } SlTxInhibitThreshold_e;
162 #define SL_SO_SEC_METHOD_SSLV3 (0) 163 #define SL_SO_SEC_METHOD_TLSV1 (1) 164 #define SL_SO_SEC_METHOD_TLSV1_1 (2) 165 #define SL_SO_SEC_METHOD_TLSV1_2 (3) 166 #define SL_SO_SEC_METHOD_SSLv3_TLSV1_2 (4) 167 #define SL_SO_SEC_METHOD_DLSV1 (5) 169 #define SL_SEC_MASK_SSL_RSA_WITH_RC4_128_SHA (1 << 0) 170 #define SL_SEC_MASK_SSL_RSA_WITH_RC4_128_MD5 (1 << 1) 171 #define SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA (1 << 2) 172 #define SL_SEC_MASK_TLS_DHE_RSA_WITH_AES_256_CBC_SHA (1 << 3) 173 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (1 << 4) 174 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_RC4_128_SHA (1 << 5) 175 #define SL_SEC_MASK_TLS_RSA_WITH_AES_128_CBC_SHA256 (1 << 6) 176 #define SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA256 (1 << 7) 177 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (1 << 8) 178 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (1 << 9) 179 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (1 << 10) 180 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (1 << 11) 181 #define SL_SEC_MASK_TLS_RSA_WITH_AES_128_GCM_SHA256 (1 << 12) 182 #define SL_SEC_MASK_TLS_RSA_WITH_AES_256_GCM_SHA384 (1 << 13) 183 #define SL_SEC_MASK_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (1 << 14) 184 #define SL_SEC_MASK_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (1 << 15) 185 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (1 << 16) 186 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (1 << 17) 187 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (1 << 18) 188 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (1 << 19) 189 #define SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 20) 190 #define SL_SEC_MASK_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 21) 191 #define SL_SEC_MASK_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (1 << 22) 193 #define SL_SEC_MASK_SECURE_DEFAULT ((SL_SEC_MASK_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 << 1) - 1) 195 #define SL_SECURE_ALPN_H1 (1 << 0) 196 #define SL_SECURE_ALPN_H2 (1 << 1) 197 #define SL_SECURE_ALPN_H2C (1 << 2) 198 #define SL_SECURE_ALPN_H2_14 (1 << 3) 199 #define SL_SECURE_ALPN_H2_16 (1 << 4) 200 #define SL_SECURE_ALPN_FULL_LIST ((SL_SECURE_ALPN_H2_16 << 1 ) - 1) 202 #define SL_MSG_DONTWAIT (0x00000008) 205 #define SL_IP_LEASE_PEER_RELEASE (0) 206 #define SL_IP_LEASE_PEER_DECLINE (1) 207 #define SL_IP_LEASE_EXPIRED (2) 210 #define SL_SSL_ACCEPT (0) 211 #define SL_RX_FRAGMENTATION_TOO_BIG (1) 212 #define SL_OTHER_SIDE_CLOSE_SSL_DATA_NOT_ENCRYPTED (2) 213 #define SL_SSL_NOTIFICATION_CONNECTED_SECURED (3) 214 #define SL_SSL_NOTIFICATION_HANDSHAKE_FAILED (4) 215 #define SL_SSL_NOTIFICATION_WRONG_ROOT_CA (5) 216 #define SL_SOCKET_ASYNC_EVENT_SSL_NOTIFICATION_WRONG_ROOT_CA (5) 217 #define SL_MAX_ISSUER_AND_SUBJECT_NAME_LEN (16) 230 struct { _u8 s_b1,s_b2,s_b3,s_b4; } S_un_b;
231 struct { _u16 s_w1,s_w2; } S_un_w;
251 _u32 KeepaliveEnabled;
256 _u32 ReuseaddrEnabled;
261 _i32 RxIpNoBoundaryEnabled;
271 _u32 NonBlockingEnabled;
327 _u16 SubjectNameXoredSha1;
328 _u16 IssuerNameXoredSha1;
331 _i8 SubjectName[SL_MAX_ISSUER_AND_SUBJECT_NAME_LEN];
332 _i8 IssuerName[SL_MAX_ISSUER_AND_SUBJECT_NAME_LEN];
342 _u32 SecureCipherSuit;
343 _u32 SecureIsPeerValidated;
344 _u32 SecureALPNChosenProtocol;
364 SL_SOCK_TX_RATE_1M = 1,
365 SL_SOCK_TX_RATE_2M = 2,
366 SL_SOCK_TX_RATE_5_5M = 3,
367 SL_SOCK_TX_RATE_11M = 4,
368 SL_SOCK_TX_RATE_6M = 6,
369 SL_SOCK_TX_RATE_9M = 7,
370 SL_SOCK_TX_RATE_12M = 8,
371 SL_SOCK_TX_RATE_18M = 9,
372 SL_SOCK_TX_RATE_24M = 10,
373 SL_SOCK_TX_RATE_36M = 11,
374 SL_SOCK_TX_RATE_48M = 12,
375 SL_SOCK_TX_RATE_54M = 13,
376 SL_SOCK_TX_RATE_MCS_0 = 14,
377 SL_SOCK_TX_RATE_MCS_1 = 15,
378 SL_SOCK_TX_RATE_MCS_2 = 16,
379 SL_SOCK_TX_RATE_MCS_3 = 17,
380 SL_SOCK_TX_RATE_MCS_4 = 18,
381 SL_SOCK_TX_RATE_MCS_5 = 19,
382 SL_SOCK_TX_RATE_MCS_6 = 20,
383 SL_SOCK_TX_RATE_MCS_7 = 21,
384 SL_SOCK_TX_MAX_NUM_RATES = 0xFF
385 }slSockTransceiverTXRateTable_e;
390 SL_SOCK_RX_RATE_1M = 0,
391 SL_SOCK_RX_RATE_2M = 1,
392 SL_SOCK_RX_RATE_5_5M = 2,
393 SL_SOCK_RX_RATE_11M = 3,
394 SL_SOCK_RX_RATE_6M = 4,
395 SL_SOCK_RX_RATE_9M = 5,
396 SL_SOCK_RX_RATE_12M = 6,
397 SL_SOCK_RX_RATE_18M = 7,
398 SL_SOCK_RX_RATE_24M = 8,
399 SL_SOCK_RX_RATE_36M = 9,
400 SL_SOCK_RX_RATE_48M = 10,
401 SL_SOCK_RX_RATE_54M = 11,
402 SL_SOCK_RX_RATE_MCS0 = 12,
403 SL_SOCK_RX_RATE_MCS1 = 13,
404 SL_SOCK_RX_RATE_MCS2 = 14,
405 SL_SOCK_RX_RATE_MCS3 = 15,
406 SL_SOCK_RX_RATE_MCS4 = 16,
407 SL_SOCK_RX_RATE_MCS5 = 17,
408 SL_SOCK_RX_RATE_MCS6 = 18,
409 SL_SOCK_RX_RATE_MCS7 = 19,
410 SL_SOCK_RX_RATE_MCS7_SGI = 20,
412 }SlSockTransceiverRXRates_e;
416 SL_BSD_SECURED_PRIVATE_KEY_IDX = 0,
417 SL_BSD_SECURED_CERTIFICATE_IDX,
418 SL_BSD_SECURED_CA_IDX,
419 SL_BSD_SECURED_DH_IDX
420 }SlSockSecureSocketFilesIndex_e;
430 _u32 ipv6mr_interface;
440 typedef _i32 SlTime_t;
441 typedef _i32 SlSuseconds_t;
446 SlSuseconds_t tv_usec;
449 typedef _u16 SlSocklen_t;
484 _u32 fd_array[(SL_FD_SETSIZE + (_u8)31)/(_u8)32];
563 #if _SL_INCLUDE_FUNC(sl_Socket) 564 _i16
sl_Socket(_i16 Domain, _i16 Type, _i16 Protocol);
581 #if _SL_INCLUDE_FUNC(sl_Close) 634 #if _SL_INCLUDE_FUNC(sl_Accept) 662 #if _SL_INCLUDE_FUNC(sl_Bind) 685 #if _SL_INCLUDE_FUNC(sl_Listen) 726 #if _SL_INCLUDE_FUNC(sl_Connect) 787 #if _SL_INCLUDE_FUNC(sl_Select) 788 _i16
sl_Select(_i16 nfds, SlFdSet_t *readsds, SlFdSet_t *writesds, SlFdSet_t *exceptsds,
struct SlTimeval_t *timeout);
1238 #if _SL_INCLUDE_FUNC(sl_SetSockOpt) 1239 _i16 sl_SetSockOpt(_i16 sd, _i16 level, _i16 optname,
const void *optval, SlSocklen_t optlen);
1281 #if _SL_INCLUDE_FUNC(sl_GetSockOpt) 1282 _i16
sl_GetSockOpt(_i16 sd, _i16 level, _i16 optname,
void *optval, SlSocklen_t *optlen);
1351 #if _SL_INCLUDE_FUNC(sl_Recv) 1352 _i16
sl_Recv(_i16 sd,
void *buf, _i16 len, _i16 flags);
1409 #if _SL_INCLUDE_FUNC(sl_RecvFrom) 1459 #if _SL_INCLUDE_FUNC(sl_Send ) 1460 _i16
sl_Send(_i16 sd,
const void *buf, _i16 len, _i16 flags);
1510 #if _SL_INCLUDE_FUNC(sl_SendTo) 1511 _i16
sl_SendTo(_i16 sd,
const void *buf, _i16 len, _i16 flags,
const SlSockAddr_t *to, SlSocklen_t tolen);
1529 #if _SL_INCLUDE_FUNC(sl_StartTLS) 1546 #if _SL_INCLUDE_FUNC(sl_Htonl ) 1549 #define sl_Ntohl sl_Htonl 1565 #if _SL_INCLUDE_FUNC(sl_Htons ) 1568 #define sl_Ntohs sl_Htons 1580 void SL_SOCKET_FD_SET(_i16 fd, SlFdSet_t *fdset);
1587 void SL_SOCKET_FD_CLR(_i16 fd, SlFdSet_t *fdset);
1598 _i16 SL_SOCKET_FD_ISSET(_i16 fd, SlFdSet_t *fdset);
1605 void SL_SOCKET_FD_ZERO(SlFdSet_t *fdset);
_i16 sl_Bind(_i16 sd, const SlSockAddr_t *addr, _i16 addrlen)
Assign a name to a socket.
_u32 sl_Htonl(_u32 val)
Reorder the bytes of a 32-bit unsigned value.
_i16 sl_Select(_i16 nfds, SlFdSet_t *readsds, SlFdSet_t *writesds, SlFdSet_t *exceptsds, struct SlTimeval_t *timeout)
Monitor socket activity.
_i16 sl_StartTLS(_i16 sd)
Initiate TLS connection on a socket.
_u16 sl_Htons(_u16 val)
Reorder the bytes of a 16-bit unsigned value.
_i16 sl_Close(_i16 sd)
Gracefully close socket.
_i16 sl_Recv(_i16 sd, void *buf, _i16 len, _i16 flags)
Read data from TCP socket.
_i16 sl_GetSockOpt(_i16 sd, _i16 level, _i16 optname, void *optval, SlSocklen_t *optlen)
Get socket options.
_i16 sl_Socket(_i16 Domain, _i16 Type, _i16 Protocol)
Create an endpoint for communication.
_i16 sl_RecvFrom(_i16 sd, void *buf, _i16 len, _i16 flags, SlSockAddr_t *from, SlSocklen_t *fromlen)
Read data from socket.
_i16 sl_Accept(_i16 sd, SlSockAddr_t *addr, SlSocklen_t *addrlen)
Accept a connection on a socket.
_i16 sl_Connect(_i16 sd, const SlSockAddr_t *addr, _i16 addrlen)
Initiate a connection on a socket.
_i16 sl_Listen(_i16 sd, _i16 backlog)
Listen for connections on a socket.
_i16 sl_SendTo(_i16 sd, const void *buf, _i16 len, _i16 flags, const SlSockAddr_t *to, SlSocklen_t tolen)
Write data to socket.
_i16 sl_Send(_i16 sd, const void *buf, _i16 len, _i16 flags)
Write data to TCP socket.