CycloneTCP is a dual IPv4/IPv6 stack dedicated to embedded applications. CycloneTCP conforms to RFC standards and offers seamless interoperability with existing TCP/IP systems. By supporting IPv6, CycloneTCP eases deployment of next-generation Internet. The stack is distributed as a full ANSI C and highly maintainable source code.
Main Features
Dual stack (IPv4 and/or IPv6)
Built-in support for multiple network interfaces
Flexible memory footprint (built-time configuration to embed only the necessary features)
Configurable memory model (static memory pool or heap memory allocation)
Portable architecture (no processor dependencies)
Straightforward port to any RTOS
Highly maintainable source code
Debugging and trace functionality to ease development and integration
BSD style socket API
Blocking/non-blocking socket operation and event-driven functions (select and poll)
Efficient data transfer through zero copy
Well-crafted TCP module with selective acknowledgement (SACK) and congestion control
Raw socket interface
IP fragmentation and reassembly support
Support for virtual interfaces (multiple MAC addresses per physical interface)
Support for multi-homed hosts (multiple IPv4 addresses per interface)
Ethernet port multiplication using VLAN tagging (SMSC switches) or tail tagging (Micrel switches)
VLAN support (802.1q and 802.1ad)
USB Device RNDIS class driver (for STM32 microcontrollers)
Supported Protocols
DNS client
NetBIOS client and responder
LLMNR client and responder
mDNS client and responder
DNS-SD responder (DNS-based service discovery)
DHCP client and server
Auto-IP (dynamic configuration of IPv4 link-local addresses)
DHCPv6 client and relay agent
SLAAC (IPv6 stateless address autoconfiguration)
Multicast support (IGMPv2 and MLDv1)
FTP / FTPS client and server (implicit TLS and explicit TLS modes supported)
HTTP / HTTPS client
HTTP / HTTPS server with SSI, CGI scripting and WebSocket support
HTTP/2 client (including HPACK compression, server push and https scheme)
MQTT v3.1.1 client (TCP, TLS, WebSocket and secure WebSocket transport layers supported)
MQTT-SN client (UDP and DTLS transport layers supported)
CoAP client and server (DTLS-secured CoAP, Observe and Block-Wise Transfers supported)
SMTP client
SNTP client (network time synchronization)
SNMP agent (SNMPv1, SNMPv2c and SNMPv3 supported)
Remote management of SNMP users and access rights (SNMP-USM-MIB and SNMP-VACM-MIB)
Standard MIBs: MIB-II, IF-MIB, IP-MIB, TCP-MIB, UDP-MIB, SNMPv2-MIB
TFTP client and server
Modbus/TCP client and server (Modbus/TCP security supported)
WebSocket client and server (WebSocket connections tunneled over SSL/TLS supported)
PPP (Point-to-Point Protocol)
Supported Network Drivers
CycloneTCP supports industry-standard microcontrollers with built-in MAC, standalone Ethernet controllers, PHYs, Switches, as well as Wi-Fi modules and Cellular Modems.
Manufacturer
Part Number
Atmel (Microchip)
AVR32 UC3A
SAM3X
SAM4E
SAM7X
SAM9263
SAME54
SAME70
SAMV71
SAMA5D2
SAMA5D3
SAMA5D4
Cortus
APS1
APS3 / APS3R / ASP23
APS5 / APS25
FPS6 / FPS26
Espressif Systems
ESP32
Infineon
XMC4400
XMC4500
XMC4700
XMC4800
Microchip
PIC32MX
PIC32MZ EC
PIC32MZ EF
Microsemi
PolarFire SoC
SmartFusion
SmartFusion2
Nuvoton
NUC472
M487
NXP
LPC1700
LPC1800
LPC2300
LPC4300
LPC54018
LPC54628
Kinetis K60
Kinetis K64
Kinetis K65
Kinetis K66
Kinetis KV5x
i.MX RT1020
i.MX RT1050
i.MX RT1060
i.MX6UL
i.MX6ULL
Coldfire V2 MCF5225x
PowerPC MPC57xx
S32K148
Octavo Systems
OSD335x
OSD335x-SM
OSDMP15x
Renesas
RA6M3
RX62N
RX63N
RX64M
RX65N
RZ/A1L
RZ/A1M
RZ/A1H
RZ/A2M
Synergy S5D9
Synergy S7G2
Silicon Labs
EFM32GG11
Spansion (Cypress)
FM3
FM4
STMicroelectronics
STM32F107
STM32F207/217
STM32F407/417
STM32F427/437
STM32F429/439
STM32F469/479
STM32F745/765
STM32F746/756
STM32F767/777
STM32F769/779
STM32H723/735
STM32H743/753
STM32H745/755
STM32H747/757
STM32MP1
STR912
SPC5
Texas Instruments
MSP432E401/411
Stellaris LM3S6000
Stellaris LM3S9000
Tiva TM4C129X
Sitara AM335x
Hercules TMS570
Concerto F28M35x
OMAP-L138
Xilinx
Zynq-7000
Manufacturer
Part Number
IC+
IP175C
Marvell
88E6060
Microchip
KSZ8463
KSZ8563
KSZ8775
KSZ8794
KSZ8795
KSZ8863
KSZ8864
KSZ8873
KSZ8895
KSZ9477
KSZ9563
KSZ9893
KSZ9897
LAN9303
Manufacturer
Part Number
Atmel (Microchip)
SAMW25
WILC1000
WINC1500
Broadcom (Cypress)
BCM43362
Espressif Systems
ESP32
ESP8266
Microchip
MRF24WG0MA
MRF24WG0MB
Murata
SN8000
SN8205
MXCHIP
EWM3162
Silicon Labs
WF200
Manufacturer
Part Number
Quectel
EC20
M95
UG95
UG96
Sierra Wireless
AirPrime HL6528
AirPrime HL8548
AirPrime WISMO228
SimCOM
SIM808
Telit
GL865
HE910
LE910
UE910
U-blox
SARA-G350
SARA-U201
Manufacturer
Part Number
Davicom
DM9000A/B
Microchip
ENC28J60
ENC424J600
ENC624J600
KSZ8851
Manufacturer
Part Number
Atheros
AR8031
AR8035
Davicom
DM9161
IC+
IP101
Lantiq (Intel)
PEF7071
Microchip
KSZ8031
KSZ8041
KSZ8051
KSZ8061
KSZ8081
KSZ8091
KSZ8721
KSZ9031
KSZ9131
LAN8700
LAN8710
LAN8720
LAN8740
LAN8742
Realtek
RTL8211
Renesas
uPD60610
uPD60611
STMicroelectronics
ST802RT1A
Texas Instruments
DP83620
DP83630
DP83640
DP83822
DP83848
Manufacturer
Part Number
Microchip
LAN8770
NXP
TJA1100
TJA1101
Texas Instruments
DP83TC811
ARM Cortex-M3
ARM Cortex-M4
ARM Cortex-M7
ARM Cortex-R4
ARM Cortex-A5
ARM Cortex-A8
ARM Cortex-A9
Legacy ARM7TDMI / ARM926EJ-S
RISC-V
MIPS M4K
MIPS microAptiv
PowerPC e200
Coldfire V2
RX600
AVR32
Xtensa LX6
Amazon FreeRTOS
ChibiOS/RT
CMSIS-RTOS
CMSIS-RTOS2 (RTX v5 and FreeRTOS)
Keil RTX
Micrium µC/OS-II
Micrium µC/OS-III
Segger embOS
SYS/BIOS (TI-RTOS)
Bare Metal programming (without RTOS)
GNU GCC / Makefile
Atollic TrueSTUDIO
IAR Embedded Workbench
Keil MDK-ARM
Microsoft Visual Studio
Segger Embedded Studio
AC6 System Workbench for STM32 (SW4STM32)
Atmel Studio
Infineon DAVE
Microchip MPLAB X
NXP MCUXpresso
Renesas e2Studio
ST STM32CubeIDE
TI Code Composer Studio (CSS)
Data Link Layer (PPP)
RFC 1332: The PPP Internet Protocol Control Protocol (IPCP)