|
The llc2 files contain information needed
by LLC2 to establish the appropriate links to the underlying MAC layer drivers as well as the parameters necessary to configure
the LLC (Logical Link Control) Class II Station Component structures for
that link.
The comments are made up of one or more lines starting with the "#" character in column 1.
The main section consists of keyword/value pairs of the form keyword=value, used to initialize the particular adapter.
A sample of the llc2 is presented below:
|
devicename=/dev/dnet
deviceinstance=1
llc2_on=1 # LLC2: On/Off on this device
deviceloopback=1
timeinterval=0 # LLC2: Timer Multiplier
acktimer=2 # LLC2: Ack Timer
rsptimer=2 # LLC2: Response Timer
polltimer=4 # LLC2: Poll Timer
rejecttimer=6 # LLC2: Reject Timer
rembusytimer=8 # LLC2: Remote Busy Timer
inacttimer=30 # LLC2: Inactivity Timer
maxretry=6 # LLC2: Maximum Retry Value
xmitwindowsz=14 # LLC2: Transmit Window Size
rcvwindowsz=14 # LLC2: Receive Window Size
|
MAC specific Parameters
|
The llc2.ppa file contains 4 parameters
directly related to the underlying MAC-level driver.
These are the name of the physical device, the instance of the device, whether
LLC2 can be used with this device, and whether the device is capable of
looping back data addressed to the node's unique MAC
address, broadcast address, or multicast addresses.
Setting the llc2_on parameter to 1
means that LLC2 can be used with this device; setting it to 0
means otherwise. Setting the loopback parameter to 1
means that the LLC2 module will loop back data addressed to this node's
unique MAC address or to a broadcast/multicast address.
The most likely use is for a media that cannot receive its own transmissions
(for example, ethernet) or when the MAC-level driver
intentionally does not loop back data addressed to the local node under
the assumption that the upper layers have already done so.
|
Host-Based LLC2 Parameters
|
The LLC2 contains ten parameters in the configuration file (/etc/llc2/default/llc2.ppa) that apply
to configurations using the Host-Based LLC2 component for connection-oriented
operation over an Ethernet, Token Ring, or FDDI media.
The ten parameters break down into the following four groups:
- Six parameters deal with timer settings for managing the
flow of LLC elements of procedure (PDUs) on a data link connection.
- One parameter is the multiplier that is used to determine
the period of the interval timer for the station. A value of 1 means that each tick count represents 100 milliseconds; 5 means each tick count is 500 milliseconds. Should the parameter
be omitted, the default value is 5, except for Token
Ring links which use a default of 1.
- One parameter indicates how many times an operation should
be retried on a data link connection.
- Two parameters are for controlling the number of unacknowledged
I PDUs to send or receive on a data link connection.
Additional information on these parameters can be found in ISO 8802-2:1989,
Section 7.8.
The following table of Logical Link Control Parameters
provides the LLC configuration parameter names, default values, and ranges.
Parameter | Description | Default | Range |
timeinterval | The timer ticks in 100 ms intervals. This parameter is used to scale the following 5 timer parameters. | 5, except TPR - 1 | 0 - 10 |
| | | |
acktimer | The connection acknowledgment timer length in (100 * timeinterval) ms. | 2 | > 0 |
| | | |
rsptimer | The response acknowledgment timer length in (100 * timeinterval) ms. | 2 | > 0 |
| | | |
polltimer | The connection poll timer length
in (100 * timeinterval) ms. | 4 | > 0 |
| | | |
rejecttimer | The connection reject timer length in (100 * timeinterval) ms. | 6 | > 0 |
| | | |
rembusytimer | The connection remote busy timer length in (100 * timeinterval) ms. | 8 | > 0 |
| | | |
inacttimer | The connection inactivity timer length in (100 * timeinterval) ms. | 30 | > 0 |
| | | |
maxretry | The maximum number of retries of an action on a connection. | 6 | 0 - 100 |
xmitwindowsz | The maximum number of unacknowledged I-format protocol data units that can be transmitted on a connection before awaiting an acknowledgment. | 14 | 0 - 127 |
rcvwindowsz | The maximum number of unacknowledged I-format protocol data units that can be received on a connection before an acknowledgment is sent. | 14 | 0 - 127 |
Default values are set when the following conditions are true:
- The parameter is not set by the user.
- The user requests a default /etc/llc2/default/llc2.instance file, where instance
is the sequence number, starting with 0, of the adapter
as detected by ifconfig(1M).
For example, if there are 3 adapters on the machine, the default configuration
files will be named in order as /etc/llc2/default/llc2.0, /etc/llc2/default/llc2.1, and /etc/llc2/default/llc2.2.
- The user codes a value of 0
for a parameter.
|
Timer Parameter Descriptions
|
- acktimer
- The acktimer parameter is used to manage the following
sample sequences:
- Attempting to establish, reset, or disconnect a connection.
|
SABME start acknowledgment timer
or -------------------------------->
DISC
|
The acknowledgment timer expires before the receipt of a response.
|
SABME start acknowledgment timer
or -------------------------------->
DISC
stop acknowledgment timer
<-------------------------------- UA
|
- Sending an FRMR in response
to a received PDU of dubious distinction:
|
PDU with invalid N(R)
or
I PDU with invalid N(S)
or
<------------------- PDU of invalid length
or
unexpected UA PDU
or
response PDU with
invalid P/F setting
start acknowledgment timer
FRMR -------------------------------->
|
Acknowledgment timer expires before the receipt of a PDU.
|
start acknowledgment timer
FRMR -------------------------------->
stop acknowledgment timer
SABME, FRMR
<------------------------------- DISC, or DM
|
- There is also a special case of the acknowledgment
timer, referred to in this implementation as the response acknowledgment
timer (rsptimer). It is used when sending an I PDU.
|
start response acknowledgement timer
I -------------------------------------->
|
Response acknowledgment timer expires before the receipt of an acknowledgment.
|
start poll timer
RR -------------------------------->
|
- polltimer
- The polltimer parameter is used to manage situations where a Supervisory command PDU (RR, RNR, or REJ) is sent with the P/F bit set. This type
of PDU is typically sent when:
- There has been a period of inactivity on a connection in
information transfer mode.
- The remote node must be notified of a local busy
condition occurring in information transfer mode.
The expiration of the poll timer causes another Supervisory command PDU (which may be of a different type than the first) to be sent
with the P/F bit set, provided the retry count has not exceeded the maximum
retry value. This timer, then, provides an extended retry mechanism for
a connection in information transfer mode.
- rejecttimer
- The rejecttimer parameter controls the frequency with which a REJ PDU is sent
to a remote node from which an I PDU with an unexpected N(S) was received
and which has not corrected the situation by sending an I PDU with the expected
N(S).
|
<----------------------- I PDU with
unexpected N(S)
start reject timer
REJ ------------------------>
|
Reject timer expires before the receipt of an I PDU with an expected
N(S).
|
start reject and poll timer
REJ ----------------------------->
stop reject and poll timer
<--------------------------- I PDU with
expected N(S)
|
- rembusytimer
- The rembusytimer parameter is used to determine how long the local node should
wait, after the remote node sends an RNR to indicate
it is busy, before sending a Supervisory PDU with the
P/F bit set to solicit the current state of the remote node. If the remote
node indicates that it has cleared its busy condition before the timer expires,
the local node stops the remote busy timer.
- inacttimer
- The inacttimer parameter controls how much time is allowed to elapse on a connection
in information transfer mode between the issuing of command PDUs by the local node. If the inactivity timer expires because a
command PDU has not been generated in the configured
time interval, a Supervisory PDU with the P/F bit set
is sent to the remote node to solicit its current state, provided that the
connection is in information transfer mode. Each time a command PDU is sent by the local node, the inactivity timer is restarted.
The following rules of thumb should apply for the timer parameters:
- The acktimer, rsptimer,
and polltimer parameters should have small relative
values to allow for quick recovery from common transient error conditions
on a connection.
- The rejecttimer and rembusytimer parameters should have intermediate relative values
to allow the local and remote nodes time to recover without resorting to
possibly unnecessary polling cycles.
- The inacttimer parameter should
be set to a large relative value to provide a safety net in information
transfer mode.
You may need to shift the values for the timer parameters to higher
values if bridges are included in the network or a user application requires
a substantial amount of time to respond to connection establishment requests
or handle information flow.
|
Maximum Retry Parameter Description
|
The maxretry parameter determines the number of
times a recovery operation is performed before notifying the user that an
error has occurred on a connection. Typical examples of its use include
the following:
- When the remote node fails to respond to a SABME sent by the local node to establish or reset the connection,
the SABME is resent each time the acknowledgment timer
expires, up to maxretry number of times.
- In information transfer mode, if the response
acknowledgment timer expires after an I PDU has been sent, an RR with the
P/F bit set is sent (and resent each time the poll timer expires) until
the remote node responds or maxretry number of RRs have
been sent.
In general, the maxretry value should not need
to be large. Since the acknowledgment and poll timers are typically used
in recovery operations that involve the maxretry parameter,
the product of maxretry and either acktimer, rsptimer, or polltimer
gives a rough estimate of the length of time allotted for the connection
to attempt internal error recovery before notifying the user.
|
Window Size Parameter Descriptions
|
- rcvwindowsz
- The rcvwindowsz parameter is used to
set the receive window size for I PDUs received locally on a connection.
This value should agree with the transmit window size set for the connection
at the remote node. If the local rcvwindowsz is greater
than the remote transmit window size, I PDUs sent by the remote node are
not acknowledged quickly. If the local rcvwindowsz is
less than the remote transmit window size, there is a greater risk of the
local node generating FRMR PDUs, requiring intervention by the user application
when transient errors on the connection require the remote node to retransmit
an I PDU. REJ PDUs are recovered internally.
- xmitwindowsz
- The xmitwindowsz parameter sets the local transmit window size for a connection.
It denotes the number of unacknowledged I PDUs that the local node may have
outstanding. The configured value should match the receive window size for
the connection at the remote node, based on the same reasoning as for the rcvwindowsz parameter.
In many cases, the values assigned to rcvwindowsz
and xmitwindowsz for adapters on a server node will depend
on the transmit and receive window sizes specified for another LLC implementation
on a client node. In cases where this LLC implementation is resident in
both nodes, larger values for these parameters are useful in environments
where much of the activity on a connection consists of file transfer operations.
Smaller values are warranted if analysis of LLC2 connection component statistics
reveals that connections are entering local or remote busy state frequently.
|
|