Jump to content

System Management: Definition of SYSGEN LAN_FLAGS Parameter bit 16

  • PrintPrint

Environment

OpenVMS system

Questions/Symptoms



What is the definition of the SYSGEN LAN_FLAGS parameter bit 16?

Cause

N/A

Answer/Solution




DEFINITION:


Bit 16 of the SYSGEN LAN_FLAGS parameter was introduced by the operating system eco VMS732_LAN-V0700. This fix was made available in LAN patches for subsequent releases of OpenVMS. In OpenVMS 8.4, the enforcing of the maximum of 5000 buffers per lan device became the default behavior of the operating system.

The following is an excerpt from VMS732_LAN-V0700 describing why this SYSGEN parameter bit was added.

5.2.6 Excessive Pool Consumption

5.2.6.1 Problem Description:

On rare occasions, usually due to a network storm event,
resulting in large numbers of receive packets, it is
possible for pool to be consumed and not recovered. This
may result in system crashes with insufficient pool or
system sluggishness due to insufficient pool.

The problem is that some applications do not limit the
number of outstanding receive packets. When these
packets are returned to the LAN driver, they get put on
the appropriate pool lookaside list. If pool reclamation
is turned off, the size of the lookaside list will not
shrink. It is possible to get several hundred thousand
buffers on the lookaside list, when the LAN driver only
needs are few thousand. These buffers then represent
pool that is now stuck on the lookaside list with no
opportunity to be released.

An example is a LAN device affinitized to CPU 1 receiving
NISCA packets at the rate of 100k per second and
delivering them to PEDRIVER running on CPU 2. If
PEDRIVER can only process 50k per second, then pool will
be consumed at the rate of 50k buffers per second which
the network storm persists. At the end of the storm,
PEDRIVER would process all of the outstanding packets and
they would be deallocated to the lookaside list that is
used by the LAN driver. Since the LAN driver doesn't
need more than a few thousand buffers at a time, the
excess would remain on the lookaside list and would
represent pool that is unavailable to the system.

The LAN drivers allow applications to specify a maximum
limit on number of buffers outstanding, but TCP/IP and
NISCA (PEDRIVER) do not.

This change enforces a maximum limit of 5000 buffers
outstanding for any application running on a LAN device,
which when jumbo frames are in use, limits pool
consumption to about 45 megabytes.

If pool reclamation is in use, and if the limit of 5000
outstanding buffers is unreasonable, you can override
this restriction by setting the system parameter
LAN_FLAGS bit 16 (0x00010000).


HOW TO DISABLE:

This feature can be disabled by enabling bit 16. Since LAN_FLAGS is a dymanic parameter, it can be changed without rebooting the system. For example, if LAN_FLAGS was set to the value of 0, bit 16 could be enabled by issuing the following commands:

$ MCR SYSGEN
SYSGEN> USE ACTIVE
SYSGEN> SHOW LAN_FLAGS
Parameter Name Current Default Min. Max. Unit Dynamic
-------------- ------- ------- ------- ------- ---- -------
LAN_FLAGS 0 0 0 -1 Bitmask D
SYSGEN> SET LAN_FLAGS 65536
SYSGEN> WRITE ACTIVE
SYSGEN> SHOW LAN_FLAG
Parameter Name Current Default Min. Max. Unit Dynamic
-------------- ------- ------- ------- ------- ---- -------
LAN_FLAGS 65536 0 0 -1 Bitmask D
SYSGEN> EXIT

If the change needs to be permanent, then USE CURRENT and WRITE CURRENT instead of the ACTIVE database.

HP Support forums

Find solutions and collaborate with others on the HP Support Forum
HP.comHP on FacebookHP on TwitterHP on YouTubeHP on Linked InHP on FlickrHP on Google+