Interface-specific network options

TCP/IP interfaces must be specially tuned to achieve good, high-speed network performance (100 Mb or more). This effort is complicated by the fact that multiple network interfaces and a combination of traditional and high-speed TCP/IP interfaces can be used on a single system.

In the AIX® operating system, Interface Specific Network Options (ISNO) allow system administrators to tune each TCP/IP interface individually for best performance.

There are five ISNO parameters for each supported interface: rfc1323, tcp_nodelay, tcp_sendspace, tcp_recvspace, and tcp_mssdflt. When set, the values for these parameters override the system-wide parameters of the same names that had been set with the no command. When ISNO options are not set for a particular interface, system-wide options are used. When options have been set by an application for a particular socket using the setsockopt subroutine, such options override the ISNOs.

The network option use_isno, set with the no command, must have a value of 1 for the ISNOs to take effect. The default value for use_isno is 1.

Some high-speed adapters have ISNO parameters set by default in the ODM database.

Gigabit Ethernet interfaces, when configured to use an MTU of 9000, use the following ISNO values by default:

Name AIX 4.3.3 Value AIX 4.3.3 (4330-08) Value AIX 5.1 (and later) Value
tcp_sendspace 131072 262144 262144
tcp_recvspace 92160 131072 131072
rfc1323 1 1 1

Gigabit Ethernet interfaces, when configured to use an MTU of 1500, use the following ISNO values by default:

Name AIX 4.3.3 Value AIX 4.3.3 (4330-08) Value AIX 5.1 (and later) Value
tcp_sendspace 65536 131072 131072
tcp_recvspace 16384 65536 65536
rfc1323 0 not set not set

FDDI interfaces, when configured to use an MTU of 4352, use the following ISNO values by default:

Name Value
tcp_sendspace 45046
tcp_recvspace 45046

The ISNO parameters cannot be displayed or changed using SMIT. They can be set using the chdev command or the ifconfig command. The ifconfig command changes the values only until the next reboot. The chdev command changes the values in the ODM database so they are used on subsequent reboots. The lsattr or ifconfig commands can be used to display the current values.

The following examples show commands that can be used first to verify system and interface support and then to set and verify the new values.

  1. Verify general system and interface support using the no and lsattr commands.
    • Ensure the use_isno option is enabled using a command similar to the following:
      $ no -a | grep isno 
                use_isno=1
    • Ensure the interface supports the five new ISNOs using the lsattr -El command, as shown in the following:
      $ lsattr -E -l en0 -H 
                attribute   value  description 
                rfc1323                      N/A 
                tcp_nodelay                  N/A 
                tcp_sendspace                N/A 
                tcp_recvspace                N/A 
                tcp_mssdflt                  N/A
  2. Set the interface specific values, using either the ifconfig or chdev command. The ifconfig command sets values temporarily, which is recommended for testing. The chdev command alters the ODM, so customized values remain valid after reboot.
    • Set the tcp_recvspace and tcp_sendspace to 64K and enable tcp_nodelay by using one of the following:
      $ ifconfig en0 tcp_recvspace 65536 tcp_sendspace 65536 tcp_nodelay 1 
      $ chdev -l en0 -a tcp_recvspace=65536 -a tcp_sendspace=65536 -a tcp_nodelay=1
    • Alternatively, assuming the no command reports an rfc1323=1 global value, the root user can turn rfc1323 off for all connections over en0 with the following commands:
      $ ifconfig en0 rfc1323 0 
      $ chdev -l en0 -a rfc1323=0
  3. Verify the settings using the ifconfig or lsattr command, as shown in the following example:
    $ ifconfig en0 <UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
              en0: flags=e080863  
                  inet 9.19.161.100 netmask 0xffffff00 broadcast 9.19.161.255 
                  tcp_sendspace 65536 tcp_recvspace 65536 tcp_nodelay 1 rfc1323 0 
    $ lsattr -El en0 
              rfc1323         0           N/A               True 
              tcp_nodelay     1           N/A               True 
              tcp_sendspace   65536       N/A               True 
              tcp_recvspace   65536       N/A               True 
              tcp_mssdflt                 N/A               True