HP-UX TCP/IP Performance White Paper, March 2008

8
A single fragment dropped by the driver will cause an entire datagram to be unrecoverable. When the
remote machine picks up the remaining fragments, they will be queued in its reassembly queue, according
to the IP protocol. If this happens frequently, the entire IP reassembly queue on the receiving side will be
exhausted. This, in turn, would result in good packets being dropped because of the full buffer on the
receiving side.
To mitigate this problem, HP-UX uses Packet Trains. As each fragment is carved off, it is linked with the
other fragments for this write to form a packet train, until the entire datagram is processed. Then a request
is made to the driver to ensure that all of the fragments can be accommodated in one request. If so, then IP
passes down the packet train and the driver sends it to the card. If the driver cannot accommodate the
entire packet train, then the entire train is discarded. This reduces the host CPU utilization.
This feature is enabled by default, provided that the driver is capable of handling this request. Currently
only 1000 Mbit or faster interfaces support this feature.
To see if a driver has this feature enabled, enter the following command:
# ndd get /dev/ip ip_ill_status
If the output includes the keyword “TRAIN”, the driver supports this feature. For example:
ILL rq wq upcnt mxfrg err memavail ilmcnt name
00000000517990a8 000000005001e400 000000005001e580 00001 01500 000 00000000 000001 lan0
RUNNING BROADCAST CKO MULTICAST CKO_IN TRAIN