 |
Seamless VxWorks Integration |
Turbo V4 | Hyper V6 | IPV6
Features | IPV6 Extension Header Support | V4
to V6 Transition Support | Virtual Routing Capabilities
| Debugging Support | Binary
Compatibility | Management Framework
NetF1 is a robust, lean, flexible and high performance network
stack implementation. It supports standard protocols like TCP,
UDP, IP, IPv6, ICMP and IGMP. NetF1 can be configured to work as an IPv4 or an
IPv6 router. In addition, it also provides a virtual routing framework, which
allows the creation of multiple isolated and managed virtual "routers"
in a single physical system. Given its ability to scale out optional features
and its special emphasis on low resource environments, NetF1 provides the essential
functionality required by an embedded device to work either as a high performance
connected end station or router.
NetF1 requires no special VxWorks source code modifications and works seamlessly
within the VxWorks environment, while taking full advantage of native OS facilities.
NetF1 installs itself as a socket backend at the top, and on top of the device-independent
MUX layer at the bottom. Network applications interact with VxWorks’ socket
front-end, allowing them to access NetF1’s core high-performance enhanced
functionality instead of the native networking stack via standard BSD sockets.
It works with any existing data-link layer implementation and is binary compatible
with standard END drivers without the need for driver source or recompilation.
Top
NetF1 comes with 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
in the future.
Top
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.
Top
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
NetF1 routers support:
- IPv6 packet forwarding
- Static Route entries to be configured into routing table
- Solicited/Unsolicited advertisements through 'radvd' program
- NetF1 supports the following four IPV6 extension headers.
- Hop-by-Hop options header
- Destination options header
- Routing header
- Fragment header
Support for security header extensions is also slated for
a future release to be available soon.
Top
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 a V6-unaware network
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.

Top
Virtual routers can be thought of as 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
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.

Top
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.
Top
All standard network applications such as Telnet, FTP, HTTP servers that run on
VxWorks and follow 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
run without modification. Enhanced features within NetF1 can be activated through
the use of NetF1 APIs. Further, NetF1 is binary compatible with VxWorks binary
END drivers.
Top
Most of the 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.
Top
|