Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11i Version 3 Release Notes: HP 9000 and HP Integrity Servers > Chapter 7 Internet and Networking

ARPA Transport

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

Summary of Change

This section describes features and enhancements added for HP-UX 11i v3.

What’s New for Customers Migrating from HP-UX 11i v1 September 2005?

  • Security Containment - Some security containment components have migrated from the HP-UX 11i Security Containment subsystem to the Transport subsystem.

  • Sendfile/UFC - sendfile(2) runs on Unified File Cache (UFC) instead of buffer cache.

  • UNIX 2003 Conformance - Transport networking and system calls conform to UNIX03 standards.

  • Large Hostname Support - Host names can be configured with up to 256 characters.

  • Tru64 Application Migration - System call enhancements for greater compatibility with Tru64-UNIX. With Tru64 you can easily migrate to HP-UX/Itanium®-based.

  • ndd tunable changes:

    • Tunable tcp_conn_strategy is deprecated.

    • Tunable socket_caching_tcp is the only tunable used to enable or disable the socket caching feature

    • Tunable socket_caching_tcp can enable the caching of TCP sockets for both AF_INET and AF_INET6.

    • Tunables ip_ipif_status and ip6_ipif_status will display an additional field cid for HP-UX 11i Security Containment. If HP-UX 11i Security Containment is not turned on, the cid is 0. If HP-UX 11i v2 Security Containment is turned on, it shows a decimal number.

    • Tunable tcp_frto_enable is added for F-RTO.

  • Routing Socket Interface is a new feature for HP-UX 11i v3. It uses the new PF_ROUTE domain to update the routing table in the kernel.

  • The read(1) system call can return ECONNREFUSED or ECONNRESET, depending on when the TCP_RST arrives. However, recv(2) returned only ECONNRESET. The inconsistency in errnos returned by read() and recv() after a nonblocking connect(2) are corrected to return the same errno for the same situation.

  • The usage of the PS_SS_BOUND and SS_BOUND flags are deprecated to retract exposure of implementation internals.

  • The include file /usr/include/sys/unpcb.h will no longer be used by the kernel.

  • SO_SNDBUF and SO_RCVBUF - The socket layer allows users to send more than SO_SNDBUF bytes and receive more than SO_RCVBUF bytes for non-blocking SOCK_STREAM sockets. This is the same as the behavior for blocking and other types of sockets such as SOCK_DGRAM.

  • NOSYNC IP Lower - The synchronization model of IP lower changes from module sync to NOSYNC to allow IP module to handle requests in parallel.

  • Forward-Retransmission Timeout (F-RTO) - Enhancements to TCP retransmission algorithm more effectively deal with spurious timeouts.

  • Congestion Window Validation - TCP Congestion Window Validation supported by RFC 2861 can be used to respond to spurious timeouts detected by F-RTO. Refer to the RFC at http://www.ietf.org/rfc/rfc2861.txt?number=2861 for details.

  • Enhanced route command - New source option provides users greater control by specifying the interface to associate with a route.

  • 64-bit libnm support - Enhancement support 64-bit statistics when accessed through libnm user space library.

  • Multiple TCP default queues - Allows multiple queues for packets processing so there are different queues running on different processors/cells.

  • UDP multiple bind locks - This UDP internal change improves scalability when there are large numbers of UDP sockets.

  • Dynamic Keying support for Mobile IPv6 and IPSec is added.

  • All IPv4 and IPv6 ioctl requests can be sent to either IPv4 or IPv6 socket.

  • An alternative compilation and linkage method for X/Open Sockets applications - This method slightly deviates from X/Open specification, however it allows an executable to include binary objects compiled to X/Open Sockets specification and binary objects compiled to BSD Sockets specification.

What’s New for Customers Migrating from HP-UX 11i v2 June 2006?

See “What’s New for Customers Migrating from HP-UX 11i v1 September 2005?”

Impact

  • New functionalities users can use include:

    • routing socket

    • F-RTO

  • The following interfaces and system calls are impacted by UNIX 2003 Conformance:

    • To conform to UNIX 2003, customers must define _XOPEN_SOURCE to 600. To conform to UNIX 95, customers must continue to define _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED. Please note that applications using the X/Open Sockets must be linked with the Xnet library for UNIX 2003 and UNIX 95 conformance.

    • recvmsg() and sendmsg()return EMSGSIZE if the length of the msghdr structure is equal to 0, less than 0, or greater than MAXIOVLEN.

    • setsockopt() and getsockopt() return ENOPROTOOPT error number for SO_RCVLOWAT, SO_SNDLOWAT, SO_RCVTIMEO, and SO_SNDTIMEO socket options.

    • if_freenameindex(), if_indextoname(), if_nameindex(3), if_nametoindex():

      The if_*() APIs now support both IPv4- and IPv6-configured network interfaces and are moved from the IPv6 library to the C library. To support the if_*() changes, the IPv4 and IPv6 loopback interfaces are now configured with the same index number during system bootup. The if_nameindex structure and if_*() function prototypes have also been moved from net</if6.h> to <net/if.h>.

    • sockatmark() is a new interface specified in the UNIX03 standards and is added to the C library.

  • ndd tunable changes require that all references to tcp_conn_strategy in user scripts and programs be replaced with socket_caching_tcp.

  • Applications that rely on the unintended behavior of expecting only ECONNRESET from recv() after a non-blocking connect(2) are affected.

  • Applications that use the PS_SS_BOUND or SS_BOUND flags should be modified to remove access to either of these flags. If an application needs to determine if a SOCK_DGRAM-type socket is bound, it can check the following two fields in struct pst_socket

    • determine if pst_type field is set to PS_SOCK_DGRAM

    • determine if pst_boundaddr field is non-NULL

  • For applications that include the /usr/include/sys/unpcb.h file but do not access any of the fields of struct unpcb there is no impact.

  • There is also no impact for applications that include the /usr/include/sys/unpcb.h file and access any of the fields of struct union. However, since the kernel is not using the struct unpcb but instead has its own private structure, struct unpcb is not updated to keep up with kernel’s private data structure.

  • In prior releases, if an executable includes binary objects compiled to X/Open Sockets and binary objects compiled to BSD specification, it may result in unexpected behavior, including abnormal termination and unexpected socket errors. This problem can now be avoided by:

    • Define _HPUX_ALT_XOPEN_SOCKET_API, in addition to either defining _XOPEN_SOURCE=600 in UNIX03, or _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED in UNIX95;

    • Link with C library instead of Xnet library. Xnet library should not be included in the link line.

Compatibility

  • UNIX 2003 Conformance

    • System calls recvmsg() and sendmsg() now return EMSGSIZE if the length of the msghdr structure is less than or equal to 0 or greater than MAXIOVLEN for both UNIX95 and UNIX03 modes.

    • The moving of the if_*() APIs from the IPv6 library to the C library introduces an incompatibility if a program using the APIs was built using the IPv6 shared library and the C archived library on older releases. In order to continue building programs using the IPv6 shared library and the C archived library, users must specify the C archived library before the IPv6 library in the link order.

  • If an application depends on the fields of struct unpcb or the size of the struct unpcb for certain functionality and expects it to be the same as the kernel’s version, the application may not work properly because the application is referring to a data structure that the kernel no longer uses.

  • The pstat_getsocket() system call does not return the PS_SS_BOUND flag in the pst_state field of struct pst_socket.

Performance

Major performance improvements in ARPA Transport include cache miss latency reduction, spinlock usage, prefetching, elimination of static false sharing, rearrangement of key data structures, path length reduction, and enhancements to improve scalability for high end systems.

The following are changes to improve performance:

  • NOSYNC

  • F-RTO

  • Multiple TCP default queues

  • UDP multiple bind lock

  • Congestion Window Validation

Documentation

Documents:

Manpages:

Include files:

  • /usr/include/sys/pstat/socket_pstat_body.h

  • /usr/include/sys/socketvar.h

  • /usr/include/sys/socket.h

Obsolescence

The following are obsoleted or removed in HP-UX 11i v3 and future releases:

  • ndd tunable tcp_conn_strategy

  • PS_SS_BOUND flag in the pst_state field of struct pst_socket

  • SS_BOUND flag defined in /usr/include/sys/socketvar.h

The following is obsoleted or removed in HP-UX 11iv3 and future releases:
The file /usr/include/sys/unpcb.h is no longer used by the kernel.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2006-2007 Hewlett-Packard Development Company, L.P.