Cs NET
A compact, reliable, high-performance TCP/IP protocol stack designed for embedded applications, featuring dual IPv4 and IPv6 support.
Features
Key Features
Cs/NET stack includes the following features:
- Supports multiple interfaces and multiple IP addresses per interface (multihoming)
- Supports IPv4 and IPv6
- BSD socket API supporting the most popular socket options, featuring a POSIX-like 'errno' error handling
- Raw socket support for the PF_INET and PF_INET6 protocol families
- Scalable to contain only required features and minimize memory footprint
- SSL/TLS socket option
- High performance/bandwidth
IPv6 Support
Cs/NET stack provides IPv6 support, allowing embedded devices to have unique IP addresses across the Internet1. With IPv6, your embedded device can take advantage of the new Neighbor Discovery Protocol (NDP), and superior multicast support
Switching to IPv6 is easy, and Cs/NET allows for simultaneous use of IPv4 and IPv6
Native support for IPv6 includes:
- IPv6 Node
- SLAAC (IPv6 stateless address autoconfiguration)
- IPv6 Multicast (MLD)
- Neighbor Discovery Protocol (NDP)
- ICMPv6 (echo request/response)
1ISP must provide an IPv6 Global Unicast Address in order for Cs/NET to reach the Internet using IPv6 addressing
SSL Module
The SSL/TLS specification is the world's most widely implemented security protocol.
wolfSSL's Embedded SSL/TSL Library is ideal for IoT devices — such as medical equipment, industrial sensors, smart grid devices, and many others — that need to transport data securely over the Internet.
This efficient and reliable SSL module integrates smoothly with Cs/NET. wolfSSL supports industry standards up to the current TLS 1.3 and DTLS 1.3 protocol levels, is up to 20 times smaller than OpenSSL, and offers progressive ciphers such as ChaCha20, Curve25519, NTRU, and SHA-3. User benchmarking and feedback reports dramatically better performance when using wolfSSL over OpenSSL.
wolfSSL is powered by the wolfCrypt library. A version of the wolfCrypt cryptography library has been FIPS 140-2 validated (Certificate #3389), with FIPS 140-3 validation currently in progress!
Like our other available software modules, it is highly configurable and provided as ANSI C source code.
Specifications and RFC Compliance
Specifications
Cs/NET key specifications include the following:
Stack Compliance
Ixia's IxANVL test suite is used to validate the compliance of the stack with the networking RFCs. IxANVL is widely used by developers and manufacturers of networking equipment and Internet devices to validate protocol compliance and interoperability.
The table below lists the different RFCs supported by Cs/NET.
- UDP (RFC #768)
- TCP (RFC #793, #813, #879, #896, #2001, #2584, #2988, #6528)
- TCP Congestion Control (RFC #5681)
- TCP NewReno Fast Recovery Algorithm (RFC #6582)
- TCP's Retransmission Timer (RFC #6298)
- Internet Protocol Specification (IPv4) (RFC #791, #950, #1071, #3927)
- IP Datagram Reassembly Algorithms (RFC #815)
- Ethernet Address Resolution Protocol (ARP) (RFC #826)
- Internet Control Message Protocol Specification (ICMP) (RFC #792)
- Host Extensions for IP Multicasting (RFC #1112)
- Internet Group Management Protocol, Version 2 (IGMPv2) (RFC #2113)
- IPv6 Specification (RFC #2460, #2464, #4291)
- IPv6 Node Requirements (RFC #4294)
- Internet Control Message Protocol Version 6 (ICMPv6) (RFC #4443)
- Neighbor Discovery for IP version 6 (NDP) (RFC #4861)
- Multicast Listener Discovery (MLD) for IPv6 (RFC #2710)
- Basic Socket Interface Extensions for IPv6 (RFC #3493)
- Default Address Selection for Internet Protocol version 6 (RFC #3484)
Interface
Ethernet (RFC #894, #1042)
TCP/IP Layers
Cs/NET requires the presence of a kernel for task scheduling and mutual exclusion. To meet this requirement, Weston Embedded Solutions provides source code to allow network applications to readily accommodate Cs/OS2 and Cs/OS3.
Drivers
Drivers for Network Controllers
Cs/NET provides drivers for the following controllers:
Ethernet
Wi-Fi
PHY
The tables below show the list of hardware architectures for which controller support is provided. It also indicates its location indicating if it is part of the microcontroller (MCU), part of a field-programmable gate array (FPGA), or external to the device (External).
If you don’t see the driver you are looking for please contact us . We can give you the latest information on drivers we have available.
Ethernet
Cs/NET provides these Ethernet controller drivers:
Fujitsu
NXP GMAC STM32Fxxxx MB9BFD10T MB9BF610T MB9BF210T LPC185x LPC183x LPC435x LPC433x MCU Ethernet 10/100
Wi-Fi
Cs/NET provides these Wi-Fi controller drivers:
PHY
Cs/NET provides these physical layer (PHY) drivers:
Network Applications
Dynamic Host Configuration Protocol – client
- Transmit and receive option is supported
- IPv4 Only
Domain Name System – client
- Support IPv4 and IPv6
- Auto-select best address
- Integrated cache
File Transfer Protocol – client
- Supports authentication
- Transfer data stored in memory buffers or files (file system required)
- Supports interfacing with TLS/SSL (Secure Sockets Layer)
- Supports Implicit and Explicit FTPS
- Supports mutual authentication via TLS
- Supports ALPN and SNI TLS extensions
File Transfer Protocol – server
- Single connection
- Callback function is used to authenticate user
- Supports any file system; a file system is required
- Supports interfacing with TLS/SSL (Secure Sockets Layer)
Hypertext Transfer Protocol – Web client
- Full support for HTTP 1.1 (RFC 2616)
- All HTTP methods supported (GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)
- Support for WebSockets
- Support for persistent connections
- HTTP header field processing (HTTP cookies)
- HTTP query string processing
- Support multiple simultaneous connections with multiple HTTP servers
- Supports interfacing with TLS/SSL (Secure Sockets Layer)
- Supports mutual authentication via TLS
- Supports ALPN and SNI TLS extensions
Hypertext Transfer Protocol – Webserver
- Supports multi-connection - up to 255 client connections
- Supports any file system, or can be used via a static file system, which is provided
- Highly customizable via hook functions
- Include add-on for advanced functionalities such as Authentication Module and REST Framework
- Supports interfacing with TLS/SSL (Secure Sockets Layer)
MQTT messaging protocol
- Supports multiple simultaneous connections with multiple MQTT brokers
- Support for multiple messages in the air simultaneously
- Unlimited number of connections and messages
- Support for all Qualities of Service (QoS-0, QoS-1 & QoS-2)
- Supports TLS/SSL (Secure Sockets Layer)
- Supports mutual authentication via TLS
- Supports ALPN and SNI TLS extensions
Simple Network Time Protocol – client
- Supports TLS/SSL (Secure Sockets Layer)
- Supports authentication
Simple Network Time Protocol – client
- Supports IPv4 and IPv6
Telnet – server
- Integrated with Cs/Shell
- Supports authentication with Cs/Common
- Supports interfacing with TLS/SSL (Secure Sockets Layer)
Trivial File Transfer Protocol – client
- Data transferral and reception using memory buffers or files (file system required)
Trivial File Transfer Protocol – server
- Supports any file system; a file system is required