Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 1

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 1

Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 8

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 8

Appendix: Migrating from io-net

This appendix describes the compatibility between io-net and io-pkt.

For information about converting drivers, see the Porting an io-net driver to io-pkt technote.

Overview

The previous generation of the QNX Neutrino networking stack (io-net) was designed based on a modular approach. It served its purpose in the past by allowing users to separate protocols and drivers, but this came at the expense of incurring a significant amount of overhead when converting to a particular protocol's domain from io-net and vice versa.

Note that io-pkt and the new utilities and daemons aren't backward-compatible with io-net.


Changes to the networking stack


Changes to the networking stack.

Compatibility between io-net and io-pkt

Both io-net and io-pkt can co-exist on the same system. The updated socket library provided with io-pkt is compatible with io-net. This lets you run both io-net and io-pkt simultaneously.


Note: The reverse isn't true; if you use the io-net version of the socket library with io-pkt, unresolved symbols will occur when you attempt to use the io-pkt configuration utilities (e.g. ifconfig).

We've updated the following binaries for io-pkt:

Compatibility issues

Binaries
The following replaced binaries are known to have compatibility issues with io-net. Essentially, new utilities are likely to contain enhanced features that aren't supported by the old stack:

The following io-net binaries are known to have compatibility issues with io-pkt:

Sockets
The socket library is fully backward-compatible with all BSD socket API applications. This also extends to the routing socket.
Protocols
A bind() on an AF_INET socket now requires that the second argument have its (struct sockaddr *)->af_family member be initialized to AF_INET. Previously a value of 0 was accepted and assumed to be this value.
Drivers
A special “shim” layer makes drivers that were written for io-net compatible with io-pkt. For more information, see the Network Drivers chapter in this guide.

Behavioral differences

Simultaneous support

You can run both io-net and io-pkt simultaneously on the same target if the relevant utilities and daemons for each stack are present. Here are some specific issues you should be aware of:

Discontinued features

The io-pkt networking stack doesn't support the following features:

Using pfil hooks to implement an io-net filter

We recommend that you use pfil hooks to rewrite your io-net filter to work in io-pkt. Here are the basic steps:


Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 583

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/io-pkt_en/user_guide/migrating.html on line 583