TargetTCP6™ IPv6 TCP/IP Protocol Stack
Overview
- IPv6 Phase II Ready ensures interoperability with all IPv6 devices. Multiple global IPv6 prefixes, Redirects, ICMPv6 Too Big initiated Fragmentation and other advanced IPv6 features are all supported.
Features
BSD Socket API with enhancements:
- connect(), recv(), and send() timeouts can be set by setsockopt().
- MSG_WAITALL flag makes recv() block until all requested bytes have been received.
- setsockfunc() installs a socket callback function, supporting event driven programming and allowing a single task to service both socket and other events.
- setsockopt() IPV6_DONTFRAG and IPV6_UNICAST_HOPS options can change the IPv6 fragmentation policy and maximum hops default values on a per socket basis.
- getaddrinfo()/getnameinfo() allow applications to utilize DNS lookups without regard to whether the result is IPv4 or IPv6.
RFC-compliant with a full protocol suite. Supports IPv6, TCP, UDP, ICMPv6, Multicasting, Neighbor Discovery (ND), and Auto Configuration over various physical medium such as Gigabit Ethernet, Wi-Fi, Zigbee 6LoWPAN and others. Includes clients for DNS and DHCPv6.
- IPv6 data addressing and routing using 128-bit addresses
- ICMPv6 transfers error messages and operational information
- UDP transports datagrams across IP network
- TCP provides reliable stream data transmission
- DHCPv6 client for IPv6 address assignment
Other included protocols:
- DNS client converts name string to IPv6 address
TargetIPSec adds support for Internet Protocol Security, which provides network policy based host to host authentication, privacy or both. Includes a shell interface or programmatic API to add Security Policies (SP).
Supports RISC processors with no extra data copy within the Ethernet driver to align packets. The IP, TCP, and UDP headers are 4-byte aligned within the stack, allowing fast access to the 32-bit fields in these structures. Application data remains unaligned, eliminating an extra copy required by Berkeley derived implementations.
Using the Sockets API, only one data copy is performed between a send/recv call and a DMA-based network interface. This applies to inbound and outbound transfers using UDP datagrams or TCP streams. A non-standard zero-copy API addition eliminates the copy required by the Sockets API.
Supports TCP out-of-band data and urgent data mark. Both socket callback functions and select() are used to notify applications when a connected peer has entered urgent mode.
Easy to administer. The auto configuration inherent in IPv6 should be used to find global addresses and gateways while the DHCP client is used to discover DNS server addresses. PPP connections can be configured to be a default gateway and to request a DNS server address from the remote peer.
Integrated User Services. The optional Telnet server is integrated with the TargetOS command line monitor, allowing full access to built-in commands and easy extensibility. The FTP server is integrated with TargetXFS™, Blunk Microsystems’ embedded flash file system. The TFTP client is integrated with the TargetOS runtime library, allowing access to remote files via fopen(), and with the TargetOS loader, which accepts both ELF and S-record formats.
High Performance. No data copies are performed within the stack. Matching of IP fragment lists, ND address records, and TCP sockets is done with a fast hashing function. The 16-bit checksum for TCP and UDP is calculated in assembly language (for Power Architecture, ColdFire, and 68K). Access to the assembly language “add with carry” instruction enables the calculation to be done with fast 32-bit accesses.
Well documented network driver interface. TargetTCP supports multiple concurrent network interfaces. Includes Ethernet and PPPs drivers for populer controllers. Blunk Microsystems provides low cost bids on custom drivers.
Built-in TCP/IP protocol decoder. When enabled by a compile-time flag, a short summary of every received or transmitted packet is printed to stdout on an ongoing basis.
Optional SSL/TLS protocol enables FTP over TLS, Telnet over TLS, and HTTPS. Add TLS client or server security to any TCP connection using a single ioctl call. Application Socket calls (recv(), send(), etc.) use plain text while data over the wire travels in TLS packets. No separate API for using TLS. TSL security is transparently added with minimal changes to application code.
SNMPv2c Network management with complete MIB-II integration for TargetTCP. Interface SNMP to Telnet shell commands and/or TargetWeb’s HTML forms and use the same underlying management functions for a reliable and redundant management scheme across multiple network protocols.
Compact and configurable. Applications typically require approximately 60 KB of code from the TargetTCP IPv6 library and can be configured to use as little as 64 KB of RAM data.
Shipped with multiple example clients and servers. Includes a network benchmark application for measurement of throughput and CPU utilization.
Developed using TargetOS™-Lite, Blunk’s free RTOS. Easily ported to other RTOSes or used in polled mode, without a kernel.
Source code is 100% Standard C (except optional assembly language checksum routines) and has been tested using PC-lint and multiple Standard C compilers, including GCC.
Royalty-free license. Includes complete source code, sample applications, sample drivers, user’s manual, and one year of technical support. Electronic delivery via customer-specific web portal.
Porting manual provides details on integrating TargetTCP into your environment.