ABOUT US  |  PRODUCTS  |  LIBRARY  |  PARTNERS  |  SUPPORT  |  NEWS  |  DOWNLOADS  |  ORDER  |  CONTACT
 
  You are here: Home > Products > TCP/IP Products > smxNS
   
 
TCPIP Products


smxNS™


smxNS is a compact TCP/IP networking stack for use with real-time, embedded applications. It provides drop-in support for many processors and tool chains. A large selection of networking protocols is available for use with smxNS. Complete source code and test programs are provided. smxNS is licensed per application and is royalty free.

Components

smxNS comes with complete source code that covers all layers in a TCP/IP network stack, from high level network protocols to device drivers.



Application Layer  (c = client, s = server, * = included in base package)

  • BOOTP c*   Allows a client to obtain its IP address and boot file from a BOOTP server.
  • DHCP c*/s   Dynamic Host Control Protocol. Allows a client to obtain a temporary IP address.
  • Ping c*   Uses ICMP to report if a remote host is responding.
  • Telnet s*   Acts as a command processor.
  • TFTP c*/s*   Trivial File Transfer Protocol.
  • FTP c/s   File Transfer Protocol.
  • POP c   Receive email from an email server.
  • SMTP c/s   Send email (c) or accept email (s).
  • SNMP   Simple Network Management Protocol agent v1, v2, and v3.

Transport Layer

  • TCP*   Transmission Control Protocol - for reliable connection. Required for FTP and Telnet.
  • UDP*   User Datagram Protocol - unreliable (best effort), connectionless transfer. Used by DHCP, DNS, SNMP, and TFTP.

Internet Layer

  • IP*   Internet Protocol v4
  • ARP c*/s*   Address Resolution Protocol - Converts IP to Ethernet address.
  • RARP c*/s*   Reverse Address Resolution Protocol - Converts Ethernet to IP address.
  • ICMP*   Internet Connection Management Protocol
  • IGMP   Internet Group Management Protocol (used for multicast).
  • PPPoE c/s   PPP over Ethernet. Allows connecting to an ISP via Ethernet, when available.
  • NAT   Network Address Translation - allows sharing an IP address among multiple devices on a private network.

Network Access (Link) Layer

  • Ethernet*   Interface to Ethernet drivers, which process the Ethernet protocol.
  • SLIP*   Serial Line Internet Protocol.  For connection via serial lines.
  • PPP   Point to Point Protocol. For connection to ISPs (Internet Service Providers). Includes CHAP and MS-CHAP authentication protocols.

Device Drivers

  • Ethernet   Popular Ethernet controllers are supported
  • Serial   UART drivers are provided.


Advantages

Flexible Configuration

Because code and data space are at a premium in an embedded system, smxNS can be configured to use only those clients, servers, protocols, devices drivers, and link layers needed by an application. By judiciously selecting features and capabilities, the smxNS TCP/IP stack can be reduced to as little as 25KB code space, depending upon the processor.

Clean Modular Design

smxNS implements a clean, modular design. Network layers provide standardized APIs that present a common set of entry points for each layer in the network from the transport layer down to the device driver.

Choice of API

Network applications can be written to use either the standard Berkeley Sockets API, or our proprietary Dynamic Protocol Interface (DPI). DPI is a simplified API that takes little code space and is easy to use. Sample applications demonstrating both of these APIs are included in smxNS. The Sockets API facilitates interfacing with third party or legacy software. Both APIs can be used simultaneously.

Zero Copy

smxNS supports zero-copy packet processing for optimum performance and efficiency. Information to be sent is assembled in a single buffer, which is passed from layer to layer with no copying, and then sent directly by the network controller. Likewise, each received packet is loaded into a buffer by the network controller, which is then read by each layer and delivered to the application with no copying. If the network controller does not support DMA, there is one copy operation, from the buffer in the network controller to the smxNS buffer in memory. Use of the zero-copy interface is demonstrated in example code that ships with smxNS.

Routing

smxNS supports up to 256 network interfaces, and can route packets between interfaces. A network interface is defined as a physical connection to a network (e.g. Ethernet) or to a serial link. Hence, smxNS could route packets from an Internet Service Provider (ISP) to devices connected to an Ethernet Local Area Network (LAN). ARP would be used to convert between IP and Ethernet addresses.

Built in Tests

smxNS comes with a set of confidence tests and debugging aids that permit verification of proper operation on any platform. Several state display functions allow easily checking the operation of features implemented in an application and tracking down unexpected behavior.

Ethernet Drivers

A choice of Ethernet drivers and link layers is available for smxNS. These drivers provide support for the most popular network controllers including Fast Ethernet (100 Mbit/sec) controllers, giving an “out-of-the-box” solution to your networking needs.

  • AMD AM7990 / 79C96x
  • Atmel AT91SAM7, SAM9, RM9200
  • Cirrus Logic EP93xx
  • ColdFire FEC and 548x/7x FEC
  • Crystal CS8900
  • Davicom DM9000
  • DEC DC21140
  • Intel i82557
  • Novell NE2000
  • NXP LPC2xxx EMAC
  • SMSC LAN91C111
  • STMicro STR9

New drivers are being added steadily, so call if you do not see the driver you need.

Other Network Protocols

A rich selection of other network protocols is available for use with smxNS. The following is a brief discussion of each.

DHCP Server

smxNS DHCP (Dynamic Host Control Protocol) server delivers host configuration parameters, such as IP address, to a client host.

HTTP Client

smxNS HTTP (Hypertext Transfer Protocol) client allows retrieving a web page from a web server. This is not intended for use as a general purpose browser, but rather as a mechanism for automated retrieval of information that is available via a web page, for configuration and control of a remote device.

IGMP

smxNS IGMP (Internet Group Management Protocol) allows sending messages to multiple hosts in a multicast group. This is more efficient than broadcasting messages to all hosts in a network.

NAT

smxNS NAT (Network Address Translation), which is written based on industry standard RFC 2663, enables local-area network (LAN) hosts to use one set of IP addresses for internal traffic and communicate with external networks by presenting a single routable IP address.

  • It allows several local devices to share a single external IP address and combine multiple connections into a single Internet connection.
  • It provides firewall protection by hiding internal IP addresses from the Internet.
  • There is no need to reconfigure the NAT-enabled router when new devices are added to the LAN.

POP3

smxNS POP3 (Post Office Protocol) client enables an embedded device to receive email from an email server. It supports MIME attachments.

PPP

smxNS PPP (Point to Point Protocol) is based on industry standard RFC 1661 for establishing a link to a single remote host, such as an Internet Service Provider (ISP), often via a serial or modem link. A dialer and sample dial-up scripts are included, as well as a runtime script interpreter that allows the system to be tailored to proprietary modems or ISP configurations. The system can be localized by pulling in certain script parameters (such as a dial up number) from non-volatile memory.

PPPoE

smxNS PPPoE (PPP over Ethernet) is based on industry standard RFC 2516 for connecting the users on an Ethernet network to the Internet through a shared access to a broadband medium, such as a single DSL line, wireless device, or cable modem. smxNS PPPoE can be configured to support operation as either a PPPoE Host or a PPPoE Access Concentrator. This means that smxNS can be incorporated into a device that accesses the Internet through a PPPoE router, or it can be incorporated into a PPEoE router acting as an Access Concentrator that serves PPPoE hosts on a local Ethernet network.

The smxNS PPPoE implementation requires virtually no more knowledge on the part of the end user than that required for standard dial-up Internet access. In addition, PPPoE requires no major changes in the operational model for Internet Server Providers (ISPs) and carriers.

SMTP

smxNS SMTP (Simple Mail Transport Protocol) client enables an embedded device to send email. It supports MIME attachments. SMTP server is also available to accept and forward email from SMTP clients.

SNMP Agent

smxNS SNMP (Simple Network Management Protocol) Agent allows a device to be accessed and controlled from a central SNMP network monitor. (Network monitoring software is provided by other companies.) smxNS SNMP Agent includes a MIB compiler and may be used with both MIB-II and user-created MIBs. The MIB compiler converts user MIBs to the internal format needed by the SNMP agent. Options offered are SNMP v1/2 and SNMP v1/2/3. SNMPv1 has no security; SNMPv2 has moderate security; and SNMPv3 has high security.

Web Server

The smxNS Web Server allows an embedded system to present real-time information to desktop Web browsers. It is a full-featured HTTP server that is HTTP 1.0 compliant and includes HTTP 1.1 features such as authentication and server-side includes. META commands and server-side includes allow dynamic page content (e.g. sensor readings) to be included in static HTML pages. New HTML web pages can be added while the application is running, by writing them to the file system (via removable media, FTP, etc) or simple RAM disk if no file system is present. Web pages can be created using standard web design tools and converted to a C file to link into the application, using a utility included with the web server. A file system is not required; HTML pages can be stored in memory.

smxNS Performance (KB/sec)

Family
Processor
MHz
Mem
Ethernet
TCP
S
TCP
R
ARM7
AT91SAM7X256
48
SRAM
on-chip
1315
827
ARM7
LPC2468
72
SRAM
on-chip
966
725
ARM9
AT91SAM9260
210
SDRAM
on-chip
857
532
CF
MCF5282
64
SDRAM
on-chip
1131
845
CF
MCF5329
240
SRAM
on-chip
3048
3276
x86
VIA C3
800
SDRAM
i825xx
6687
6375

S = Send     R = Recieve

Notes

  • MHz is the clock speed we tested, not necessarily the top rated speed of the processor.
  • SRAM is internal memory on the processor, and SDRAM is external memory.
  • VIA C3 may be equivalent to 266MHz Pentium II.
  • Benchmarking performed using nuttcp v5.3.1.

 

smxNS Sizes

Configuration

Setting
Name

Value

Network Interfaces
NNETS
1
Connections
NCONNS
4
Router Table Entries
NCONFIGS
8
Frame Buffers
NBUFFS
5

Memory Requirements (KB)

Component
ARM Thumb
ARM
ColdFire
RAM
ROM
RAM
ROM
RAM
ROM
Core Library

2.0 + 10.0

25.6

2.0 + 10.0

37.1

2.4 + 11.4

48.8

DPI API

0.0

2.2

0.0

3.3

0.1

3.3

Socket API

0.1

4.4

0.1

6.4

0.3

6.3

DHCP c

0.1

3.2

0.1

4.5

0.1

5.0

DHCP s

2.0 + 0.1

5.7

2.0 + 0.1

8.2

2.4 + 0.3

8.9

FTP c

1.0 + 0.6

3.4

1.0 + 0.6

4.5

2.4 + 0.7

7.0

FTP s

2.7 + 0.1

3.2

2.7 + 0.1

4.2

2.7 + 0.3

4.7

HTTP c

1.0 + 1.5

3.2

1.0 + 1.5

3.8

2.4 + 1.5

5.6

IGMP

0.4

2.9

0.4

3.8

0.8

4.8

NAT

0.4

4.0

0.4

8.7

0.5

3.5

POP3 c

tbd + 0.0

1.6

tbd + 0.0

2.3

tbd + 0.1

4.0

PPP

8.0

15.4

8.0

25.1

2.6

22.4

PPPoE c

8.5

18.6

8.5

29.7

3.0

27.3

PPPoE s

8.4

18.8

8.4

29.9

2.9

27.4

SMTP c

tbd + 0.0

2.1

tbd + 0.0

2.8

tbd + 0.1

4.4

SMTP s

tbd + 0.3

1.8

tbd + 0.3

2.5

tbd + 0.4

4.3

SNMP v2

2.7 + 4.0

15.2

2.7 + 4.0

22.4

2.7 + 4.7

18.4

SNMP v3

 2.7 + 9.5

25.8

2.7 + 9.5

39.0

2.7 + 10.4

30.2

Telnet Server

0.6 + 0.0

0.7

0.6 + 0.0

0.7

1.2 + 0.0

1.3

Web Server

2.7 + 7.0

12.3

2.7 + 7.0

16.9

3.0 + 8.0

19.3



Notes
  • In the RAM columns, the second or only number is the data requirement. The first number is the approximate stack usage for a multitasking system. Otherwise, in a non-multitasking system, ignore those and assume about 3 to 4KB extra stack depth. Some applications, such as the web server, have extra deep stack needs if features such as web form processing are used. tbd indicates we have not yet measured the size.
  • These memory requirements are typical for a system that services one active TCP session at a time.
  • The Core Library includes support for TCP, UDP, IP, ICMP, ARP, DNS c, and an Ethernet driver.
  • Socket API and DHCP c support are commonly used but listed separately.
  • Support for IP fragmentation and reassembly is included.
  • Support for IP Options Headers is not included.
  • PPPoE client and server values include PPP
  • For each additional active session, smxNS should be configured with NCONNS increased by 1, NCONFIGS by 1, and NBUFFS by 5. So each active session (client or server) adds about 8KB to the RAM requirement.


For more information

2/27/08     back to top


...............................................................

................................................................

  Register now for more info.
 
 
smxNS Features

  • Embedded TCP/IP
  • Optimized for use with SMX® Real Time Operating System
  • Processor Independent
  • User configurable
  • Royalty-free
  • Small footprint (25K - 49K bytes code space depending upon the processor and compiler)
  • Ethernet drivers for latest SoCs
  • ROMable and reentrant
  • Includes complete source code in ANSI C
 
 
 
 
 
HOME  |  SITEMAP  |  CONTACT