IBM LU Range Specification

Telnet LU range rules allow for almost any type of LU range needed.  Ranges can be alphabetic (A), numeric (N), alphanumeric (B), hexadecimal (X), or completely wildcarded (?) which includes alphanumeric and the three national characters (@,#,$). The range type can be different for each character position.  Within the LU range, any character position can be fixed (F).  To conform with VTAM LU naming convention, the first character must be alphabetic or a national character. If the first character is a range, only the alphabetic range can be used.

An LU range is created by specifying a starting LU name, an ending LU name, and the range rules to be used. For example, the following statement creates a range from TCPM1000 to TCPM1100.

TCPM1000..TCPM1100..FFFFFNNN

The three components are:

Starting LU name (TCPM1000)

Ending LU name (TCPM1100)

Range rules (FFFFFNNN)

All three components must be the same length, the Starting LU name overall must be lower than the Ending LU name, and each character position value must be appropriate for the specified range rule. Notice in the above

example that the character 1 following the character M is defined as fixed because it cannot change. The range rule cannot specify N even though it seems to be part of the number range.

The ascending order of characters is 0-9, A-Z, @, #, $.

Numeric values are lower than alphabetic values to facilitate the use of hexadecimal ranges.

The range rules are:

Range

Rule

Characters

Numeric

N

0-9

Alphabetic

A

A-Z

AlphaNumeric

B

0-9,A-Z

Hexadecimal

X

0-9,A-F

Wildcard

?

0-9,A-Z,@,#,$

 

The maximum number of LUs per range is 4294967295 and the maximum number of LUs per group is 4294967295.

The creation of LU name values from the range specification begins at the Starting LU and increments the rightmost variable position first, moving to the left as each variable position reaches its range maximum.  The process is like an odometer, except that each position can have different basing instead of all positions being base 10. For example, the following statement has 223 LU name entries.

LU555..LU777..FFNNN

The breakdown of the range is:

LU555->LU559,

5

LU560->LU569, LU570->LU579, LU580->LU589, LU590->LU599,

40

LU600->LU699,

100

LU700->LU769, LU770->LU777

78

TOTAL

223

 

The LU names increment just as the numbers on an odometer would. A less intuitive case involves an alphabetic range of 1407 LU name entries.

LUCCC..LUEEE..FFAAA

The breakdown of the range is:

LUCCC->LUCCZ,

24

LUCDA->LUCDZ, LUCEA->LUCEZ, LUCFA->LUCFZ, ... LUCZA->LUCZZ,

598

LUDAA->LUDZZ,

676

LUEAA->LUEDZ, LUEEA->LUEEE

109

TOTAL

1407

 

It is important to realize that the ranges above do not break down in the following patterns:

LUCCC->LUCCE, LUCDC->LUCDE, LUCEC->LUCEE, ...

LU555->LU557, LU565->LU567, LU575->LU577, ...

It is an incorrect assumption that the LU name after LUCCE would be LUCDC.  The correct LU name after LUCCE is LUCCF.  The LU names increment to LUCCZ and the next name is LUCDA.  When the rightmost position reaches the range maximum, the position to its left is incremented by one, and the rightmost position starts at the range beginning, not the character specified in the Starting LU name.

All range types are handled the same way.  The position is incremented to its maximum value and then wraps to the beginning range value, not the specified Starting LU name value.  By the same logic, the position is incremented to the ending range value and not the Ending LU name value.

All LU names increment the same way.  A more complicated example mixes fixed and variable character positions with several different range types.  The LU range has 39744 LUs.

LUAD1800..LUGD98FZ..FFAFNFXB

Calculating the number of LUs is easier if the fixed positions are removed.  For purposes of calculating the number of LUs, the range is specified as follows:

A100..G9FZ..ANXB

This breaks down as follows:

A100->A10Z, D110->D11Z, ... A190->A19Z, A1A0->A1AZ ... A1F0->A1FZ

576

A200->A2FZ, A300->A3FZ, ... A900->A9FZ

4608

B000->B9FZ, C000->C9FZ, ... F000->F9FZ

28800

G000->G9FZ

5760

TOTAL

39744

 

SEQUENTIALLU: Telnet, by default, uses a sequential method to choose LUs from a group.

LUGROUP  LUGRP1

LU001..LU120..FFNNN

LU201..LU250..FFNNN

 LU240..LU280..FFNNN

LU010..LU050..FFFNN

ENDLUGROUP

From the previous example, the first LU assigned is LU001, second is LU002, and so on. If five clients repeatedly connect and disconnect, they will be assigned new LUs farther into the range each time:

When the end of the first range is reached, selection goes to the beginning of the second range.

At the end of the second range, selection goes to the beginning of the third range.

At the end of the third range, selection goes to the beginning of the fourth range.

At the end of the fourth range, selection goes to the beginning of the first range again.

 

Telnet does not enforce an overall ascension in LU name selection. The selection process begins at the first name of the first range and progresses to the last name of the last range. In the example, after LU250 is assigned from range 2, LU240 from range 3 is attempted next. After LU280, LU010 is attempted . After LU050, the process starts over and LU001 is attempted.

The SEQUENTIALLU function can be turned off by coding NOSEQUENTIALLU.  In this case, the five LUs that are repeatedly connecting and disconnecting would never use any LU names other than LU001, LU002, LU003, LU004, and LU005.  NOSEQUENTIALLU might degradate LU lookup performance when a large range is specified and only LUs at the end of the range are available.  Every connection has to relearn that most of the LUs are already in use.  SEQUENTIALLU allows Telnet to start its search near the last chosen LU where LUs are more likely to be available. SEQUENTIALLU and NOSEQUENTIALLU  parameters can be coded at all three parameter block levels for different levels of granularity.

If several clients are connecting at the same time, the order of LU assignment might not be in exactly the same order as the connection IDs due to process timing between connection ID assignment and LU name assignment.

If single LU names are in a group with LU ranges, the single LU names are selected before any LU range names are selected, regardless of their order.  In the example below, LUAAA, LUBBB, LUCCC, and LUDDD are all processed before any of the range LU names.

Profile LUGROUP

LUGROUP as used by Telnet

LUGROUP  LUGRP2

LUGROUP  LUGRP2

LUAAA

LUAAA

LU001..LU120..FFNNN

LUDDD

LU201..LU250..FFFNN

LUBBB

LUDDD

LUCCC

LUBBB

LU001..LU120..FFNNN

LU240..LU280..FFFNN

LU201..LU250..FFFNN

LU010..LU050..FFFNN

LU240..LU280..FFFNN

LUCCC

LU010..LU050..FFFNN

ENDLUGROUP

ENDLUGROUP

 

---------------------------------------------------------------------------------------------------------------------------------------------------

  © Copyright IBM Corp. 2000, 2003

---------------------------------------------------------------------------------------------------------------------------------------------------

IBM Library Server Copyright 1989, 2004 IBM Corporation. All rights reserved.