SimpleLink CC3100/CC3200 Host Driver  Version 1.0.1.6
Simplifies the implementation of Internet connectivity
netcfg.h
1 /*
2  * netcfg.h - CC31xx/CC32xx Host Driver Implementation
3  *
4  * Copyright (C) 2015 Texas Instruments Incorporated - https://www.ti.com/
5  *
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in the
16  * documentation and/or other materials provided with the
17  * distribution.
18  *
19  * Neither the name of Texas Instruments Incorporated nor the names of
20  * its contributors may be used to endorse or promote products derived
21  * from this software without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  *
35 */
36 
37 /*****************************************************************************/
38 /* Include files */
39 /*****************************************************************************/
40 #include "simplelink.h"
41 
42 
43 #ifndef __NETCFG_H__
44 #define __NETCFG_H__
45 
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 
52 
61 /*****************************************************************************/
62 /* Macro declarations */
63 /*****************************************************************************/
64 
65 #define SL_MAC_ADDR_LEN (6)
66 #define SL_IPV4_VAL(add_3,add_2,add_1,add_0) ((((_u32)add_3 << 24) & 0xFF000000) | (((_u32)add_2 << 16) & 0xFF0000) | (((_u32)add_1 << 8) & 0xFF00) | ((_u32)add_0 & 0xFF) )
67 #define SL_IPV4_BYTE(val,index) ( (val >> (index*8)) & 0xFF )
68 
69 #define IPCONFIG_MODE_DISABLE_IPV4 (0)
70 #define IPCONFIG_MODE_ENABLE_IPV4 (1)
71 
72 /*****************************************************************************/
73 /* Structure/Enum declarations */
74 /*****************************************************************************/
75 typedef enum
76 {
77  SL_MAC_ADDRESS_SET = 1,
78  SL_MAC_ADDRESS_GET = 2,
79  SL_IPV4_STA_P2P_CL_GET_INFO = 3,
80  SL_IPV4_STA_P2P_CL_DHCP_ENABLE = 4,
81  SL_IPV4_STA_P2P_CL_STATIC_ENABLE = 5,
82  SL_IPV4_AP_P2P_GO_GET_INFO = 6,
83  SL_IPV4_AP_P2P_GO_STATIC_ENABLE = 7,
84  SL_SET_HOST_RX_AGGR = 8,
85  SL_IPV4_DHCP_CLIENT = 9,
86  SL_IPV4_DNS_CLIENT = 10,
87  SL_IPV4_ARP_FLUSH = 11,
88  MAX_SETTINGS = 0xFF
89 }Sl_NetCfg_e;
90 
91 
92 typedef struct
93 {
94  _u32 ipV4;
95  _u32 ipV4Mask;
96  _u32 ipV4Gateway;
97  _u32 ipV4DnsServer;
99 
100 typedef struct
101 {
102  _u32 Ip;
103  _u32 Gateway;
104  _u32 Mask;
105  _u32 Dns[2];
106  _u32 DhcpServer;
107  _u32 LeaseTime;
108  _u8 DhcpState;
109  _u8 Reserved[3];
111 
112 typedef enum
113 {
114  SL_NETCFG_DHCP_CLIENT_UNKNOWN = 0,
115  SL_NETCFG_DHCP_CLIENT_DISABLED,
116  SL_NETCFG_DHCP_CLIENT_ENABLED,
117  SL_NETCFG_DHCP_CLIENT_BOUND,
118  SL_NETCFG_DHCP_CLIENT_RENEW,
119  SL_NETCFG_DHCP_CLIENT_REBIND
120 }SlNetCfgIpv4DhcpClientState_e;
121 
122 typedef struct
123 {
124  _u32 DnsSecondServerAddr;
125  _u32 DnsMaxRetries;
127 
128 /*****************************************************************************/
129 /* Function prototypes */
130 /*****************************************************************************/
131 
244 #if _SL_INCLUDE_FUNC(sl_NetCfgSet)
245 _i32 sl_NetCfgSet(const _u8 ConfigId,const _u8 ConfigOpt,const _u8 ConfigLen,const _u8 *pValues);
246 #endif
247 
248 
356 #if _SL_INCLUDE_FUNC(sl_NetCfgGet)
357 _i32 sl_NetCfgGet(const _u8 ConfigId ,_u8 *pConfigOpt, _u8 *pConfigLen, _u8 *pValues);
358 #endif
359 
368 #ifdef __cplusplus
369 }
370 #endif /* __cplusplus */
371 
372 #endif /* __NETCFG_H__ */
373 
_i32 sl_NetCfgGet(const _u8 ConfigId, _u8 *pConfigOpt, _u8 *pConfigLen, _u8 *pValues)
Internal function for getting network configurations.
_i32 sl_NetCfgSet(const _u8 ConfigId, const _u8 ConfigOpt, const _u8 ConfigLen, const _u8 *pValues)
Internal function for setting network configurations.