Interface-Specific Network Options

Interface-Specific Network Options (ISNO) allows IP network interfaces to be custom-tuned for the best performance.

Values set for an individual interface take precedence over the systemwide values set with the no command. The feature is enabled (the default) or disabled for the whole system with the no command use_isno option. This single-point ISNO disable option is included as a diagnostic tool to eliminate potential tuning errors if the system administrator needs to isolate performance problems.

Programmers and performance analysts should note that the ISNO values will not show up in the socket (meaning they cannot be read by the getsockopt() system call) until after the TCP connection is made. The specific network interface that a socket actually uses is not known until the connection is complete, so the socket reflects the system defaults from the no command. After the TCP connection is accepted and the network interface is known, ISNO values are put into the socket.

The following parameters have been added for each supported network interface and are only effective for TCP (and not UDP) connections:

  • rfc1323
  • tcp_nodelay
  • tcp_sendspace
  • tcp_recvspace
  • tcp_mssdflt

When set for a specific interface, these values override the corresponding no option values set for the system. These parameters are available for all of the mainstream TCP/IP interfaces (Token-Ring, FDDI, 10/100 Ethernet, and Gigabit Ethernet), except the css# IP interface on the SP switch. As a simple workaround, SP switch users can set the tuning options appropriate for the switch using the systemwide no command, then use the ISNOs to set the values needed for the other system interfaces.

These options are set for the TCP/IP interface (such as en0 or tr0), and not the network adapter (ent0 or tok0).

AIX® sets default values for the Gigabit Ethernet interfaces, for both MTU 1500 and for jumbo frame mode (MTU 9000). As long as you configure the interface through the SMIT tcpip screens, the ISNO options should be set to the default values, which provides good performance.

For 10/100 Ethernet and token ring adapters, the ISNO defaults are not set by the system as they typically work fine with the system global no defaults. However, the ISNO attributes can be set if needed to override the global defaults.

The following example shows the default ISNO values for tcp_sendspace and tcp_recvspace for GigE in MTU 1500 mode :
# ifconfig en0
en0: flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
        inet 10.0.0.1 netmask 0xffffff00 broadcast 192.0.0.255
        tcp_sendspace 131072 tcp_recvspace 65536
For jumbo frame mode, the default ISNO values for tcp_sendspace, tcp_recvspace, and rfc1323 are set as follows:
 # ifconfig en0
en0: flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
       inet 192.0.0.1 netmask 0xffffff00 broadcast 192.0.0.255
       tcp_sendspace 262144 tcp_recvspace 131072 rfc1323 1
Use the following settings to enable rfc1323 if the MTU size is 4096 bytes or larger and to set the tcp_sendspace and tcp_recvspace values to at least 128 KB for high speed adapter (gigabit or faster). Very high speed adapters are set to 256 KB. A "blank" value means the option is not set so it would inherit the global "no" setting.
Interface Speed MTU tcp_sendspace tcp_recvspace rfc1323 tcp_nodelay tcp_mssdflt
lo0 (loopback) N/A 16896 131072 131072 1    
Ethernet 10 or 100 (Mbit)            
Ethernet 1000 (Gigabit) 1500 131072 65536 1    
Ethernet 1000 (Gigabit) 9000 262144 131072 1    
Ethernet 10 GigE 1500 262144 262144 1    
Ethernet 10 GigE 9000 262144 262144 1    
Ether Channel Configures based on speed/MTU of the underlying interfaces.
Virtual Ethernet N/A any 262144 262144 1    
InfiniBand N/A 2044 131072 131072 1    

You can set ISNO options by the following methods:

  • SMIT
  • The chdev command
  • The ifconfig command

Using SMIT or the chdev command changes the values in the ODM database on disk so they will be permanent. The ifconfig command only changes the values in memory, so they go back to the prior values stored in ODM on the next reboot.