Overview of Azure RTOS NetX

Azure RTOS NetX is an industrial grade TCP/IP IPv4 embedded network stack, designed specifically for deeply embedded, real-time, and IoT applications. Azure RTOS NetX is Microsoft's original IPv4 network stack, and is essentially a subset of Azure RTOS NetX provides embedded applications with core network protocols such as IPv4, TCP, and UDP as well as a complete suite of additional, higher-level add-on protocols. Small footprint, fast execution, and superior ease-of-use, make Azure RTOS NetX an ideal choice for the most demanding embedded IoT applications.

API protocols

TELNET

  • Minimal 0.5 KB and 0.3 KB RAM footprint

  • Client and server support

  • Intuitive Telnet APIs:

    nx_telnet_*

Auto IP

  • Automatic IPv4 address assignment

  • Minimal 1.2 KB, 300 bytes of RAM

  • Intuitive AutoIP APIs:

    nx_autoip_*

HTTP - Hypertext Transfer Protocol(HTTP)

  • Minimal 2.8 KB to 4.8KBFLASH, 0.4 KB to 1.0 KB RAM footprint

  • Client and server support

  • Intuitive HTTP APIs:

    nx_http_*

SMTP - Simple Mall Transfer Protocol (SMTP)

  • Minimal 4.1 KB and 0.6 KB RAM footprint

  • Client support

  • Intuitive SMTP APIs:

    nx_smtp_*

DHCP - Dynamic Host Configuration Protocol (DHCP)

  • Minimal 3.6 KB to 4.6 KB FLASH, 2.7 KB RAM footprint

  • Client and server support

  • IPv4 support

  • Intuitive DHCP APIs:

    nx_dhcp_*

P0P3 - Post Office Protocol Version 3 (POP3)

  • Minimal 8.1 KB and 1.4 KB RAM footprint

  • Client support

  • Intuitive P0P3 APIs:

    nx_pop3_*

SNMP - Simple Network Management Protocol (SNMP)

  • Minimal 10.9 KB and 2.6 KB RAM footprint

  • Agent support for VI, V2, and V3

  • Intuitive SNMP APIs:

    nx_snmp_*

FTP, TFTP - File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP)

  • FTP Minimal 1.8 KB to 7.2KBFLASH, 0.6 KB to 2.1 KB RAM footprint
  • TFTP Minimal 1.7 KB to 2.4KBFLASH, 0.3 KB to 1.8 KB RAM footprint
  • Client and server support
  • Intuitive FTP and TFTP APIs: nx_ftp_ or nx_tftp_

PPP - Polnt-to-PoInt Protocol (PPP)

  • Minimal 7.1 KB and 3.8 KB RAM footprint

  • Intuitive PPP APIs:

    nx_ppp_*

SNTP - Simple Network Time Protocol (SNTP)

  • Minimal 4 KB and 0.5 KB RAM

  • Client support

  • Intuitive SNTP APIs:

    nx_sntp_*

Azure RTOS NetX API

  • Intuitive and consistent API
  • Noun-verb naming convention
  • Fast, zero-copy API implementation
  • All APIs have leading nx_* to easily identify as Azure RTOS NetX
  • Blocking APIs have optional thread timeout
  • See our Azure RTOS NetX User Guide for more details
  • Optional BSD layer for porting legacy socket code

IGMP - Internet Group Management Protocol (IGMP)

  • Minimal 2.5 KB FLASH

  • IPv4 multicast group support

  • IXIA IxANVL Validated

  • Optional IGMP statistics

  • System-level Trace via Azure RTOS TraceX

  • Intuitive IGMP APIs:

    nx_igmp_*

UDP - User Datagram Protocol (UDP)

  • Minimal 2.5 KB FLASH, 124 sockets bytes of RAM per socket

  • Fast, near wirespeed TCP packet processing:

  • RX 95 Mbps on 100 Mbps Ethernet, MCU @100MHz, 14% MCU Utilization

  • TX 94 Mbps on 100 Mbps Ethernet, MCU @100MHz, 10% MCU Utilization

  • UDP Fast Path™ technology

  • No limits on the number of UDP

  • IXIA IxANVL Validated

  • Optional suspension on socket receive

  • Optional timeout on all suspension

  • Optional UDP statistics

  • System-level Trace via Azure RTOS TraceX

  • Intuitive UDP APIs:

    nx_udp_*

TCP - Transmission Control Protocol (TCP)

  • Minimal 10.5K8 to 12.5 KB FLASH, 280 bytes of RAM per socket

  • Fast, near wlrespeed TCP packet processing:

  • RX 93 Mbps on 100 Mbps Ethernet, MCU @100MHz, 20% MCU Utilization

  • TX 94 Mbps on 100 Mbps Ethernet, MCU @100MHz, 27% MCU Utilization

  • Reliable connection

  • No limits on the number of TCP sockets

  • IXIA IxANVL Validated

  • Optional suspension on socket receive/transmit

  • Optional timeout on all suspension

  • Optional TCP statistics

  • System-level Trace via Azure RTOS TraceX

  • Intuitive TCP APIs:

    nx_tcp_*

ICMP - Internet Control Message Protocol (ICMP)

  • Minimal 2.5 KB FLASH

  • IPv4 support

  • IXIA IxANVL Validated

  • Ping request and ping response

  • Optional thread suspension on ping requests

  • Optional timeout on all suspension

  • Optional ICMP statistics

  • System-level Trace via Azure RTOS TraceX

  • Intuitive ICMP APIs:

    nx_icmp_*

IPv4 - Internet Protocol (IP)

  • Minimal 3.5 KB to 8.5 KB FLASH, 2 KB to 3 KB RAM footprint

  • Piconet™ Architecture

  • Fast, near wirespeed performance

  • Multiple interface support

  • Multihomed support

  • Static routing support

  • IP fragmentation/reassembly support

  • IPv4 Support

  • IXIA IxANVL Validated

  • Phase II Ready Logo Certification

  • Optional IP statistics

  • Well defined, intuitive physical layer driver interface

  • System-level Trace via Azure RTOS TraceX

  • Intuitive IP layer APIs:

    nx_ip_*

    nxd_ip_*

  • Pre-certified by TUV and UL to IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D, and EN 50128 SW-SIL4

ARP/RARP - Address Resolution Protocol (ARP), Reverse Address Resolution Protocol (RARP)

  • Minimal 1.7 KB FLASH, RAM size
  • Dynamic resolution of 32-blt IPv4 and 48-blt MAC addresses
  • IXIA IxANVL Validated
  • Flexible, user-defined ARP cache
  • Gratuitous ARP support
  • Optional ARP/RARP statistics determined by application
  • System-level Trace via Azure RTOS TraceX
  • Intuitive ARP/RARP APIs: nx_arp_, nx_rarp_

ETHERNET, WiFi, BLUETOOTH LE, 15.4, etc.

Small-footprint

Azure RTOS NetX has a remarkably small footprint of 9 KB to 15 KB for basic IP and UDP support. An additional 10 KB to 13 KB of instruction area memory is needed for TCP functionality. Azure RTOS NetX RAM usage typically ranges from 2.6 KB to 3.6 KB plus the packet pool memory, which is defined by the application. Like Azure RTOS ThreadX, the size of Azure RTOS NetX automatically scales based on the services used by the application. This virtually eliminates the need for complicated configuration and build parameters, making things easier for the developer.

Fast execution

Azure RTOS NetX provides a zero-copy packet send/receive implementation and is highly integrated with Azure RTOS ThreadX to achieve the fastest possible performance. For example, Azure RTOS NetX can typically achieve near wirespeed data transfers on an 80-MHz processor (or less), while using only a small percentage of the processor cycles.

Simple, easy-to-use

Azure RTOS NetX is simple to use. The Azure RTOS NetX API is both intuitive and highly functional. The API names are made of real words and not “alphabet soup” or highly abbreviated names that are so common in other networking products. All Azure RTOS NetX APIs have a leading nx_ and follow a noun-verb naming convention. Furthermore, there is a functional consistency throughout the API. For example, all APIs that suspend have an optional timeout that functions in an identical manner for APIs. For legacy applications, Azure RTOS NetX offers an additional BSD socket compatible layer. This layer helps developers migrate large networking applications with ease.

Interoperability verification

Azure RTOS NetX conforms to RFC standards and offers complete interoperability with devices for most vendors. Azure RTOS NetX also utilizes the industry standard IxANVL (Automated Network Validation Library) for the Azure RTOS NetX core TCP/IP protocol implementation.

Advanced technology

Azure RTOS NetX is advanced technology that includes:

  • Piconet™ architecture
  • automatic scaling
  • UDP Fast-Path Technology™
  • flexible packet management
  • zero-copy API and implementation
  • multihomed support
  • optional timeout on all suspension
  • static routing support
  • Azure RTOS TraceX system analysis support

Fastest time-to-market

Azure RTOS NetX is easy to install, learn, use, debug, verify, certify, and maintain. As a result, Azure RTOS NetX is one of the most popular TCP/IP stacks for embedded IoT devices, including many SoCs from Broadcom, Gainspan, etc. Our consistent time-to-market advantage is built on:

  • quality documentation – please review our Azure RTOS NetX User Guide and see for yourself!
  • complete source code availability
  • easy-to-use API
  • comprehensive and advanced feature set

One Simple License

There is no cost to use and test the source code and no cost for production licenses when deployed to pre-licensed devices, all other devices need a simple annual license.

Full, highest-quality source code

Throughout the years, Azure RTOS NetX source code has set the bar in quality and ease of understanding. In addition, the convention of having one function per file provides for easy source navigation.

Azure RTOS NetX runs on most popular 32/64-bit microprocessors, out-of-the-box, fully tested and fully supported, including the following advanced architectures:

Analog Devices: SHARC, Blackfin, CM4xx

Andes Core: RISC-V

Ambiqmicro: Apollo MCUs

ARM: ARM7, ARM9, ARM11, Cortex-M0/M3/M4/M7/A15/A5/A7/A8/A9/A5x 64-bi/A7x 64-bit/R4/R5, TrustZone ARMv8-M

Cadence: Xtensa, Diamond

CEVA: PSoC, PSoC 4, PSoC 5, PSoC 6, FM0+, FM3, MF4, WICED WiFi

Cypress: RISC-V

EnSilica: eSi-RISC

Infineon: XMC1000, XMC4000, TriCore

Intel; Intel FPGA: x36/Pentium, XScale, NIOS II, Cyclone, Arria 10

Microchip: AVR32, ARM7, ARM9, Cortex-M3/M4/M7, SAM3/4/7/9/A/C/D/E/G/L/SV, PIC24/PIC32

Microsemi: RISC-V

NXP: LPC, ARM7, ARM9, PowerPC, 68 K, i.MX, ColdFire, Kinetis Cortex-M3/M4

Renesas: SH, HS, V850, RX, RZ, Synergy

Silicon Labs: EFM32

Synopsys: ARC 600, 700, ARC EM, ARC HS

ST: STM32, ARM7, ARM9, Cortex-M3/M4/M7

Tl: C5xxx, C6xxx, Stellaris, Sitara, Tiva-C

Wave Computing: MIPS32 4K, 24 K, 34 K, 1004 K, MIPS64 5K, microAptiv, interAptiv, proAptiv, M-Class

Xilinx: MicroBlaze, PowerPC 405, ZYNQ, ZYNQ UltraSCALE

All timing and size figures listed are estimates and may be different on your development platform.