background image

CC3120, CC3220 SimpleLink™ Wi-Fi

®

and

Internet of Things Network Processor

Programmer's Guide

Literature Number: SWRU455A

February 2017 – Revised March 2017

Summary of Contents for CC3220

Page 1: ...CC3120 CC3220 SimpleLink Wi Fi and Internet of Things Network Processor Programmer s Guide Literature Number SWRU455A February 2017 Revised March 2017 ...

Page 2: ... 2 1 3 Security 23 2 1 4 User Experience 23 2 1 5 Power Consumption 23 2 1 6 Provisioning 24 2 2 Basic Examples 24 2 2 1 Wi Fi Doorbell 24 2 2 2 Power Socket 24 2 2 3 Wi Fi Tag 25 3 Device 26 3 1 Introduction 27 3 2 Key Features 27 3 3 Start and Stop 27 3 3 1 Start 27 3 3 2 Stop 27 3 3 3 Hibernate and Shutdown 28 3 3 4 Lock State 28 3 3 5 Initialization Sequence 28 3 4 Host Interface 29 3 4 1 SPI ...

Page 3: ...tion 57 4 5 5 Events and Errors 60 4 5 6 Limitations 62 4 6 WLAN Security 62 4 6 1 Personal Security 62 4 6 2 Enterprise Security 63 4 6 3 WPS 65 4 7 Scan 66 4 7 1 General Description 66 4 7 2 Configuration AP STA 66 4 7 3 Usage 67 4 7 4 Miscellaneous 67 4 8 Calibrations 67 5 Network Addresses 69 5 1 Introduction 70 5 2 Key Features 70 5 3 Addressing 70 5 3 1 IPv4 Addresses 71 5 3 2 IPv6 Addresses...

Page 4: ... 7 7 Common Errors and Asynchronous Events 105 7 7 1 Using Socket Asynchronous Events in SSL 105 7 7 2 Common Errors 106 8 File System 107 8 1 Introduction 110 8 2 Key Features 110 8 3 File System Characteristics 111 8 4 Write a File 111 8 4 1 Introduction 111 8 4 2 Create a File versus Open for Write 112 8 4 3 Create a File 113 8 4 4 Open a File for Write 115 8 4 5 Write an Opened File 115 8 4 6 ...

Page 5: ...ication Interface 140 9 2 Key Features 140 9 3 Configurations and Settings 141 9 4 RESTful API Processing 142 9 4 1 Ping 142 9 4 2 IP Configuration 142 9 4 3 URN Configuration 143 9 4 4 WLAN Profiles 143 9 4 5 WLAN Scan 144 9 4 6 Provisioning Confirmation 145 9 4 7 Connection Policy 145 9 4 8 Station Action 145 9 4 9 AP Black List 145 9 4 10 Date and Time 146 9 5 Device Parameter Querying Through ...

Page 6: ...ment Settings 171 10 7 Limitations 172 11 Rx Filters 173 11 1 Introduction 174 11 2 Matching Process 175 11 2 1 Filter Matching 175 11 2 2 Tree Traversal 177 11 3 Examples of Filter Use 178 11 3 1 Example 1 178 11 3 2 Example 2 178 11 4 Filter Creation 179 11 4 1 Filter Type 179 11 4 2 Filter Flags 179 11 4 3 Rule Structure for Header Filters 180 11 4 4 Rule Structure for Combined Filters 184 11 4...

Page 7: ... 14 3 Configurations and Settings 204 14 3 1 Changing Power Policy 204 14 3 2 Enabling Fast Connect 204 14 4 Network Applications and Power Consumption 204 14 4 1 mDNS 204 14 4 2 HTTP Server 204 14 5 Design Guidelines 205 14 5 1 LSI and Packet Loss 205 14 5 2 PHY Calibration Mode 205 15 Provisioning 206 15 1 Introduction 207 15 2 Key Features 207 15 3 Provisioning Process Overview 207 15 3 1 Confi...

Page 8: ...oning While External Configuration Enabled 222 16 Crypto Utilities 223 16 1 Introduction 224 16 1 1 API and Usage 224 16 1 2 Limitations and Constraints 227 16 1 3 Errors 227 16 2 Secured Content Delivery 228 16 2 1 Process Flow 228 16 2 2 Encrypted File Format 230 17 Porting the Host Driver 231 17 1 Introduction 232 17 2 Create Platform Porting File 233 17 3 Select Capabilities Set 233 17 4 Bind ...

Page 9: ... 5 Custom Pages With Device Tokens 139 9 6 Static Pages With Host Tokens 140 9 7 Host Application Interface 140 9 8 GET Request Flow 153 9 9 POST Request Flow 154 9 10 PUT and DELETE Request Flow 154 9 11 GET Request With and Without Fragmentation 157 9 12 POST Processing Flow 160 9 13 Delayed Response 162 11 1 Rx Filters 175 11 2 Rx Filter Match Flow 176 11 3 Example 1 178 11 4 Example 2 179 15 1...

Page 10: ...rs 45 4 5 Common Errors 52 4 6 Wi Fi Direct Default Parameters 53 4 7 Common Errors 61 4 8 Supported Personal Security Types 62 4 9 Calibration Modes 68 5 1 Key Features 70 5 2 Addressing 70 5 3 DHCP Server Defaults 75 5 4 Major Asynchronous Events in NetApp Silo 76 5 5 Major Asynchronous Events in NetCfg Silo 77 5 6 Major Errors While Calling sl_NetCfgSet 77 6 1 Key Features 80 6 2 BSD APIs 81 6 ...

Page 11: ...9 19 Provisioning Tokens 151 9 20 Display Profile Information Tokens 151 9 21 P2P Information Tokens 152 9 22 TLV Structure 155 9 23 HTTP Metadata Types 155 9 24 Internal Metadata Types 155 9 25 Metadata Breakout Examples 156 10 1 Key Features 167 11 1 Possible Triggers 176 11 2 Possible Rules 177 11 3 Possible Actions 177 11 4 Possible Compare Functions 181 11 5 Rule Types 182 11 6 Rule Types Lay...

Page 12: ...red knowledge for working with the networking subsystem of the SimpleLink Wi Fi devices This guide provides basic guidelines for writing robust optimized networking host applications and describes the capabilities of the networking subsystem The guide contains some example code snapshots to give users an idea of how to work with the host driver More comprehensive code examples can be found in the ...

Page 13: ...the networking subsystem is internal The host driver is the same for the CC3120 and CC3220 and the networking capabilities are similar for both devices The network stack is fully implemented in the networking subsystem thereby offloading the networking activities from the host MCU A simple application that only sends a UDP datagram on the local network requires minimum APIs as follows sl_Start Sta...

Page 14: ...RAW BSD SSL ARP PM Policy Provisioning Host SPI UART Secure FS Time and Date RTC Crypto Util 6LPSOH LQNΠRVW ULYHU Interface SPI UART Driver OS Adaptation Layer Device Wlan NetApp NetCfg NetUtil FS Socket Introduction www ti com 14 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Overview Figure 1 2 shows a more detailed block di...

Page 15: ... peer P2P GO Wi Fi Direct group owner OS Operating system 1 3 Key Features Table 1 2 lists the key features of the CC3120 and CC3220 devices Table 1 2 Key Features Feature Description Wi Fi standards 802 11b g n station 802 11b g access point with support for up to four stations Wi Fi Direct client group owner Wi Fi channels 1 13 Personal and Enterprise Wi Fi security WEP WPA WPA2 PSK WPA2 Enterpr...

Page 16: ...d With UART only little endian is supported The APIs of the SimpleLink host driver are arranged in several logical and simple modules silos Table 1 3 provides a high level description of these silos Table 1 3 Software Modules of the Host Driver Silo Description Device Provides interface to hardware and general functionality such as start stop or set and get configurations in the device level WLAN ...

Page 17: ...routines Lock object Object intended to protect a shared resource The driver pre allocates all the required OS resources dynamic or static according to the setting on calling sl_Start The number of allocated objects is calculated according to the maximum concurrent actions required by the user The SimpleLink host driver does not use its own processing context To bind a context to the driver the us...

Page 18: ...UtilGet sl_NetUtilCmd sl_FsOpen sl_FsClose sl_FsRead sl_FsWrite sl_FsGetInfo sl_FsDel sl_FsCtl sl_FsProgram sl_FsGetFileList Device Wlan Socket NetCfg NetUtil FS DeviceFatalErrorEventHandler DeviceGeneralEventHandler WlanEventHandler SocketEventHandler NetCfgEventHandler NetUtilEventHandler sl_NetAppStart sl_NetAppStop sl_NetAppDnsGetHostByName sl_NetAppDnsGetHostByService sl_NetAppGetServiceList ...

Page 19: ...al sl_IfMaskIntHdlr sl_IfUnMaskIntHdlr Optional slcb_GetTimestamp sl_Malloc sl_Free www ti com Host Driver Overview 19 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Overview 1 4 4 Porting to Different Platforms To use the driver on different platforms the host must implement a few adaptation modules Figure 1 4 shows these adap...

Page 20: ...tion Chapter 2 SWRU455A February 2017 Revised March 2017 Networking Application Topic Page 2 1 Introduction 21 2 1 1 Wi Fi Connectivity 21 2 1 2 Traffic Types 22 2 1 3 Security 23 2 1 4 User Experience 23 2 1 5 Power Consumption 23 2 1 6 Provisioning 24 2 2 Basic Examples 24 2 2 1 Wi Fi Doorbell 24 2 2 2 Power Socket 24 2 2 3 Wi Fi Tag 25 ...

Page 21: ...ses Wi Fi as a radio transceiver Wi Fi provisioning What are the possible methods to connect a new device to a Wi Fi network in the specific target application Are there any graphical or other interfaces to the system Traffic type What kind of traffic is expected from the target system Is it connection oriented traffic or connectionless oriented traffic Security What are the major assets of the sy...

Page 22: ...on can move from one mode to another on demand Moving from mode to mode requires the user to reset the SimpleLink Wi Fi device Trade offs to be considered follow Power consumption Response time Availability 2 1 2 Traffic Types Communication protocols are typically divided into two types connection oriented and connectionless Connection oriented protocols require establishing a connection between t...

Page 23: ...the cloud SimpleLink devices support the SSL secured socket layer standard for data encryption and server verification More details are in the secure socket chapter Files Passwords configurations keys and credentials are private information on the device which must be secured SimpleLink Wi Fi devices support secure file systems on an external serial flash providing a simple API to organize and acc...

Page 24: ...ss point to allow internet access STA role Configure profile with network name and password during the provisioning process Traffic types Reliable SSL TLS Security Must secure data Secure Wi Fi password Secure credentials Secure user password of the up layer connect to the server Wi Fi profile and password are configured during the provisioning process The password is encrypted and cannot be acces...

Page 25: ...as hospital medical equipment or expensive lab equipment The tag device occasionally transmits without being connected to the local network The transmission allows the central equipment to find the device using a smart signal algorithm A tag device can also connect to an AP occasionally to get software updates or send statistical information 2 2 3 2 Design Consideration Table 2 3 Design Considerat...

Page 26: ...ion 27 3 2 Key Features 27 3 3 Start and Stop 27 3 3 1 Start 27 3 3 2 Stop 27 3 3 3 Hibernate and Shutdown 28 3 3 4 Lock State 28 3 3 5 Initialization Sequence 28 3 4 Host Interface 29 3 4 1 SPI Interface 29 3 4 2 UART Interface 30 3 5 Version 32 3 6 Event Mask 32 3 7 Time and Date 32 3 8 MAC Address 33 3 9 Device Name 33 3 10 Domain Name 34 3 11 Device Status 34 3 12 Persistent Configuration 35 3...

Page 27: ...h modes when the device completes the initialization INIT process it sends an internal asynchronous event INIT COMPLETE to the host During the initialization process the host interface UART or SPI is determined and RF calibrations may be performed A few types of calibration modes are available and the target application must choose the most compatible mode for its requirements The mode of the cali...

Page 28: ...IT failed and an inaccurate error is sent with the INIT complete error asynchronous event The device INIT complete may then fail due to calibration failure or integrity failure of the file system data structure The security alerts threshold was exceeded The SimpleLink Wi Fi device provides a software tampering detection mechanism with a security alert counter This procedure detects integrity viola...

Page 29: ...isting UART or SPI physical communication interface drivers Provide the ability to work with or without an OS Enable porting to any platform The SimpleLink Wi Fi host driver is written in strict ANSI C89 for full compatibility with most embedded platforms and development environments The following information is relevant for the SimpleLink Wi Fi CC3120 wireless network processor which must impleme...

Page 30: ...hronous events to the host an additional I O must be connected H IRQ between them This line triggers the host to read a message from the device Figure 3 1 shows a typical host setup of the CC3120 wireless network processor using SPI interface Figure 3 1 Typical CC3120 Setup SPI 3 4 2 UART Interface The SimpleLink Wi Fi device supports a standard UART interface with a hardware flow control RTS CTS ...

Page 31: ...op transmissions in some scenarios and therefore its RTS line must be respected If the host is fast enough and does not need to stop transmissions from the SimpleLink device at any time the CTS line of the SimpleLink Wi Fi device might be tied to a pullup instead For UART mode only the following define should be added in user h define SL_IF_TYPE_UART 3 4 2 1 Change UART Baud Rate The SimpleLink de...

Page 32: ... SL_DEVICE_GENERAL_VERSION Status sl_DeviceGet SL_DEVICE_GENERAL pConfigOpt pConfigLen _u8 ver if Status error 3 6 Event Mask The SimpleLink Wi Fi device lets users mask some of the asynchronous events Masked events do not arrive to the host driver This setting should apply for each API silo separately and include only the events needed to be masked By default none of the events are masked This co...

Page 33: ...configuration is persistent with no dependency on the system persistent configuration Setting a MAC address takes effect only after reset and can be set by the Image Creator NOTE When configuring a new MAC address the original MAC address is still used for Image Creator development mode For more information refer to the CC3120 CC3220 SimpleLink Wi Fi and Internet of Things Image Creator User s Gui...

Page 34: ...t This configuration is persistent according to system persistent configuration Example set new domain name _i16 Status _u8 domain_name www myDomain net Status sl_NetAppSet SL_NETAPP_DEVICE_ID SL_NETAPP_DEVICE_DOMAIN strlen domain_name _u8 domain_name if Status error 3 11 Device Status The SimpleLink Wi Fi device provides an option to read the device status according to the last event recorded in ...

Page 35: ...ed information a handler should be implemented in the user application and registered under the user h header file Each error code is unique The following errors are common and require user action a full possible error list is under the file error h in the host driver Table 3 4 lists common errors indicated by asynchronous events Table 3 4 Common Asynchronous Error Events Error Handler Comments SL...

Page 36: ...ile system is corrupted restore to factory image or program new image should be invoked see sl_FsCtl sl_FsProgram SL_ERROR_FS_ALERT_ERR 4112 Initialization failure due to exceeded number of security alerts sl_Start device is locked restore to factory image or program new image should be invoked see sl_FsCtl sl_FsProgram SL_ERROR_RET_TO_IMAGE_COMLETE 4113 Restore to factory image completed perform ...

Page 37: ...t 45 4 4 1 General Description 45 4 4 2 Configurations and Settings 45 4 4 3 Set Network Configuration 50 4 4 4 Station Management 51 4 4 5 Events and Errors 52 4 4 6 Limitations 52 4 5 Wi Fi Direct 53 4 5 1 General Description 53 4 5 2 Supported Features 53 4 5 3 Configurations and Settings 53 4 5 4 Connection 57 4 5 5 Events and Errors 60 4 5 6 Limitations 62 4 6 WLAN Security 62 4 6 1 Personal ...

Page 38: ...ise connection Multiple EAP methods are supported for enterprise connection Connection policy Connection policy that allows automatic connection to a preferred network in different cases Wi Fi Direct Wi Fi Direct connection with remote device acting as GO or CLIENT Scanning Support scan parameter configuration Keep up to 30 networks and the ability to read the results WLAN modes Station AP default...

Page 39: ...llowing API should be called to set the device in STA mode STA configuration requires a reset and is persistent with no dependency on the system persistent configuration Example _i16 Role _i16 Status Set the device in STA mode Status sl_WlanSetMode ROLE_STA if Status Error setting mode Reset the device Status sl_Stop 0 Role sl_Start NULL NULL NULL if ROLE_STA Role Role Error 4 3 2 2 Set General ST...

Page 40: ...STA_TX_POWER 1 _u8 StaPower if Status error Set Country Code Regulatory Domain Sets the country code for STA mode This setting enables scanning and connection only to the AP which operates on the chosen channel set Possible values are US EU or JP Other values are considered an error Each country code sets different channel ranges US Channels 1 11 JP EU Channels 1 13 Example _i16 Status _u8 Str US ...

Page 41: ...nown from previous successful connection If the Auto policy is also enabled Auto and Fast then a profile exists and previous successful connection was performed to this profile After reset the device tries to connect to the same profile with no scan no probe request transmission If this connection fails the device starts scanning according to stored profile priority If the Fast policy is enabled i...

Page 42: ... Add Profile Add a profile to the next available index The return value is the profile index with a value from 0 to 6 Negative values indicate an error This index identifies the profile and should be used when deleting or editing the profile The following are examples of adding a WPA2 secured profile with SSID and BSSID _u8 MacAddr 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF SlWlanSecParams_t SecParams _i16 Ind...

Page 43: ... system files sys cert ca der CA for the server authentication sys cert client der Optional if server requests client authentication sys cert private key Optional if server requests client authentication An example of adding an enterprise profile follows SlWlanSecParams_t SecParams SlWlanSecParamsExt_t SecExtParams _i16 Index SecParams Type SL_WLAN_SEC_TYPE_WPA_ENT SecParams Key 123456789 SecParam...

Page 44: ...successful and includes the following information SSID SSID length BSSID Disconnect reason code Errors are indicated by the return value of the API Each error code is unique Table 4 3 lists common errors that require user action a complete list of errors is under the error h file in the host driver Table 4 3 Common Errors Error Value Comments SL_ERROR_ROLE_STA_ERR 4107 Initialization failure in ST...

Page 45: ...fic settings and modes of operation are unique for AP mode 4 4 2 Configurations and Settings The SimpleLink Wi Fi device AP configuration is done by using the host driver API Several configurations exist for each specific use case Some of the configurations are persistent according to the system persistent configuration and some are persistent and nonpersistent as specified in each configuration s...

Page 46: ... sl_WlanSet SL_WLAN_CFG_AP_ID SL_WLAN_AP_OPT_SSID strlen Ssid Ssid if Status error Hidden SSID The device can be configured and not broadcast the SSID inside the Beacon frame This configuration is disabled by default Example _i16 Status _u8 hidden TRUE Status sl_WlanSet SL_WLAN_CFG_AP_ID SL_WLAN_AP_OPT_HIDDEN_SSID 1 _u8 hidden if Status error Set Country Code Regulatory Domain Set the country code...

Page 47: ...s not supplied and when using a secured network the password must be set Example _i16 Status _u8 password 123456789 _u16 len strlen password Status sl_WlanSet SL_WLAN_CFG_AP_ID SL_WLAN_AP_OPT_PASSWORD len _u8 password if Status error Maximum Stations Connected The SimpleLink Wi Fi device lets users configure the value of the maximum connected stations allowed The available range is from one to fou...

Page 48: ...ength 0 Example _i16 Status SlWlanSetInfoElement_t InfoEle InfoEle Index Index Index of the info element range 0 SL_WLAN_MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED InfoEle Role Role SL_WLAN_INFO_ELEMENT_AP_ROLE 0 or SL_WLAN_INFO_ELEMENT_P2P_GO_ROLE 1 InfoEle IE Id Id Info element ID if SL_WLAN_INFO_ELEMENT_DEFAULT_ID 0 is set ID will be set to 221 Organization unique ID If all 3 bytes are zero it will be...

Page 49: ...be done by the MAC address or by the index of the entry Set Black List Mode The SimpleLink Wi Fi device allows enabling or disabling the black list mode Example _i16 Status _u8 access_list_mode SL_WLAN_AP_ACCESS_LIST_MODE_DENY_LIST Status sl_WlanSet SL_WLAN_CFG_AP_ID SL_WLAN_AP_ACCESS_LIST_MODE sizeof access_list_mode _u8 access_list_mode if Status error Add MAC to the Black List Add a station to ...

Page 50: ...acted from the returned total length divided by the address size Example _i16 Status _u8 aclist_mac SL_WLAN_MAX_ACCESS_LIST_STATIONS MAC_LEN unsigned char aclist_num_entries unsigned short config_opt unsigned short len int actual_aclist_num_entries unsigned short start_aclist_index unsigned short aclist_info_len int i start_aclist_index 0 aclist_info_len 2 MAC_LEN Status sl_WlanGet SL_WLAN_CFG_AP_...

Page 51: ... users manage the connected stations by using host commands Users can enable the device to view the connected stations and disconnect stations according to their MAC address 4 4 4 1 Get Connected Stations The SimpleLink Wi Fi device lets users get the current number of connected stations and get the full list of connected stations Example _i16 Status _u8 NumConnectedStations _u16 ValueLen sizeof _...

Page 52: ...ENT_STA_REMOVED Indicates connection is successfully completed and includes the following information MAC address SL_NETAPP_EVENT_IPV4_ACQUIRED Indicates connection is successfully completed and includes the following information IPv4 address Default Gateway address DNS address Errors are indicated by the return value of the API Each error code is unique Table 4 5 lists common errors that require ...

Page 53: ...ite requests P2P Connect Disconnect Connect transition also between different modes for example GO CL GO P2P Client Legacy PS and NoA support Separate IP Configuration for P2P mode Separate Net Applications configuration on top of Wi Fi Direct CL GO mode 4 5 3 Configurations and Settings The SimpleLink Wi Fi device Wi Fi Direct settings are configured by using the host driver API which controls th...

Page 54: ...figuration The network configuration for Wi Fi Direct mode is similar to the STA and AP modes For CLIENT use STA network configuration parameters and for GO use AP network configuration parameters Persistent CL This configuration is persistent according to the system persistent configuration GO This configuration is persistent regardless of the system persistent configuration To change the default...

Page 55: ...Set Listen and Operational Channels The listen channel is used for the discovery state and the value can be 1 6 or 11 The device stays in this channel when waiting for Wi Fi Direct probes requests The operation channel is only used by the GO device The GO device moves to this channel after the negotiation phase The default listen channel is randomly assigned between channels 1 6 or 11 This configu...

Page 56: ...e box because no negotiation synchronization must be done NOTE This configuration is persistent according to the system persistent configuration Example _i16 Status Status sl_WlanPolicySet SL_WLAN_POLICY_P2P SL_WLAN_P2P_POLICY SL_WLAN_P2P_ROLE_NEGOTIATE SL_WLAN_P2P_NEG_INITIATOR_RAND_BACKOFF NULL 0 if Status error 4 5 3 3 Configure Connection Policy This policy is used for automatic connection The...

Page 57: ...Direct find process and to discover remote Wi Fi Direct peers This process is done by setting a scan policy for Wi Fi Direct mode NOTE Setting the scan policy should be done while the device is in Wi Fi Direct mode Wi Fi Direct discovery is performed as a part of any connection but it can be activated using SCAN_POLICY as well This configuration is not persistent Example _u32 intervalInSeconds 20 ...

Page 58: ... pin code to its remote peer Define SL_WLAN_SEC_TYPE_P2P_PIN_KEYPAD These parameters influence the negotiation method and are supplied during the manual connection API command that comes from the host or by setting the profile for automatic connection The negotiation method is performed by the device without user interference NOTE If no pin code is entered in the display side the NWP auto generate...

Page 59: ...files The purpose of profile configuration is to make an automatic Wi Fi Direct connection after reset or after disconnection from the remote peer device The add profile command stores the Wi Fi Direct remote device parameters in flash as a new profile along with profile priority These profiles are similar to the STA mode profiles and have the same automatic connection behavior The connection is d...

Page 60: ...Len 0 strcpy remote_p2p_device Remote_GO_Device_XX Status sl_WlanProfileAdd remote_p2p_device strlen remote_p2p_device bssidEmpty SecParams NULL 7 0 if Status error restart the device Status sl_Stop 100 if Status error Role sl_Start NULL NULL NULL 4 5 5 Events and Errors The host can receive indication of specific states through events or errors Asynchronous events can be sent to the host at any g...

Page 61: ...ct device was found during the scan and it contains the remote device parameters Device name Device name length Device MAC address WPS Method SL_WLAN_EVENT_P2P_REQUEST Indicates that a negotiation request was received from a Wi Fi Direct remote device and it contains the remote device parameters Device name Device name length Device MAC address WPS Method SL_WLAN_EVENT_P2P_CONNECTFAIL This event i...

Page 62: ...Service discovery is not supported GO NOA is not supported No provisioning support for Wi Fi Direct mode Autonomous group is not supported P2P Group Owner mode supports single peer client connected Connection search is infinite meaning if the remote device is not found the device keeps searching for it 4 6 WLAN Security The SimpleLink Wi Fi device supports a secured connection to the AP A secured ...

Page 63: ...er to the Wi Fi Direct section Wi Fi Direct An example of adding a WPA2 secured profile SlWlanSecParams_t SecParams _i16 Index SecParams Type SL_WLAN_SEC_TYPE_WPA_WPA2 SecParams Key SEC_SSID_KEY SecParams KeyLen strlen SEC_SSID_KEY Index sl_WlanProfileAdd _i8 SEC_SSID_NAME strlen SEC_SSID_NAME 0 secParams 0 7 0 4 6 2 Enterprise Security The SimpleLink Wi Fi device supports Wi Fi enterprise connect...

Page 64: ...te key sys cert private key Manual enterprise connection and preferred network enterprise connection both include the same security information needed to complete enterprise connection The following information is required according to the server demands User Enterprise identity name Maximum length is 64 bytes Anonymous user Anonymous EAP identity Maximum length is 64 bytes EAP method defines the ...

Page 65: ...so enters the provisioning process by calling the sl_WlanConnect API with WPS parameters If the connection successfully completes a profile with the network name and security parameters is automatically added Personal Identification Number PIN Enter the PIN code generated by the host using the GUI of the AP The AP enters the WPS provisioning process for 2 minutes During this period the SimpleLink ...

Page 66: ...le or disable the scan policy sl_WlanPolicySet should be called with enable or disable parameter and a desired scan interval The interval value is in seconds An example of setting a scan policy with a hidden SSID scan and an interval of 20 seconds _u32 intervalInSeconds 20 _i16 Status Status sl_WlanPolicySet SL_WLAN_POLICY_SCAN SL_WLAN_SCAN_POLICY 1 1 _u8 intervalInSeconds sizeof intervalInSeconds...

Page 67: ... use existing results in the table before it starts a new scan but the table is changed during the connection process If more than one network has the same SSID but different BSSID each BSSID is stored in a different entry When the scan policy is enabled during the connection scan the scan policy is activated only after the connection scan is done after a successful connection disconnect command c...

Page 68: ...Exit from Reset Exit from Hibernate TX Power Change Calibration Assessment Restore to Factory Defaults and Image Normal Calibrate Calibrate No calibration Calibrate on next power hibernate cycle Until the next power cycle the power change is ignored Calibrate if needed subset calibration no peak current Calibration data is deleted Calibrate on next power hibernate cycle Triggered Calibrate No cali...

Page 69: ...rch 2017 Network Addresses Topic Page 5 1 Introduction 70 5 2 Key Features 70 5 3 Addressing 70 5 3 1 IPv4 Addresses 71 5 3 2 IPv6 Addresses 72 5 3 3 DNS Addresses 73 5 4 DHCPv4 client 73 5 4 1 Modes 73 5 4 2 Address Release 74 5 5 DHCPv4 Server 75 5 5 1 Enable and Disable the DHCP Server 75 5 5 2 Set DHCP Server Parameters 75 5 6 DNS Server 76 5 7 Errors and Asynchronous Events 76 ...

Page 70: ...ltaneously IPv4 is enabled by default in all Wi Fi modes STA AP and Wi Fi Direct IPv6 is supported only in STA mode disabled by default and can be enabled if needed 5 2 Key Features Table 5 1 describes the major features of this network stack Table 5 1 Key Features Key Features Description IP protocols IPv4 IPv6 IP addressing LLA DHCPv4 DHCPv6 static stateless Cross layer DAD NDP ARP ICMPv4 ICMPv6...

Page 71: ...time can be configured NOTE LLA allows communicating with devices on the local network only The LLA IP address range is from 169 254 1 0 to 169 254 254 255 The default gateway and DNS address are not configured Example _i16 Status Status sl_NetCfgSet SL_NETCFG_IPV4_STA_ADDR_MODE SL_NETCFG_ADDR_DHCP_LLA 0 0 if Status error Stateful DHCPv4 Only In this mode the device tries to acquire the IPv4 addre...

Page 72: ...n the local link When DAD failure occurs this procedure continues with random numbers on the least significant 64 bits Example _i16 Status Status sl_NetCfgSet SL_NETCFG_IPV6_ADDR_LOCAL SL_NETCFG_ADDR_STATELESS 0 0 if Status error Stateful DHCPv6 IPv6 LLA is acquired from the DHCPv6 server The DAD algorithm is used to verify that the address is unique on the local link When DAD failure occurs state...

Page 73: ...t up to two DNS servers In DHCP mode the SimpleLink device can receive up to two DNS server addresses The host application can temporarily overwrite the second address However this address is effective until the next IP acquire In static address mode the host application can configure two DNS server addresses The first address is persistent and the second address is effective until the next IP acq...

Page 74: ...E SL_NETCFG_ADDR_FAST_RENEW_MODE_NO_WAIT_ACK 0 0 if Status error Full DHCP Process The entire DHCP sequence is processed with every connection to the network Example _i16 Status Status sl_NetCfgSet SL_NETCFG_IPV4_STA_ADDR_MODE SL_NETCFG_ADDR_DISABLE_FAST_RENEW 0 0 if Status error Figure 5 1 shows the differences between the modes Figure 5 1 DHCPv4 IP Acquisition Modes 5 4 2 Address Release By defa...

Page 75: ...ddress 10 123 45 1 IP range 10 123 45 2 to 10 123 45 254 Lease time 86 400 seconds 32 Address Maximum lease addresses 5 5 1 Enable and Disable the DHCP Server The SimpleLink device lets users enable or disable the DHCP server In AP mode the DHCP server is enabled by default This configuration is persistent according to the system persistent configuration An example of enabling the DHCP server _i16...

Page 76: ...f Status error 5 6 DNS Server The SimpleLink device has an internal DNS server which runs in AP mode and Wi Fi Direct mode GO The DNS server is enabled by default and can be disabled The DNS server resolves the SimpleLink device IPv4 address The default domain name is mysimplelink and it can be configured Example _i16 Status Status sl_NetAppStop SL_NETAPP_DNS_SERVER_ID Stop DNS server if Status er...

Page 77: ..._IP_COL LISION IPv4 address conflict two stations connected one station acquired IPv4 address by the SimpleLink DHCP server and the second station has static IPv4 address with the same IP address Event includes IPv4 address and two MAC addresses DHCPv4 server is not supported DHCPv4 server is enabled default SL_NETAPP_EVENT_IPV6_L OST Global or Local acquired IPv6 address is no longer available Ev...

Page 78: ...Addresses NOTE On the SL_NETAPP_EVENT_IPV4_LOST and SL_NETAPP_EVENT_IPV6_LOST events TI highly recommends closing the relevant sockets On the SL_NETAPP_EVENT_IPV4_ACQUIRED or SL_NETAPP_EVENT_IPV4_ACQUIRED events if the new IP is different from the previous IP TI highly recommends closing the relevant sockets and opening new sockets before any transmit and receive occurs ...

Page 79: ...Chapter 6 SWRU455A February 2017 Revised March 2017 Socket Topic Page 6 1 Introduction 80 6 2 Key Features 80 6 3 Socket Types 80 6 4 BSD API 81 6 5 Socket Working Flow 82 6 5 1 TCP 82 6 5 2 UDP 86 6 5 3 RAW 88 6 6 DNS 90 6 7 Operation Modes 91 6 7 1 Nonblocking Mode 91 6 7 2 Trigger Mode 92 6 8 IP Fragmentation 95 6 9 Errors 95 ...

Page 80: ...AF_INET IPv4 SL_AF_INET6 IPv6 SL_AF_RF transceiver SL_AF_PACKET Connection Types Client Server Modes Blocking Non blocking Trigger Dual Stack Mode IPv6 server allows IPv4 client connections UDP Packet Boundary Enable and disable disable by default Select Select on receive accept and connect GetHostByName Retrieve the IPv4 IPv6 address according to the host name Multicast Up to eight Multicast sock...

Page 81: ...eads data On UDP connect API which sets the default address must be called before sl_Send write read Not supported sendto recvfrom sl_SendTo sl_RecvFrom Both UDP Writes reads data to from a UDP socket close sl_Close Both Both Causes the system to release resources allocated to a socket In case of TCP the connection is terminated select sl_Select Both Both Select allows a program to monitor multipl...

Page 82: ...s require establishing a connection between the two entities before any data exchange While the connection is maintained data integrity and the order are ensured Programmers should choose between connection oriented transport protocol and connectionless transport protocol according to the requirements of their applications For example VoIP applications which are sensitive to delays may require the...

Page 83: ...CP socket Use family type SL_AF_INET for IPv4 and SL_AF_INET6 for IPv6 2 Bind the source port This step is optional for the client socket If the sl_Bind API is not called the SimpleLink device internally binds a random source port Binding the port is performed in the same way a server socket binds a port see the following example 3 Initiate a connection to the server The TCP IPv6 client can also c...

Page 84: ...lic socket of the server 2 Bind the public port of the server The host application must set a specific port for the server to allow clients to connect 3 Listen This stage marks the socket as a server socket Here an additional socket is allocated for this specific server socket to reserve a socket for the next client connection from this point the server socket is ready to accept new connections ev...

Page 85: ...a keep alive message is sent This option can be disabled by calling sl_SetSockOpt with the option SL_SO_KEEPALIVE The keep alive time out is also configurable using the option SL_SO_KEEPALIVETIME The default keep alive time out of a new socket is 5 minutes The value is set in seconds An example of disabling the keep alive command _i16 Status SlSockKeepalive_t enableOption enableOption KeepaliveEna...

Page 86: ...nitiate data exchange or wait for reception of data In most applications one side waits for data reception and one side initiates the data exchange The side that waits for data reception is related as a server and the side that initiates the data exchange is related as a client Figure 6 2 shows these two methods Figure 6 2 UDP Socket Flow 1 Open the UDP socket Use family type SL_AF_INET for IPv4 u...

Page 87: ...5001 Addr sin_addr s_addr sl_Htonl SL_IPV4_VAL 192 168 1 31 Status sl_SendTo Sd SendBuf strlen SendBuf 0 SlSockAddr_t Addr sizeof SlSockAddr_t if strlen SendBuf Status error AddrSize sizeof SlSockAddrIn_t Status sl_RecvFrom Sd RecvBuf 1460 0 SlSockAddr_t Addr AddrSize if 0 Status error Status sl_Close Sd if Status error 6 5 2 1 Multicast IPv4 and IPv6 multicasts allow for one to many communication...

Page 88: ...p imr_multiaddr s_addr sl_Htonl SL_IPV4_VAL 224 0 1 200 MulticastIp imr_interface s_addr SL_INADDR_ANY Status sl_SetSockOpt Sd SL_IPPROTO_IP SL_IP_DROP_MEMBERSHIP char MulticastIp sizeof MulticastIp if Status error 6 5 2 2 Packet Boundary By default the Rx boundary is kept When the host application reads only a part of the data the rest is dropped The host application can disable the Rx boundary b...

Page 89: ...which include the network header When opening a RAW socket with UDP TCP protocol TCP UDP packets are forwarded directly to the RAW socket and any other UDP TCP sockets are useless Calling sl_SetSockOpt with the option SL_IP_HDRINCL must contain an IP header IPv4 checksum is calculated and set by the SimpleLink device The received packet includes the IP header This socket type is not supported for ...

Page 90: ...quest several times and with every retry the time out increases The number of retries and time out parameters are configurable The command sl_gethostbyName is a blocking command so if failure occurs it may take some time to return An example of the host application setting sl_gethostbyName parameters _i16 Status SlNetAppDnsClientTime_t Time Time MaxResponseTime 2000 Max DNS retry timeout DNS reque...

Page 91: ...ailable try to send again Not supported UDP RAW sl_Accept TCP Blocked until client connects Supported SL_ERROR_BSD_EAGAIN error code means no client connection try to accept again Not supported sl_Select TCP Blocked until one or more registered sockets become ready Supported Supported UDP RAW 6 7 1 Nonblocking Mode In nonblocking mode operations return immediately even if the data does not exist o...

Page 92: ...TIMEO _u8 TimeVal sizeof TimeVal Enable receive timeout if Status error 6 7 2 Trigger Mode The trigger mode enables host applications to be triggered by the SimpleLink device when network activity is detected without using the blocking mode or polling the socket This mode is useful when the power consumption is extremely sensitive and the host processor is able to enter a deep sleep recover fast a...

Page 93: ... trigger mode for accept on a server socket Figure 6 3 Trigger Mode Flow An example of select trigger event handle void SimpleLinkSocketTriggerEventHandler SlSockTriggerEvent_t pSlTriggerEvent switch pSlTriggerEvent Id case SL_SOCKET_TRIGGER_EVENT_SELECT Notify main task trigger event arrive wake up and call select again break default break 6 7 2 1 Trigger Mode for Accept 1 Open the TCP Server Soc...

Page 94: ... host now can enter deep sleep until triggered by the select event 3 After the SL_SOCKET_TRIGGER_EVENT_SELECT event is received the host wakes up and calls sl_Select to identify which socket has network activity Call select again since the trigger event has arrived see handler example above SL_SOCKET_FD_ZERO rxSet SL_SOCKET_FD_SET Sd rxSet Status sl_Select nfds rxSet NULL NULL timeVal if SL_SOCKET...

Page 95: ...g data the SimpleLink device supports reassembling of the received IP fragmented packets for both IPv4 and IPv6 When the host application sends data which is bigger than the MTU size the SimpleLink device splits this data into packets compliant with the MTU size without using IP fragmentation For TCP the size has no effect because TCP ensures byte ordering However for UDP the size may cause packet...

Page 96: ...error SL_ERROR_BSD_INEXE 8 Socket command in execution SL_ERROR_BSD_EBADF 9 Bad file number SL_ERROR_BSD_ENSOCK 10 The system limit on the total number of open sockets has been reached SL_ERROR_BSD_EAGAIN 11 Try again SL_ERROR_BSD_ECLOSE 15 Close socket operation failed to transmit all queued packets SL_ERROR_BSD_EINVAL 22 Invalid argument SL_ERROR_BSD_EPROTOTYPE 91 Protocol wrong type for socket ...

Page 97: ... 7 5 Options and Features Use 99 7 5 1 Set SSL Version 99 7 5 2 Set Cipher Suites 100 7 5 3 Set Certificates Root CA Private Key and DH Files 100 7 5 4 Disable the Use of the Trusted Root Certificate Catalog 101 7 5 5 Set ALPN List 102 7 5 6 Set Domain Name for Verification 102 7 5 7 Upgrade Nonsecured Socket to Secured 102 7 5 8 Get Connection Parameters 104 7 6 Supported Cryptographic Algorithms...

Page 98: ... client mode N A Domain verification Support domain verification in client mode to help against MITM attack X Client verification Support client authentication both in server mode to authenticate a client that is trying to connect to the server and in client mode when a remote server is asking for client certificate N A Time and Date verification Support time and date verification of server client...

Page 99: ... root certificate catalog gives the user the confidence that the CA is trusted and known When a root CA does not exist in the catalog the sl_Connect command returns the error SL_ERROR_BSD_ESECUNKNOWNROOTCA which means the connection is successfully done but the root CA used to verify the server chain of trust is unknown When a revoked certificate is received during the SSL connection all of the ce...

Page 100: ...HE_RSA_WITH_AES_128_GCM_SHA256 SL_SEC_MASK_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 SL_SEC_MASK_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 SL_SEC_MASK_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 SL_SEC_MASK_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 SL_...

Page 101: ...list The file must be configured If not configured error SL_ERROR_BSD_ESECBADCERTFILE occurs Private Key Format PEM DER RSA or ECDSA key Client private key if server requires client auth The user must program cert with this file or else connection fails with SL_ERROR_BSD_ESECBADCERTFILE The private key of the server Must be configured If not configured error SL_ERROR_BSD_ESECBADPRIVATEFI LE is rai...

Page 102: ...ct the traffic to their server Besides the full chain verification TI recommends checking the domain name as well This option is only available for client mode This option should be called before sl_Connect or sl_Listen Example _i16 status Status sl_SetSockOpt SockID SL_SOL_SOCKET _SO_SECURE_DOMAIN_NAME_VERIFICATION www google com strlen www google com 7 5 7 Upgrade Nonsecured Socket to Secured Wh...

Page 103: ...kSecureMethod_t method _i32 sd len dummyVar _i16 status _u32 DestinationIP SL_IPV4_VAL 192 168 1 31 An SMTP server s IP _i16 AddrSize _i8 buf 100 Addr sin_family SL_AF_INET Addr sin_port sl_Htons 587 Addr sin_addr s_addr sl_Htonl DestinationIP AddrSize sizeof SlSockAddrIn_t Open SSL socket sd sl_Socket SL_AF_INET SL_SOCK_STREAM 0 if sd 0 error method SecureMethod SL_SO_SEC_METHOD_SSLv3_TLSV1_2 sta...

Page 104: ...r async event and handle it if an error occurs status sl_Close sd if status 0 error 7 5 8 Get Connection Parameters Get the connection parameters after a successful handshake completes The received parameters include server certificate parameters chosen SSL version and cipher suite and more Due to a large amount of data only 16 bytes of the issuer and subject common name are kept The XORed hash of...

Page 105: ...umbers 7 7 Common Errors and Asynchronous Events In most cases the socket API returns the error code as a return value of the API In other cases where the error occurs during a live process the error or notification returns in a socket asynchronous event 7 7 1 Using Socket Asynchronous Events in SSL SSL asynchronous events which provide information about the connection SL_OTHER_SIDE_CLOSE_SSL_DATA...

Page 106: ...LE The file is not valid Check if it is a valid DER PEM CA file The file is not valid Check if it is a valid DER PEM CA file SL_ERROR_BSD_ESECT00MANYSSLO PENED Exceed maximum SSL connections The SimpleLink supports only six SSL connected sockets Exceed maximum SSL connections The SimpleLink supports only 6 SSL connected sockets SL_ERROR_BSD_ESECDATEERROR Connected but with error verifying time and...

Page 107: ...107 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Secure Socket Chapter 8 SWRU455A February 2017 Revised March 2017 File System ...

Page 108: ...www ti com 108 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated File System ...

Page 109: ...a File 120 8 8 File System Helper Functions 120 8 8 1 Get File Information 120 8 8 2 Get Storage Information 121 8 8 3 Get List of Files 121 8 9 Bundle Protection 121 8 9 1 Bundle File States 122 8 9 2 Bundle States 123 8 9 3 Commit a Bundle 124 8 9 4 Rollback a Bundle 124 8 9 5 Retrieve the Bundle and Files State 124 8 9 6 CC3220 Bundle Aspects 124 8 10 File Commit Feature 125 8 10 1 File Commit ...

Page 110: ...tored files using a verification method between the current file state and the known good baseline This comparison method involves calculating a known cryptographic checksum of the original baseline of the file and comparing it with the calculated checksum of the current state of the file The SimpleLink internal process for software tamper detection monitors the use of the file and detects attempt...

Page 111: ... yet formatted results in the error SL_ERROR_FS_NO_DEVICE_IS_LOADED Some of the file system functionality is only available for secure devices Table 8 2 describes the different functionality between secure and nonsecure devices Table 8 2 Secure Files CC3220S CC3220SF CC3120 CC3220R Create encrypt programming image Setting alarms threshold Store the CC3220 host app as secure Write secure user files...

Page 112: ... char DeviceFileName SL_FS_CREATE SL_FS_CREATE_SECURE SL_FS_CREATE_NOSIGNATURE SL_FS_CREATE_MAX_SIZE MaxSize MasterToken if FileHdl 0 error abort sl_FsClose FileHdl 0 A 1 2 Open Create Creates a new file the open function returns an error if a file with the same name already exists Example _i32 FileHdl unsigned char DeviceFileName 180 _u32 MaxSize MasterToken FileHdl sl_FsOpen unsigned char Device...

Page 113: ... size When creating a file the storage for the file is allocated according the requested maximum file size For an existing file the maximum file size cannot be changed thus when defining the maximum size of a file the future growth of the file should be considered Creating a file with the FAILSAFE flag creates the file with a copy thus the allocated storage size for the file is doubled Because the...

Page 114: ...d for the file operation read write delete To prevent a situation in which the host application was powered off before the received token is kept use one of the following methods Create the file with the SL_FS_CREATE_VENDOR_TOKEN flag and set the required token in this way the token is kept in the host application code Create the file with the SL_FS_CREATE_PUBLIC_WRITE and SL_FS_CREATE_PUBLIC_READ...

Page 115: ...en returns an error The following is a partial list of errors that might be returned by the creation function SL_ERROR_FS_FILE_IS_ALREADY_OPENED The file is already opened for read or write SL_ERROR_FS_INVALID_TOKEN_SECURITY_ALERT For a secure file the input token is not valid this triggers security alerts if the device is secured SL_ERROR_FS_FILE_NOT_EXISTS The file does not exist The following p...

Page 116: ... described in the file commit rollback function A file that was not closed or aborted appears in the file system its storage is allocated but it might have no valid copy Such files can be observed by the SL_FS_INFO_NOT_VALID flag and the file flags can be retrieved by the sl_FsGetFileList or sl_FsGetInfo functions For a file opened with the FAILSAFE flag that has a valid copy from a previous write...

Page 117: ...ted The signature is a standard digital signature the algorithm first calculates the SHA of the file content and then the SHA result is encrypted using the private key The supported signature types are PKCS 1 RSA 256 or 128 bytes SHA_1 the signature length is 256 or 128 bytes The signature for the file can be created by standard tools or by the UniFlash Image Creator tool using the private key 4 T...

Page 118: ...FS_FILE_NOT_EXISTS The file does not exist SL_ERROR_FS_DEVICE_NOT_SECURED Reading the secure file can only be done in a secure device type SL_ERROR_FS_WRONG_SIGNATURE_SECURITY_ALERT For secure signed files each time the file is opened for read the file integrity is tested If the test is failed an error and a security alert is raised Example _i32 FileHdl _u8 DeviceFileName 180 _u32 MasterToken File...

Page 119: ...udden shutdown each file opened for read that is not closed is treated as if it is aborted The following is a partial list of errors that might be returned by the close after read function SL_ERROR_FS_INVALID_HANDLE The input file handle is illegal Close file example _i32 FileHdl _i16 Status const _u32 SignatureLen _u8 pSignature pCeritificateFileName pCeritificateFileName 0 pSignature 0 Signature...

Page 120: ...t might be returned by the rename function SL_ERROR_FS_FILE_IS_ALREADY_OPENED File that is opened cannot be renamed The file is expected to be closed or aborted to be renamed SL_ERROR_FS_FILE_NAME_RESERVED System file cannot be renamed and file cannot be renamed to a system filename SL_ERROR_FS_FILE_NAME_EXIST Renaming a file to a filename that already exists results in an error Example _i32 Statu...

Page 121: ...nd observes how many blocks subsector 4096 bytes each file occupies on the SFLASH This function is an iterative function the host retrieves an iterator that can be used to retrieve the next bulk of files Example _i32 NumOfEntriesOrError 1 _i32 Index 1 slGetfileList_t File COUNT _i32 i _i32 Status 0 while NumOfEntriesOrError 0 NumOfEntriesOrError sl_FsGetFileList Index COUNT _u8 SL_FS_MAX_FILE_NAME...

Page 122: ...s part of a bundle the file should be opened for write with the bundle flag SL_FS_WRITE_BUNDLE_FILE Open a new file as part of a bundle that has no pre conditions To open an existing file as part of a bundle the file should fulfill the following conditions The file was created with the FAILSAFE flag The file has a valid copy meaning that the file was successfully written at least once The device m...

Page 123: ...tions are fulfilled sl_Stop x 0 and sl_Start is called All the bundle files are in the PENDING_BUNDLE_COMMIT state Transition from this state to the STOPPED state is executed if the following condition is fulfilled sl_Start is called without calling sl_Stop x 0 In this scenario the bundle is automatically rolled back by the device or the rollback function was invoked by the host 8 9 2 3 PENDING_CO...

Page 124: ...l SL_FS_CTL_GET_STORAGE_INFO To retrieve the bundle state of a specific file use the sl_FsGetFileList function or the sl_FsGetInfo function 8 9 6 CC3220 Bundle Aspects The M4 program can be created as a bundle file When the bundle is in the PENDING_COMMIT state hardware WDT is automatically activated if configured in the mcubootinfo bin If the WDT expires automatic reboot is triggered and the bund...

Page 125: ...ed without the commit flag To open a file with the commit flag the file should fulfill the following requirements The file was created with the FAILSAFE flag The file has a valid copy meaning that the file was successfully written at least once The following is a common file commit work flow 1 Create a file write and close 2 Open the file for write with the commit flag SL_FS_WRITE_MUST_COMMIT writ...

Page 126: ...d the host program for the CC3220 device The process of creating the programming image is an offline process For creating the programming image the SimpleLink Wi Fi package contains the Image Creator tool a web application it also has CLI interface which lets the user easily create the programming image and supports programming the device The UniFlash Image Creator tool creates three types of file...

Page 127: ...e used by the host interface is created by the UniFlash Image Creator tool For non secure programming use the file programming ucf For secure programming use the file programming encrypt ucf _i32 Status _u8 DataBuf 1000 _u16 Len _u8 Key 16 Status sl_FsProgram const _u8 DataBuf Len Key 0 if Status 0 error For programming the function receives the ucf file and the image key or null key The device st...

Page 128: ...covery mechanism in which the level of recovery can be set by the Image Creator tool it is kept as part of the programming image Three levels of recovery are supported None no recovery level is supported Restore to factory default Restore to factory image Restore to factory image using SOP but only if the restored to factory image is enabled If one of the recovery methods is enabled the programmin...

Page 129: ...et the SOP to 000 b POR the device and the restore to factory is completed successfully 8 13 1 Restore to Factory by the Host To trigger the restore the factory image by SOP the following steps are required 1 From the host invoke the restore function as in the following example The function is synchronous it returns when the process is finished 2 Hibernate reset the device CC3120 sl_Stop sl_Start ...

Page 130: ...dditional hibernate reset when finished 5 The device sends an Init complete event to the host 8 13 2 2 CC3220 R S F The recommended method for the CC3220 device is to invoke the restore to factory by the host because restore to factory by the SOP requires POR see Step 1 and it is not a good practice to reset the device while the host is still running The following steps are required 1 Set the SOP ...

Page 131: ...etecting the following tamper events File system data integrity violation System configuration files integrity violation Implicit Alerts The device is locked when the alert counter crosses the alerts threshold Implicit alerts are created when detecting the following tamper events Trying to make an operation on a secure file without a valid token Detecting an integrity violation when a secure authe...

Page 132: ...for each file the file system allocates a header of 500 bytes The file system does not handle fragmentation sometimes changing the order in which the files are created may result in more space Also changing the order of user file creation in the programming image may affect the SFLASH usage To reduce the SFLASH endurance create a file which requires frequent updates with the FAILSAFE flag the numb...

Page 133: ...locks service pack Host size blocks for the CC3220 device storage for the host program Blocks for the vendor files Temporary storage for the image depending on the image size rounded to 32 blocks NOTE The size of the image depends on the size of the stored files 8 15 5 Storage Usage Information The required size for the programming image can be observed in the UniFlash Image Creator log The Image ...

Page 134: ...134 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated File System Chapter 9 SWRU455A February 2017 Revised March 2017 HTTP Server ...

Page 135: ...www ti com 135 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated HTTP Server ...

Page 136: ...6 9 5 Device Parameter Querying Through HTTP Device Tokens 146 9 5 1 Retrieving Tokens Through GET Request 147 9 5 2 Embedded Tokens 147 9 5 3 System Information 147 9 5 4 Version Information 148 9 5 5 Network Information 148 9 5 6 Ping Results 150 9 5 7 Connection Policy Status 150 9 5 8 Provisioning 151 9 5 9 Display Profile Information 151 9 5 10 P2P Information 151 9 5 11 Host Tokens 153 9 6 R...

Page 137: ...fly by the host Hard coded configuration pages permanently stored in the ROM of the device 9 1 1 Built in Configuration Pages These web pages are stored in the SimpleLink device ROM and allow for changing and reading many of its setting through a web interface commonly used in many routers and access points as shown in Figure 9 1 The pages are completely self contained and no host involvement is n...

Page 138: ...fe path on the file system The content is placed by the application either as part of the programming process or using the host application file system API NOTE The previously mentioned paths are used only to organize files on the file system and must not be part of a URL when linking to resources For example the URL of a file named example html which is placed at www user_directory example html w...

Page 139: ... every time a resource is served which lets users create pages with some dynamic content various parameters of the SimpleLink device without any involvement from the host as shown in Figure 9 5 Figure 9 5 Custom Pages With Device Tokens 9 1 3 2 Static Pages With Host Tokens Host tokens are similar to device tokens except that the substitution of each token is deferred to the host through an asynch...

Page 140: ...ynamic defer the request completely to the host using the mechanism described in Section 9 7 2 In this case the entire content of the response must be generated by the host on each request as seen in Figure 9 7 Figure 9 7 Host Application Interface 9 2 Key Features Table 9 1 lists the key features of the HTTP server Table 9 1 Key Features Feature Description HTTP Support version 1 0 single client ...

Page 141: ...D For the configuration to take effect the server must be restarted either by stopping and restarting the service or by restarting the entire network subsystem Table 9 2 describes the available configuration options Table 9 2 Configuration Options Option Name Function Notes Default Value SL_NETAPP_HTTP_PRIMARY_PORT_NUMB ER Port on which the server accepts new connections 80 SL_NETAPP_HTTP_PRIMARY_...

Page 142: ...g packet size __SL_P_T B Size of the ping payload in bytes from 1 to 1472 __SL_P_T B 1024 Packets to send __SL_P_T C Number of packets to send from 1 to 255 __SL_P_T C 4 For example the following request will send 4 ping packets each of size 1024 bytes to IP 10 123 45 2 POST api 1 netapp ping HTTP 1 1 Host mysimplelink net Content Type application x www form urlencoded __SL_P_T C 4 __SL_P_T B 1024...

Page 143: ...without DHCP Static POST api 1 netapp netcfg_ap HTTP 1 1 Host mysimplelink net Content Type application x www form urlencoded __SL_P_N P 10 10 10 10 __SL_P_N D Static 9 4 3 URN Configuration The device URN uniform resource name can be set by posting to api 1 netapp set_urn the parameters listed in Table 9 5 The maximum size of the URN is 33 characters not including the null terminator Table 9 5 UR...

Page 144: ...e Profiles Name code Description Example Delete profile __SL_P_PRR Delete the profile with the specified index such that 0 Index 9 __SL_P_PRR 2 A post to api 1 wlan profile_del_all deletes all profiles stored on the file system this includes all profiles and is not limited to those created through the HTTP interface Information on the existing profiles can be accessed using the __SL_G_PN1 to __SL_...

Page 145: ... Any Connect __SL_P_P G AnyP2P connect policy relevant for Wi Fi Direct only __SL_P_P G Enable Auto Provisioning __SL_P_P Q Auto provisioning policy __SL_P_P Q For example the following request enables auto connect and fast connect policies POST api 1 wlan policy_set HTTP 1 1 Host mysimplelink net Content Type application x www form urlencoded __SL_P_P E __SL_P_P F 9 4 8 Station Action When the de...

Page 146: ... form urlencoded __SL_P_C M 1 __SL_P_CRL 1 AP black list information can be accessed using the __SL_G_SR1 to __SL_G_CL8 tokens see Section 9 5 9 4 10 Date and Time The device time and date can be set by posting to api 1 wlan en_ap_scan set_time the parameters listed in Table 9 13 Table 9 13 Date and Time Name code Description Example Set date and time __SL_P_S J This parameter sets the time and da...

Page 147: ...em up time since the last reset in the following format 000 days 00 00 00 __SL_G_S B Device Name URN Returns device name __SL_G_DNP Device Name Returns device name MAC address as string if the default device name is set __SL_G_S C Domain Name Returns domain name __SL_G_S D Device Mode role Returns device role Values Station Access Point P2P __SL_G_S E Device Role Station Drop down menu select not ...

Page 148: ...eturns Checked else returns Not_Checked Used in the DHCP radio button __SL_G_N G STA IPv4 DHCP Enable State If DHCP is enabled returns Checked else returns Not_Checked Used in the DHCP radio button __SL_G_N L STA IPv4 LLA Enable State If LLA option is enabled returns Checked else returns Not_Checked __SL_G_N H STA IPv4 DNS Server String format xxx yyy zzz ttt __SL_G_LV6 STA IPv6 Enable If IPv6 int...

Page 149: ...curity Type Open If security type is open returns Checked else returns Not_Checked Used in the security type radio button check not checked __SL_G_W E Security Type WEP If security type is WEP returns Checked else returns Not_Checked Used in the security type radio button check not checked __SL_G_W F Security Type WPA If security type is WPA returns Checked else returns Not_Checked Used in the sec...

Page 150: ...s scan results one for each get request __SL_G_NW0 Always returns the first scan result and resets the internal pointer 9 5 6 Ping Results Table 9 17 lists the ping results tokens Table 9 17 Ping Results Tokens Token Name Value and Usage __SL_G_T A IP Address String format xxx yyy zzz ttt __SL_G_T B Packet Size __SL_G_T C Number of Pings __SL_G_T D Ping Results total sent Number of total pings sen...

Page 151: ... tokens Table 9 20 Display Profile Information Tokens Token Name Value and Usage __SL_G_PN1 Return profile 1 SSID SSID string __SL_G_PN2 Return profile 2 SSID __SL_G_PN3 Return profile 3 SSID __SL_G_PN4 Return profile 4 SSID __SL_G_PN5 Return profile 5 SSID __SL_G_PN6 Return profile 6 SSID __SL_G_PN7 Return profile 7 SSID __SL_G_PS1 Return profile 1 Security Status Returned values Open WEP WPA WPS...

Page 152: ...tional channel is 6 returns selected else returns not_selected Used for the drop down menu of the operational channel __SL_G_R Y Operational Channel 11 If current operational channel is 11 returns selected else returns not_selected Used for the drop down menu of the operational channel __SL_G_R L Negotiation Intent Value Returned values Group Owner Negotiate Client __SL_G_R M Role Group Owner If i...

Page 153: ...cording to its type and resource name 9 6 1 GET Request Search Order A GET request is processed according to the flow in Figure 9 8 Figure 9 8 GET Request Flow If a file is not found in the file system it is searched in the device ROM where the following files always exist index html netlist txt param_product_version txt param_device_name txt param_ip_address txt param_cfg_result txt Any request o...

Page 154: ...ped to a user function by user h The function receives two parameters and returns void A pointer to the request structure containing the parameters and type of the HTTP request and a pointer to the response structure which should be populated with the desired HTTP response The HTTP headers are transferred to the host as TLVs type length value in the metadata section of the request The HTTP message...

Page 155: ...SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_USER_AGENT User Agent SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_COOKIE Cookie SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_SET_COOKIE Set Cookie SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_UPGRADE Upgrade SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_REFERER Referer SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_ACCEPT Accept SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_CONTENT_ENCODING Content Encoding SL_...

Page 156: ...r Host 14 10 123 45 1 An example of how to find and extract the content of a specific TLV from the metadata buffer follows _i32 ExtractLengthFromMetaData _u8 pMetaDataStart _u16 MetaDataLen _u8 pTlv _u8 pEnd _u8 Type _u16 TlvLen pTlv pMetaDataStart pEnd pMetaDataStart MetaDataLen while pTlv pEnd Type pTlv Type is one byte pTlv TlvLen _u16 pTlv Length is two bytes pTlv 2 if Type SL_NETAPP_REQUEST_M...

Page 157: ...ource as a single chunk as part of the response from the handler the payload fields in the ResponseData structure or split it across multiple fragments Fragmentation must be used to transfer resources larger than 1500 bytes this is also the maximal size of a single fragment Without fragmentation the entire resource data is sent as part of the response from the handler With fragmentation the handle...

Page 158: ...sponseData pMetadata pMetadata pMetadata _u8 SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_CONTENT_TYPE pMetadata _u16 pMetadata _u16 strlen contentType pMetadata 2 memcpy pMetadata contentType strlen contentType pMetadata strlen contentType Write the content length TLV to buffer pMetadata SL_NETAPP_REQUEST_METADATA_TYPE_HTTP_CONTENT_LEN pMetadata _u16 pMetadata 2 pMetadata 2 _u16 pMetadata _u16 sizeof RES...

Page 159: ...pMetadata _u16 MetadataLen 0 const _u8 contentType text html _u8 Flags 0 _u16 TextLength metadataBuff _u8 malloc 128 pMetadata metadataBuff HTTP status is sent as part of the meta data pMetadata _u8 SL_NETAPP_REQUEST_METADATA_TYPE_STATUS pMetadata _u16 pMetadata _u16 2 pMetadata 2 _u16 pMetadata _u16 SL_NETAPP_HTTP_RESPONSE_200_OK pMetadata 2 Write the content type TLV to buffer pMetadata _u8 SL_N...

Page 160: ...he request type The user handler must parse the HTTP metadata extract the resource name and any other fields of interest and generate a response The host may choose to respond immediately by filling all response fields in the handler Alternatively the host can fill the status field to pending and return which means another part of the user application must complete the reception of the request usi...

Page 161: ... the sl_NetAppRecv API outside the handler The user may choose at what fragment size to pull the remaining payload from the device The last fragment indicates when the flags returned by the sl_NetAppRecv API no longer contain the continuation flag The same flow can be used if the response cannot be determined by the NetApp handler and must be delegated to another process In this case the handler m...

Page 162: ...g status and signals the user application to handle the remaining of the request It also parses the metadata in search for the content length field which represents the expected size of the payload and extracts it This field similar to all other metadata is not generated by the SimpleLink device but transferred as is and must be validated by the user void NetAppRequestHandler SlNetAppRequest_t pNe...

Page 163: ...pNetAppRequest requestData pPayload if RequestFlags SL_NETAPP_REQUEST_RESPONSE_FLAGS_CONTINUATION More fragments to follow pNetAppResponse Status SL_NETAPP_RESPONSE_PENDING Signal the user application to receive the rest SetEvent g_netAppRequestSyncObj The handle will be used to receive the rest send response gHandle pNetAppRequest Handle else pNetAppResponse Status SL_NETAPP_HTTP_RESPONSE_200_OK ...

Page 164: ...esponse cannot contain any payload only HTTP headers 9 8 Security 9 8 1 Authentication When authentication is enabled see Section 9 3 the client must provide a username and password before the HTTP server processes any requests Both user name and password are limited to 20 characters and both are case sensitive 9 8 1 1 HTTP Realm A realm in HTTP context is a group of resources protected by the sam...

Page 165: ...or redirecting connections to the secure primary port sl_NetAppSet SL_NETAPP_HTTP_SERVER_ID SL_NETAPP_HTTP_SECONDARY_PORT_NUMBER sizeof SecondaryPort SecondaryPort sl_NetAppSet SL_NETAPP_HTTP_SERVER_ID SL_NETAPP_HTTP_SECONDARY_PORT_ENABLE sizeof SecondaryPortEnable SecondaryPortEnable Restart HTTP server for new configuration to take effect sl_NetAppStop SL_NETAPP_HTTP_SERVER_ID sl_NetAppStart SL_...

Page 166: ... 2017 mDNS Topic Page 10 1 Introduction 167 10 2 Key Features 167 10 3 Configurations and Settings 167 10 4 Query 168 10 4 1 One Shot Query 168 10 4 2 Continuous Query 168 10 4 3 Mask Services 168 10 5 Get Service List 169 10 6 Advertisement 170 10 6 1 Registering mDNS Services 170 10 6 2 Unregistering mDNS Services 170 10 6 3 Advertisement Settings 171 10 7 Limitations 172 ...

Page 167: ... or continuous discovery The results are cached by the SimpleLink Wi Fi device and the application can retrieve the list of discovered devices and services The mDNS service is not power wise optimized therefore TI recommends turning this service off in power constrained systems This service is turned off automatically if the configured power mode is LSI with a sleep time greater than 2000 ms 10 2 ...

Page 168: ...y 0 SL_AF_INET addr Port TextLen pText if Status Error 10 4 2 Continuous Query In a continuous mDNS query mode the device keeps sending queries to the network according to a specific service name The queries are sent in IPv4 and IPv6 if enabled formats or both To see the complete list of responding services sl_NetAppGetServiceList must be called To stop the continuous query call the same API with ...

Page 169: ...ta stored in the cache The list is in a form of a service structure which can include full service parameters with text full service parameters or short service parameters port and IP only dedicated for hosts with memory limitations for different size of buffers The list size can store up to eight services and when a new service is discovered the oldest service entry is replaced The list is cleare...

Page 170: ...ICE Service is set for IPV6 interface only IPV6 should be enabled SL_NETAPP_MDNS_OPTION_UPDATE_TEXT Update text fields without reregistering the service SL_NETAPP_MDNS_OPTIONS_IS_NOT_PERSISTENT Set a nonpersistent service Example _i16 Status _u32 Options const signed char AddService 40 printer _ipp _tcp local Options SL_NETAPP_MDNS_OPTIONS_IS_NOT_PERSISTENT SL_NETAPP_MDNS_IPV4_ONLY_SERVICE Status ...

Page 171: ...to P increasing interval factor is K 2 the transmission shall be advertise P times wait T advertise P times wait 4 T advertise P time wait 16 T until max time reached configuration changed query issued Example _i16 Status SlNetAppServiceAdvertiseTimingParameters_t Timing Timing t 200 2 seconds Timing p 2 2 repetitions Timing k 2 Telescopic factor 2 Timing RetransInterval 0 Timing Maxinterval 0xFFF...

Page 172: ...Y_SERVICE SL_NETAPP_MDNS_OPTION_UPDATE_TEXT Status sl_NetAppMDNSRegisterService AddService sizeof AddService Printer 2 Size A3 size 8 strlen Printer 2 Size A3 size 8 4578 120 Options if Status Error 10 7 Limitations The maximum number of registered services is five or six if the internal web server is not running The size of the service total length should be smaller than 255 bytes The size of the...

Page 173: ...ersal 177 11 3 Examples of Filter Use 178 11 3 1 Example 1 178 11 3 2 Example 2 178 11 4 Filter Creation 179 11 4 1 Filter Type 179 11 4 2 Filter Flags 179 11 4 3 Rule Structure for Header Filters 180 11 4 4 Rule Structure for Combined Filters 184 11 4 5 Filter Trigger 184 11 4 6 Rx Filter Action 187 11 5 Managing Filters 189 11 5 1 Enable and Disable Filters 189 11 5 2 Get Filter Status 189 11 5 ...

Page 174: ...hey let the user simply define a set of filters that determine which of the received frames will be dropped by the SimpleLink Wi Fi device They also let the user configure filters that trigger asynchronous events to the host Operating the Rx filter with the event mechanism can reduce the power consumption and code size of the host MCU Using filters can also reduce the processing efforts of the Sim...

Page 175: ...ists between the received frame and a set of filters For each filter if a match is found the filter actions are executed If the actions do not include dropping the frame the processing of the frame continues normally If there is no match between the frame and any filter the processing of the frame continues normally Action execution If a match is found all the actions of the matched filter are exe...

Page 176: ...e the rule can be source port is equal to 23 Actions are the operations that execute if the rule is matched The outcome of the filter matching could be No Match Pass and Drop Figure 11 2 shows the Rx filter matching flow Figure 11 2 Rx Filter Match Flow Table 11 1 lists the possible triggers of a filter Table 11 1 Possible Triggers Trigger Type Possible Values Wi Fi Mode Station Station Connected ...

Page 177: ... combine several filters to identify a specific frame the division to filter layers optimizes the traversal processing For example three filters are required to detect a specific IP frame from a specific source MAC and a specific word in the payload Filter 1 Specific source of the MAC address Filter 2 The packet protocol type is IP Filter 3 The payload of the IP layer contains a specific word Filt...

Page 178: ... has the following requirements Receive only WLAN management beacon frames from all MAC addresses The following trees should be created Figure 11 3 Example 1 11 3 2 Example 2 The system has the following requirements Receive WLAN data broadcast frames only from two specific MAC addresses Do not receive WLAN unicast frames from a certain SRC_IP address range If a unicast frame is received from MAC ...

Page 179: ...ons Therefore TI recommends first creating each filter as disabled and then enabling all of them at once one enable command Stored filters are created once stored on the SFLASH and then loaded by the device as part of the device start up Creating a basic Rx filter requires a definition for three attributes trigger rule and actions This subsection describes these attributes and the additional param...

Page 180: ...ent Compare function During the packet processing the value of the frame field is compared with the value of the rule arguments For example Destination IP is equal to 123 44 55 66 means Field is destination IP Argument is 123 44 55 66 Compare function is equal Source MAC is different from 0x34567899 means Field is source MAC Argument is 0x34567899 Compare function is not equal Frame length is high...

Page 181: ..._FRAME_SUBTYPE SL_WLAN_RX_FILTER_HFIELD_BSSID SL_WLAN_RX_FILTER_HFIELD_MAC_SRC_ ADDR SL_WLAN_RX_FILTER_HFIELD_MAC_DST_ADDR SL_WLAN_RX_FILTER_HFIELD_FRAME_LENGTH SL_WLAN_RX_FILTER_HFIELD_ETHER_TYPE SL_WLAN_RX_FILTER_HFIELD_IP_VERSION SL_WLAN_RX_FILTER_HFIELD_IP_PROTOCOL SL_WLAN_RX_FILTER_HFIELD_IPV4_SRC_ADDR SL_WLAN_RX_FILTER_HFIELD_IPV4_DST_ADDR SL_WLAN_RX_FILTER_HFIELD_IPV6_SRC_ADRR SL_WLAN_RX_FI...

Page 182: ...x80 BEACON 0x90 ATIM 0xA0 DISASSOCIATION 0xB0 AUTHENTICATION 0xC0 DEAUTHENTICATION 0xD0 ACTION CTRL FRAMES 0x74 CONTROL WRAPPER 0x84 BLOCK ACK REQ 0x94 BLOCK ACK 0xA4 PS POLL 0xB4 RTS 0xC4 CTS 0xD4 ACK 0xE4 CF END 0xF4 CF END ACK DATA FRAMES 0x08 DATA 0x18 DATA CF ACK 0x28 DATA CF POLL 0x38 DATA CF ACK POLL 0x48 NO DATA FRAME 0x58 CF ACK 0x68 CF POLL 0x78 CF ACK POLL 0x88 QOS DATA 0x98 QOS DATA CF...

Page 183: ...T_DST Rule Args Value Port 4 1 65535 SL_WLAN_RX_FILTER_HFIELD_L1_ PAYLOAD_PATTERN Rule Args Value Pattern Offset 2 Rule Args Value Pattern Length 1 Rule Args Value Pattern Value 16 SL_WLAN_RX_FILTER_HFIELD_L4_ PAYLOAD_PATTERN Rule Args Value Pattern Offset 2 Rule Args Value Pattern Length 1 Rule Args Value Pattern Value 16 11 4 3 4 Pattern Matching Rule Fields Pattern matching can be used to look ...

Page 184: ..._CMP_FUNC_EQUAL_TO Rule Field SL_WLAN_RX_FILTER_HFIELD_MAC_SRC_ADDR memcpy Rule Args Value Mac 0 MacAddress 6 memcpy Rule Args Mask MacMAsk 6 The following example demonstrates a definition of a rule that finds a frame from a specific group of MAC addresses by address mask In this example the rule searches for MAC addresses that end with 0x45 _u8 MacMask 6 0x0 0x0 0x0 0x0 0x0 0xFF _u8 MacAddress 6...

Page 185: ...er of each rule type Filter layers The header rules can be specified in a tree form but the rules must also preserve a layered approach Therefore a transport layer field such as TCP or UDP source or destination ports cannot be a parent of a MAC header field such as frame type Table 11 6 presents which groups of header rule types can be parents of other header rule types The general guideline is th...

Page 186: ...NO_TRIGGER_COUNTER Role is set to Transceiver mode Trigger Role SL_WLAN_RX_FILTER_ROLE_PROMISCUOUS The connection state is ignored since the filter works in the Transceiver mode Trigger ConnectionState SL_WLAN_RX_FILTER_STATE_STA_CONNECTED Example of defining a filter which only works in STA mode after the IP is acquired Parent Trigger ParentFilterID parentId No counter is used which is the common...

Page 187: ...DECREASE SL_WLAN_RX_FILTER_ACTION_ON_REG_RESET The following subsection describes the event actions 11 4 6 1 Send Events Action A typical usage for the send event capability is to perform wake on WLAN that is to wake the host on a specific packet matching a filter Events can be sent from the SimpleLink Wi Fi device to the host as a result of a matched Rx filter The event action arguments Action Us...

Page 188: ... request an event as one of the actions to perform Action Type SL_WLAN_RX_FILTER_ACTION_EVENT_TO_HOST The output of the event is to set bit number in this case it is bit 2 Action UserId 2 finally the code to add the event RetVal sl_WlanRxFilterAdd RuleType FilterFlags const SlWlanRxFilterRule_u const Rule const SlWlanRxFilterTrigger_t const Trigger const SlWlanRxFilterAction_t const ction FilterId...

Page 189: ...L_WLAN_SETBIT8 FilterIdMask 35 If the filter is not defined or created the SimpleLink Wi Fi device ignores its bit on the bit field mask Therefore operations can be performed with a bit field of all 1s NOTE TI highly recommends updating the Rx filters while the sockets are closed 11 5 1 Enable and Disable Filters TI recommends creating a filter as a disable and then enable all the relevant filters...

Page 190: ...oring Filters into the SFLASH The filters are not stored on the storage automatically This operation must be initiated by the host In this command filters where a persistent bit is set are stored The stored filters are loaded each time the device is started To store the filters call the sl_WlanSet command with the following arguments ConfigId SL_WLAN_RX_FILTERS_ID ConfigOpt SL_WLAN_RX_FILTER_STORE...

Page 191: ...arch 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Ping Chapter 12 SWRU455A February 2017 Revised March 2017 Ping Topic Page 12 1 General Description 192 12 2 Start and Stop Ping 192 12 3 Limitations 193 ...

Page 192: ...ination IPv4 IPv6 address In case of IPv4 use this field only Ip1OrPadding destination IPv6 address Ip2OrPadding destination IPv6 address Ip3OrPadding destination IPv6 address Family specifies the protocol family IPv4 or IPv6 Report Return value If callback is not set the API is blocked until the ping report is received Hold information regarding the results of the ping request and include the fol...

Page 193: ...and pingCommand Ip 0xFF020000 IPV6 Address pingCommand Ip1OrPadding 0 IPV6 Address pingCommand Ip2OrPadding 0 IPV6 Address pingCommand Ip3OrPadding 0xFB IPV6 Address pingCommand PingSize 150 size of ping in bytes pingCommand PingIntervalTime 100 delay between pings in milliseconds pingCommand PingRequestTimeout 1000 timeout for every ping in milliseconds pingCommand TotalNumberOfAttempts 0 max num...

Page 194: ...r Socket 195 13 3 2 Close Transceiver Socket 196 13 3 3 Send Data 196 13 3 4 Receive Data 197 13 4 Internal Packet Generator 197 13 5 CW 198 13 6 Changing Socket Properties 198 13 6 1 Change Operating Channel 198 13 6 2 Change Default PHY Data Rate 199 13 6 3 Change Tx Power 200 13 6 4 Change Number of Frames to Transmit Internal Packet Generator 200 13 6 5 Change 802 11b Preamble 200 13 6 6 Set C...

Page 195: ...mode such as with as a sniffer 13 2 Key Features Table 13 1 lists the key features of the transceiver Table 13 1 Key Features Key Features Description TX RX Layer 1 raw data Send and receive any L1 raw data TX RX Layer 2 raw data Send and receive any L2 raw data Internal Packer Generator The device can auto generate packet internally with infinite transmission CW Carrier wave signal transmission 1...

Page 196: ...ting raw socket data is done by calling sl_Send after successfully opening the transceiver socket The API return value is the number of bytes sent or negative value in case of an error The SimpleLink Wi Fi device allows the option to set the following parameters as part of the send operation as part of the flags parameter Channel Rate Tx Power 802 11b preamble The flags parameters given as part of...

Page 197: ...current frame Time Stamp frame timestamp in µs If the packet is longer than the receive buffer the remainder of the packet is discarded The maximum packet size which can be received is 1544 1536 bytes of data and 8 bytes of proprietary header Example _i16 NumOfByets signed char buf 1000 _i16 Soc _i16 channel 6 _i16 len 1000 Soc sl_Socket SL_AF_RF SL_SOCK_RAW channel NumOfByets sl_Recv Soc buf 500 ...

Page 198: ..._OPT SL_SO_PHY_NUM_FRAMES_TO_TX numFrames sizeof numFrames if Status Error Send 20 packet with the same buffer NumOfBytes sl_Send Soc buff sizeof buff SL_WLAN_RAW_RF_TX_PARAMS CHANNEL_1 SL_WLAN_RATE_1M 1 SL_WLAN_LONG_PREAMBLE 13 5 CW The SimpleLink Wi Fi device can transmit infinite carrier wave signals using the sl_Send API with NULL buffer and 0 zero length The flags parameter in the sl_Send API...

Page 199: ...es can be one of the following SL_WLAN_RATE_1M 1 SL_WLAN_RATE_2M 2 SL_WLAN_RATE_5_5M 3 SL_WLAN_RATE_11M 4 SL_WLAN_RATE_6M 6 SL_WLAN_RATE_9M 7 SL_WLAN_RATE_12M 8 SL_WLAN_RATE_18M 9 SL_WLAN_RATE_24M 10 SL_WLAN_RATE_36M 11 SL_WLAN_RATE_48M 12 SL_WLAN_RATE_54M 13 SL_WLAN_RATE_MCS_0 14 SL_WLAN_RATE_MCS_1 15 SL_WLAN_RATE_MCS_2 16 SL_WLAN_RATE_MCS_3 17 SL_WLAN_RATE_MCS_4 18 SL_WLAN_RATE_MCS_5 19 SL_WLAN_...

Page 200: ...The RAW socket packet generator sets the number of frames to transmit in the internal packet generator Example _i16 Status _u32 NumFrames 10 Status sl_SetSockOpt soc SL_SOL_PHY_OPT SL_SO_PHY_NUM_FRAMES_TO_TX NumFrames sizeof NumFrames if Status Error 13 6 5 Change 802 11b Preamble Set Long or Short WLAN PHY preamble for 802 11b rates only Set 1 for short preamble or 0 for long Example _u32 preambl...

Page 201: ...le or Disable Sending ACKs Enable or disable sending ACKs in transceiver mode enable 1 disable 0 This option is disabled by default Example _i16 Status _u32 Acks 1 0 disabled 1 enabled Status sl_SetSockOpt soc SL_SOL_PHY_OPT SL_SO_PHY_ALLOW_ACKS Acks sizeof Acks if Status Error 13 7 Limitations Only one transceiver socket is supported in the system Transceiver mode is available in STA mode only Le...

Page 202: ...n 203 14 1 1 LPDS 203 14 1 2 802 11 Power Save 203 14 1 3 Low Power versus Latency 203 14 1 4 Power Modes versus Device Modes 203 14 2 Key Features 203 14 3 Configurations and Settings 204 14 3 1 Changing Power Policy 204 14 3 2 Enabling Fast Connect 204 14 4 Network Applications and Power Consumption 204 14 4 1 mDNS 204 14 4 2 HTTP Server 204 14 5 Design Guidelines 205 14 5 1 LSI and Packet Loss ...

Page 203: ... within the time interval specified by the user This process allows further power reduction but may cause the device to miss broadcast data on the network 14 1 3 Low Power versus Latency Both the LPDS and 802 11 power save features have an overhead which causes an increased latency in data transmission and reception The user may optimize the device for low latency instead of low power by changing ...

Page 204: ...t sizeof SlWlanPmPolicyP arams_t All settings of the sl_WlanPolicySet API are effective immediately after the call and persistent between device resets 14 3 2 Enabling Fast Connect Fast connect is controlled by the WLAN API for details see Chapter 4 When enabled the scan process is skipped if the connection attempt is to the last connected network Skipping the scan can save hundreds of millisecond...

Page 205: ...gs or mDNS the effect might be more significant and may result in clients failing to connect to the device or sense its presence on the network 14 5 2 PHY Calibration Mode The PHY calibration mode directly affects system power consumption because it prolongs the initialization phase of the device In normal mode PHY is calibrated every time the networking subsystem is started and the device was eit...

Page 206: ...ing the Provisioning Process 210 15 7 Auto Provisioning 211 15 8 Delivering Feedback to the User 211 15 8 1 External Confirmation 212 15 9 External Configuration 212 15 10 Common Events and Errors 213 15 10 1 Provisioning Status Event 213 15 10 2 Provisioning Profile Added Event 214 15 10 3 Reset Request Event 214 15 10 4 Errors 214 15 10 5 Host Commands During Provisioning 214 15 11 Usage Example...

Page 207: ...r SmartConfig Provisioning TI proprietary provisioning method that uses a smartphone or a tablet to broadcast network credentials to an unprovisioned device The user can add a profile using any SmartConfig capable smartphone or tablet app 15 3 Provisioning Process Overview 15 3 1 Configuring a Profile When a provisioning process is started the SimpleLink Wi Fi device waits for the end user to prov...

Page 208: ...Provisioning Figure 15 1 The Provisioning Environment 15 4 Host Provisioning Application Flow The entire provisioning process adding profiles confirming profiles delivering confirmation results to the user and so forth is executed internally by the networking subsystem The host application is responsible only for initiating the process Once the process is started no further actions are needed Figu...

Page 209: ...he networking subsystem has finished confirming it Possible confirmation result values Confirmation failed SSID was not found during scan Confirmation failed SSID was found but WLAN connection failed Confirmation failed WLAN connection was successful but IP address was not acquired Confirmation failed IP address was successfully acquired but feedback to the user s smartphone app was not delivered ...

Page 210: ...nd configure a profile through the SimpleLink HTTP server or configure a profile using SmartConfig 15 5 4 AP and SC and External Configuration Provisioning In this mode the SimpleLink Wi Fi device is in AP role enabling users to use AP provisioning or SmartConfig provisioning same as AP SC mode or in addition to use an external configuration method executed by the host application for example WAC ...

Page 211: ...nt is sent to the host The auto provisioning connection policy is enabled by default 15 8 Delivering Feedback to the User After the SimpleLink device has finished confirming a profile it should send the confirmation result to the provisioning smartphone app to report the user who configured the profile whether the provisioning process was successful or not When the provisioned SimpleLink device is...

Page 212: ...ot aware of the results coming from the cloud and is unaware of the successful feedback delivery If the device can acquire an IP address but cannot contact the smartphone app through the cloud server the host application should notify the networking subsystem about the failure by issuing an ABORT_EXTERNAL_CONFIRMATION command and the networking subsystem should prepare for another profile configur...

Page 213: ...elivered SL_WLAN_PROVISIONING_CONFIRMATION_S TATUS_SUCCESS 5 Profile confirmation succeeded the SSID was found during scan the WLAN connection was successful IP address was successfully acquired and the feedback to user about the successful connection was successfully delivered SL_WLAN_PROVISIONING_ERROR_ABORT 6 The provisioning process was not started due to an unknown error SL_WLAN_PROVISIONING_...

Page 214: ...ice by issuing sl_stop and sl_Stop commands 15 10 4 Errors Table 15 3 shows the following values that may be returned when a provisioning command is issued Table 15 3 Errors STATUS_OK 0 Command was successfully executed SL_ERROR_WLAN_PROVISIONING_ABORT_ PROVISIONING_ALREADY_STARTED 2169 Start provisioning command failed because provisioning process is already running SL_ERROR_WLAN_PROVISIONING_ABO...

Page 215: ...et Therefore commands are allowed right after the PROVISIONING_CONFIRMATION_IP_ACQUIRED status event is sent to the host External configuration When APSC external configuration mode is used the host application might need to issue a socket command as part of its external provisioning process To enable this commands are allowed right after the PROVISIONING_EXTERNAL_CONFIGURATION_READY status event ...

Page 216: ...pyright 2017 Texas Instruments Incorporated Provisioning 15 11 Usage Examples 15 11 1 Successful SmartConfig Provisioning In Figure 15 3 a profile is configured using SmartConfig The provisioned device connects to the wireless network from the configured profile and waits for the smartphone app to contact its HTTP web server When the confirmation result is delivered to the smartphone app the devic...

Page 217: ... 217 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Provisioning 15 11 2 Unsuccessful SmartConfig Provisioning Figure 15 4 Unsuccessful SmartConfig Provisioning In AP SC mode the device is waiting for a profile configuration while in AP role After profile confirmation fails because an IP address was not acquired in the configur...

Page 218: ...w ti com 218 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Provisioning 15 11 3 Successful SmartConfig Provisioning With AP Fallback In APSC mode the device is waiting for a profile configuration while in AP role In Figure 15 5 the provisioned device connects to the wireless network but the smartphone app fails to find the dev...

Page 219: ... Confirmation status success event Provisioning stopped event APIs allowed Connect to AP from profile Add profile HTTP Request to confirm profile HTTP www ti com Usage Examples 219 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Provisioning 15 11 4 Successful AP Provisioning In Figure 15 6 a profile is configured to the SimpleL...

Page 220: ... Provisioning 15 11 5 Successful AP Provisioning With Cloud Confirmation Figure 15 7 depicts a successful AP provisioning with cloud confirmation Figure 15 7 Successful AP Provisioning With Cloud Confirmation When feedback is provided through a cloud server external confirmation the host can send commands to the networking subsystem to connect the cloud based server only after the IP acquired even...

Page 221: ...ubmit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Provisioning 15 11 6 Using External Configuration Method WAC Figure 15 8 External Configuration Method WAC When provisioning is started in AP SC external configuration mode the host can start sending commands to the networking subsystem only after the external configuration ready event is received When the host identifies t...

Page 222: ...ccess event Provisioning stopped event Usage Examples www ti com 222 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Provisioning 15 11 7 Successful SmartConfig Provisioning While External Configuration Enabled Figure 15 9 Successful SmartConfig Provisioning While External Configuration Enabled When provisioning is started in AP...

Page 223: ...ts Incorporated Crypto Utilities Chapter 16 SWRU455A February 2017 Revised March 2017 Crypto Utilities Topic Page 16 1 Introduction 224 16 1 1 API and Usage 224 16 1 2 Limitations and Constraints 227 16 1 3 Errors 227 16 2 Secured Content Delivery 228 16 2 1 Process Flow 228 16 2 2 Encrypted File Format 230 ...

Page 224: ...in an index occupied by another temporary key and overrides the occupied key An installed key on that index cannot be overridden Installed key pairs Install or uninstall key pairs provided by the host application The keys must be preprogrammed in the file system The install action adds them to the data base and allows using them to sign and verify buffers This operation is persistent over the powe...

Page 225: ... pInfoKey KeyFileNameLen strlen extkey der 1 Status sl_NetUtilCmd SL_NETUTIL_CRYPTO_CMD_INSTALL_OP _u8 keyAttrib sizeof SlNetUtilCryptoCmdKeyMgnt_t _u8 pInfo sizeof SlNetUtilCryptoPubKeyInfo_t pInfoKey KeyFileNameLen NULL resultLen if Status 0 error resultLen 0 keyAttrib ObjId 5 keyAttrib SubCmd SL_NETUTIL_CRYPTO_UNINSTALL_SUB_CMD Uninstall the key Status sl_NetUtilCmd SL_NETUTIL_CRYPTO_CMD_INSTAL...

Page 226: ...A algorithm and a key pair from the crypto utilities key management mechanism This operation is done using the sl_NetUtilCmd NOTE The input buffer for signing must not exceed 1 5KB 16 1 1 5 Verify Buffer This command is used to verify a digital signature using the ECDSA algorithm The signature must be created with one of the key pairs from the crypto utilities key management mechanism NOTE The inp...

Page 227: ...o 172 bytes Status sl_NetUtilGet SL_NETUTIL_TRUE_RANDOM 0 buffer len 16 1 2 Limitations and Constraints Mechanism supports a total of eight keys where index 0 is reserved for the constant key pair Only ECC keys using the SECP256R1 curve are supported Index management is a host application responsibility find free index or retrieve index list are not provided For signing and verifying operations th...

Page 228: ...le encrypted by a remote device and decrypted inside the NWP while the private key used for the process remains inside the SimpleLink Wi Fi networking subsystem alone with no access from the host This ability lets the user transfer a file to the system on any unsecured tunnel 16 2 1 Process Flow 1 Retrieve a temporary nonpersistent ECC public key using the NetUtils APIs described in Appendix A 2 S...

Page 229: ...ntent Delivery 229 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Crypto Utilities Figure 16 1 depicts this process Figure 16 1 Secure Content Delivery ...

Page 230: ...es 4 Bytes Secured Content Delivery www ti com 230 SWRU455A February 2017 Revised March 2017 Submit Documentation Feedback Copyright 2017 Texas Instruments Incorporated Crypto Utilities 16 2 2 Encrypted File Format The file delivered with this process should be in the proprietary format see Figure 16 2 Figure 16 2 File Format ...

Page 231: ...opic Page 17 1 Introduction 232 17 2 Create Platform Porting File 233 17 3 Select Capabilities Set 233 17 4 Bind the Device Enable Disable Line 235 17 5 Implement the Interface Communication Abstract Layer 235 17 6 Choose Memory Management Model 237 17 7 Implement OS Adaptation Layer 237 17 7 1 Sync Objects 237 17 7 2 Locking Objects 238 17 8 Implement Timestamp Services 238 17 9 Set Asynchronous ...

Page 232: ...m is based on a few simple steps This chapter provides basic step by step guidelines on how to port the SimpleLink host driver to new platforms Follow the instructions carefully to avoid any problems during this process and to enable efficient and proper work with the CC3120 device The basic concept of the porting is that all modifications and porting adjustments of the host driver are made in one...

Page 233: ...et The SimpleLink host driver supports different predefined sets of capabilities that can fit most target platforms SL_TINY Provides limited functionality set compatible for platforms with very limited resources SL_FULL Provides access to all SimpleLink functionality TI recommends trying and choosing one of these predefined capabilities set before building a customized set To choose one of these s...

Page 234: ...WlanProfileAdd sl_WlanProfileGet sl_WlanProfileDel sl_WlanPolicySet sl_WlanPolicyGet sl_WlanGetNetworkList sl_WlanRxFilterAdd sl_WlanRxFilterSet sl_WlanRxFilterGet sl_WlanRxStatStart sl_WlanRxStatStop sl_WlanRxStatGet SL_INC_SOCKET_PKG sl_Socket sl_Close sl_Bind sl_Connect sl_Select sl_SetSockOpt sl_Recv sl_RecvFrom sl_Send sl_SendTo sl_Htonl sl_Htons sl_Socket sl_Close sl_Bind sl_Connect sl_Selec...

Page 235: ... to enable or disable the device nReset Puts the device in shutdown mode nHib Puts the device in hibernate mode For more information see Section 3 3 NOTE Only one of these lines or modes can be used During sl_Start or sl_Stop the driver calls the macros to force one of these lines to high or low in the correct sequence To bind one of these lines the following macros must be defined correctly sl_De...

Page 236: ...he option flags is set to constant value by defining the macro _SlIfOpenFlags in user h The baud rate clock polarity clock phase chip select flow control or any other specific attributes of the communication channel must be configured in this function If the interface name and option flags are not enough for this configuration and the communication channel could not be entirely configured on this ...

Page 237: ...synchronization between threads Locking objects To protect access to resources from different threads 17 7 1 Sync Objects A sync object is an object used to synchronize between two threads or between a thread and an interrupt handler One thread is waiting on the object and the other thread or interrupt handler sends a signal which then releases the waiting thread The signal can be sent from interr...

Page 238: ...estamp mechanism NOTE TI recommends implementing this mechanism To implement this mechanism the host application must provide a function that retrieves the current timestamp slcb_GetTimestamp Gets counter value in ticks units In addition the host application must declare the time resolution of the timestamp on the platform by using the following macros SL_TIMESTAMP_TICKS_IN_10_MILLISECONDS SL_TIME...

Page 239: ...s Instruments Incorporated Porting the Host Driver slcb_NetAppEvtHdlr Handles events and errors of the NetApp silo slcb_NetAppHttpServerHdlr Handles events of the HTTP server slcb_NetAppRequestHdlr Handles NetApp requests slcb_NetAppRequestMemFree Frees a buffer used in a NetApp request Allows the use of a dynamic memory buffer in these requests ...

Page 240: ...T host interface only Used to change the baud rate of the UART after the device was started sl_RegisterEventHandler Device This API enables registration of the SimpleLink host driver in runtime sl_WlanConnect Wlan Initiates a connection to Wi Fi network sl_WlanDisconnect Wlan Initiates a disconnection from the current connected Wi Fi network If the Auto connection policy is active a new connection...

Page 241: ... Retrieves service attributes like IP address port and text according to service name sl_NetAppGetServiceList NetApp Retrieves the cached services of the peer sl_NetAppMDNSUnRegisterService NetApp Unregisters mDNS service sl_NetAppMDNSRegisterService NetApp Registers a new mDNS service sl_NetAppPingStart NetApp Sends ICMP ECHO_REQUEST to a host on the network sl_NetAppSet NetApp Sets configuration...

Page 242: ...s mask sl_EventMaskSet System persistent Set UART baud rate sl_UartSetMode Nonpersistent Start NetApp Applications sl_NetAppStart System persistent Setting effective to current Wi Fi mode Stop NetApp Applications sl_NetAppStop System persistent Setting effective to current Wi Fi mode Set Http port number sl_NetAppSet System persistent Enable Disable Http authentication check sl_NetAppSet System pe...

Page 243: ...istent Set IPv6 static stateless statefull sl_NetCfgSet System persistent Enable and set IPv4 STA W iFi Direct client static sl_NetCfgSet Reset Set MAC address sl_NetCfgSet Reset Disconnet AP station by MAC address sl_NetCfgSet Nonpersistent Enable or Disable periodic keep alive sl_SetSockOpt Nonpersistent Set receive time out value sl_SetSockOpt Nonpersistent Sets tcp max recv window size sl_SetS...

Page 244: ...leAdd Persistent Delete profile sl_WlanProfileDel Persistent Set connection policy sl_WlanPolicySet System persistent Set system scan time interval and start scan sl_WlanPolicySet Nonpersistent Set PM policy for STA mode only sl_WlanPolicySet System persistent Set negotiation policy parameters for P2P role sl_WlanPolicySet System persistent Set WLAN mode sl_WlanSetMode Reset Set SSID for AP mode s...

Page 245: ...s of existing filter sl_WlanRxFilterSet Optionally Persistent Change the default creation of the pre prepared filters sl_WlanRxFilterSet Optionally Persistent Set maximum supported stations sl_WlanSet Persistent Set AP access list mode sl_WlanSet Persistent Add station to black list by mac address sl_WlanSet Persistent Remove station from black list by mac address sl_WlanSet Persistent Remove stat...

Page 246: ... Feedback Copyright 2017 Texas Instruments Incorporated Revision History Revision History NOTE Page numbers for previous revisions may differ from page numbers in the current version Changes from Original Februrary 2017 to A Revision Page Updated Related Files table 101 Deleted SHA 1 is used 110 ...

Page 247: ... TI Resource NO OTHER LICENSE EXPRESS OR IMPLIED BY ESTOPPEL OR OTHERWISE TO ANY OTHER TI INTELLECTUAL PROPERTY RIGHT AND NO LICENSE TO ANY TECHNOLOGY OR INTELLECTUAL PROPERTY RIGHT OF TI OR ANY THIRD PARTY IS GRANTED HEREIN including but not limited to any patent right copyright mask work right or other intellectual property right relating to any combination machine or process in which TI product...

Reviews: