|
|
 |
| NetF1 |
| High Performance IPv4 /
IP v6 stack and Virtual Routers |
|
NetF1
is a high performance, feature rich and
hardware-acceleration capable embedded TCP/IP stack
implementation with an included virtual routing framework.
It includes a complete implementation of multi-instance
capable TCP, UDP, IP, IPv6, ICMP, and IGMP designed
specifically for use in low-resource embedded
environments, where unused stack components can be scaled
out or replaced with hardware equivalents. With full
support for host and IPv4 / IPv6 router mode, NetF1 offers
a superset of capabilities provided by many other
host-only or router-only stacks including unnumbered
interface support and interface identification for
send/receive. This extensive feature-set does not come at
the expense of performance either -- higher performance,
binary compatibility with existing drivers and
API-compatibility with existing socket based network
applications are just a few reasons where NetF1 outpaces
its peers. Further, it also includes the ability to
optionally create highly multi-threaded multiple isolated
and managed virtual "routers" in a single physical system
thereby lending itself to use in embedded environments
that need to separate out network backplane communication,
or in ISP equipment that needs to support multiple routing
protocols for multiple customers.
|
|
|
|
|
|
|
|
|
|
|
|
| Turbo V4 |
| NetF1 includes a
high performance implementation of TCP/IP protocols and
RFC implementations based on IPv4. This replaces the
network stack provided with the OS and transparently
provides a full-featured and highly concurrent
alternative for a wide variety of connectivity
applications for embedded devices. Included is a core
set of functionality such as support for multicasting,
IGMP v2, DHCP, and run-time configuration support
through a BSD-style sysctl facility along with a
system-wide MIB tree for ease of management. Special
attention to modularity within the core stack makes it
possible to scale out any functionality not required by
the application, as well as replace CPU-intensive
functions with hardware equivalents (hardware
acceleration) implemented in an ASIC, FPGA, or network
processor. |
 |
|
Hyper V6 |
|
With the IPv4 address space depleting
rapidly, there is an accelerating move to adopt the new version
of IP, IPv6, in embedded applications. Besides the 128-bit
address space (as opposed to the 32-bit address space of IPv4),
IPv6 also has important advantages, such as a simpler header format, better
option and extension support, provisions for security and QoS
management, and easier address auto-configuration. NetF1’s
robust, fast and standards-based implementation of IPv6 enables
embedded network applications to exploit the improvements in
quality of service, security capabilities, and reliability
inherent in this new technology with minimal integration effort.
Overloaded routing systems can immediately leverage the routing
memory space efficiency of IPv6 along with the extended address
space available to it. NetF1’s IPv6 is as much as an order of
magnitude faster than other embedded implementations. Full
support for IPv6 security is available via TeamF1’s V-IPSecure
add-on IPsec/IKE module. |
|
 |
Customization
Flexibility |
 |
 |
 |
|
 |
Available in full-source format. |
|
 |
Run-time configurable through sysctl interface. |
|
 |
Easily hooked up to SNMP agents. |
|
 |
Customization hooks and callouts. |
|
 |
Unwanted components can be scaled out. |
|
 |
Choice of buffering schemes. |
|
 |
Choice of threading models. |
|
 |
Designed for future hardware acceleration. |
|
|
 |
 |
 |
 |
|
|
|
|
IPv6 Features |
|
In addition to supporting standard V6
networking protocols such as ICMP6 and Multicasting, NetF1
supports all the required features for an operational model as
prescribed by the IPv6 related RFC standards. |
|
NetF1 hosts (non-routers) support the
following features: |
 |
Formation of
interface identifier, link/site/global address
generation from supplied prefix. |
 |
Neighbor
Discovery Algorithm. |
 |
Site
Renumbering/Link Address change processing. |
 |
Multicast
Scoping/Anycast addressing Support. |
 |
Basic and
Advanced Socket Extensions for new application
development. |
 |
ICMP Error
message processing support. |
 |
Router
Solicitations. |
 |
Security
(IPsec) using V-IPSecure. |
|
|
NetF1 routers support: |
 |
IPv6 packet
forwarding. |
 |
Static Route
entries to be configured into routing table. |
 |
Solicited/Unsolicited advertisements through 'radvd'
module. |
|
 |
|
IPv6 Extension Header Support |
|
NetF1 supports the following four IPv6
extension headers: |
 |
Hop-by-Hop
options header. |
 |
Destination
options header. |
 |
Routing
header. |
 |
Fragment
header. |
|
|
Support for security extensions are
available by using NetF1 with TeamF1’s V-IPSecure product. |
 |
|
V4 to V6 Transition Support |
|
Since most of the Internet and
supporting routers are currently based on IPv4, NetF1
provides built-in support for various transition mechanisms
which allow the IPv6 stack to co-exist with IPv4
implementations. It enables the use of a dual-mode stack
which handles both IPv4 and IPv6, as well as provides for a
tunneling capability in which IPv6 packets can be tunneled
through IPv6-unaware networks encapsulated in IPv4 packets.
This gives embedded developers the ability to add support
for the next version of Internet Protocol while maintaining
backward compatibility with the current IPv4 standard. |
 |
|
 |
 |
|
Virtual Routing Capabilities |
|
"Virtual routers" are multiple logical
router instances running on a single physical router system.
By modularizing and isolating the different instances of the
routing functionality, and dedicating separate resources of
the physical system to each logical instance, each virtual
router can run independently as a full-fledged router with
its own set of routing protocols. The NetF1 virtual router
framework replicates the networking stack up to the IP layer
including data structures such as RTCaches, Route Tables,
interface lists and packet receive queues, to achieve
complete segregation of user data. Each router instance is
thus individually controlled and is isolated from the other
instances. Further, the TCP/IP processing for each router
instance is delegated to a specialized logical software
module copy making it an ideal fit for custom hardware
off-load applications, such as hardware-based packet
forwarding in carrier-class applications. Virtual routing
support within NetF1 can be enabled for both IPv4 and IPv6,
and combinations of the two can also co-exist. Third-party
protocols including OSPF, BGP, and MPLS can run seamlessly
within the virtual routing framework, attached to specific
virtual router instances. |
 |
|
 |
 |
|
Debugging / Trace Support |
|
NetF1 provides debugging support for
application developers in the form of "show" routines and a
trace library. The "show" routines keep track of, and
display statistics for various protocols such as TCP, UDP,
ICMP, IGMP, IPv6, etc. They can also be used to monitor the
status of important tables such as multicast, neighbor
discovery, and ARP caches. The trace library gives a view of
function call sequence and execution time taken for each
routine. Tracing is enabled through the use of special
macros to instrument the code with configurable resolution,
so that the run-time view of the network stack execution can
be captured in the form of a dynamic snapshot to a buffer
that can be analyzed later. The flexible sysctl interface
also allows for convenient control and observation of the
stack characteristics. |
 |
|
Binary Compatibility |
|
All standard network applications such as
Telnet, FTP, and HTTP servers that run on VxWorks using
POSIX standards are binary compatible with NetF1, and can
run without recompilation. Since the interface to the
network stack is provided by means of standard sockets
within VxWorks, all custom socket-based applications also
run without modification. Enhanced features within NetF1 can
be activated through the use of special NetF1 APIs. Further,
NetF1 is binary compatible with VxWorks binary END drivers
and does not require driver source to be available. With
minor modifications, older BSD-style drivers may also be
used with NetF1. |
 |
|
Management Framework |
|
Configurable parameters in the various
stack layers can be dynamically set using a sysctl() call,
while their default values can be specified at compile time.
NetF1's internal viewable and controllable functions is
organized into a Management Information Base (MIB) tree with
hierarchically named sysctl variables corresponding to the
various OIDs. The list of variables available through this
interface can be configured in at compile time. Sysctl
handlers can be used to retrieve and set values of sysctl
variables. Via this interface, NetF1 can be hooked up to any
SNMP agent built into an embedded networking application. |
|
|
|
|
|