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.
- 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
- Ensure the use_isno option is enabled using
a command similar to the following:
- 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
- Set the tcp_recvspace and tcp_sendspace to
64K and enable tcp_nodelay by using one of
the following:
- 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