[ Previous | Next | Table of Contents | Index | Library Home |
Legal |
Search ]
Communications Programming Concepts
The synchronous data link control
(SDLC) device manager (DLCSDLC) conforms to the generic data link control
(GDLC) guidelines except where noted in the following list. Additional
structures and definitions for DLCSDLC can be found in the
/usr/include/sys/sdlextcb.h file.
Note: The GDLC
entry-point prefix dlc is replaced with the sdl prefix
to denote DLCSDLC device manager operation.
sdlclose
| DLCSDLC is fully compatible with the dlcclose GDLC interface.
|
sdlconfig
| DLCSDLC is fully compatible with the dlcconfig GDLC interface. No
initialization parameters are required.
|
sdlmpx
| DLCSDLC is fully compatible with the dlcmpx GDLC interface.
|
sdlopen
| DLCSDLC is fully compatible with the dlcopen GDLC interface with the following
conditions:
- Single-physical unit (PU) mode allows only one open
per port. The open can come from either an application or kernel user,
but multiple users cannot share the same port. Single-PU mode is
entered by issuing the open without an extension, or by issuing an extended
open with the maxsaps (maximum service access points) field set to a value of
0 or 1. Single-PU mode is the default.
- Multiple-PU mode allows multiple processes to open a
secondary port. Multiple-PU mode is entered by issuing an extended open
with the maxsaps field set to a value greater than 1.
Note: Only one user process is allowed to open a primary
port.
|
sdlread
| DLCSDLC is compatible with the dlcread
GDLC interface, with the following conditions:
- Network data is defined as any data received from data
communication equipment (DCE) that is not specific to the SDLC session
protocol. Examples are X.21 call-progress signals or Smartmodem
call-establishment messages. This data must be interpreted differently,
depending on the physical attachment in use.
- Datagram receive data is not supported.
|
sdlselect
| DLCSDLC is fully compatible with the dlcselect GDLC interface.
|
sdlwrite
| DLCSDLC is compatible with the dlcwrite
GDLC interface, with the exception that network data and datagram data are not
supported in the send direction. Network data such as X.21 or
Smartmodem call-establishment data is sent using the DLC_ENABLE_SAP
ioctl operation.
|
sdlioctl
| DLCSDLC is compatible with the dlcioctl
GDLC interface, with conditions on the following operations:
The following sections describe
these conditions.
|
DLCSDLC supports two modes of
operation:
- Single-PU mode is
entered through the open to DLCSDLC. In this mode, only one
DLC_ENABLE_SAP ioctl operation is allowed per port. All
additional DLC_ENABLE_SAP ioctl operations are rejected with an
errno value of EINVAL.
- Multiple-PU mode is also
entered through the open to DLCSDLC. In this mode, up to 254
DLC_ENABLE_SAP ioctl operations can be issued. The first
DLC_ENABLE_SAP ioctl operation establishes the physical
connection. All subsequent DLC_ENABLE_SAP ioctls return an
errno value of EBUSY, but pass back the gdlc_sap_corr
value of the first successful DLC_ENABLE_SAP so that link stations
can be started.
The ioctl subroutine
argument structure for enabling a service access point (SAP)
(dlc_esap_arg) has the following specifics:
- The func_addr_mask (function
address mask) field is not supported.
- The grp_addr (group address)
field is not supported.
- The max_ls (maximum link
stations) field cannot exceed a value of 254 on a multidrop primary link or a
multiple-PU secondary link, and cannot exceed 1 on a point-to-point
link.
- The following common SAP
flag is not supported:
ADDR
| Specifies local address or name indicator.
|
- The laddr_name (local
address or name) field is not supported, so the length of the local
address/name field is ignored.
- Group SAPs are not
supported, so the num_grp_saps (number of group SAPs) and grp_sap (group SAP -
n) fields are ignored.
- The local_sap (local service
access point) field is not supported and is ignored.
- The protocol specific data
area is identical to the start device structure required by the multiprotocol
device handler. See the /usr/include/sys/mpqp.h file
and the t_start_dev structure for more details.
DLCSDLC supports up to 254
concurrent link stations (LSs) on a single port when it operates as a
multidrop primary node or a multiple-PU secondary node. Only one LS can
be started when DLCSDLC operates on a point-to-point connection, or when it is
a single-PU secondary node on a multidrop connection.
- The following common link
station flags are not supported:
LSVC
| LS virtual call is ignored.
|
ADDR
| Address indicator must be set to 1 to indicate that no name-discovery
services are provided.
|
- The len_raddr_name (length
of remote address or name) field must be set to 1.
- The raddr_name (remote
address or name) field is the one-byte station address of the remote node in
hexadecimal.
- The maxif (maximum I-field
length) field can be set to any value greater than 0. DLCSDLC adjusts
this value to a maximum of 4094 bytes if set too large.
- The rcv_wind (maximum
receive window) field can be set to any value from 1 to 7. The
recommended value is 7.
- The xmit_wind (maximum
transmit window) field can be set to any value from 1 to 7. The
recommended value is 7.
- The rsap (remote SAP) field
is ignored.
- The rsap_low (remote SAP low
range) field is ignored.
- The rsap_high (remote SAP
high range) field is ignored.
- The max_repoll field can be
set to any value from 1 to 255, inclusive. The recommended value is
15.
- The repoll_time field is
defined in increments of 0.1 second and can be set to any value from 1
to 255. The recommended value is 30, giving a time-out duration of
approximately 30 seconds.
- The ack_time (acknowledgment
time) field is ignored.
- The inact_time (inactivity
time) field is defined in increments of 1 second and can be set to any value
from 1 to 255, inclusive. The recommended value is 30, giving a
time-out duration of approximately 30 seconds.
- The force_time (force halt
time) field is defined in increments of 1 second and can be set to any value
from 1 to 16383, inclusive. The recommended value is 120, giving a
time-out duration of approximately 2 minutes.
- The following
protocol-specific data area must be appended to the generic start LS argument
structure (dlc_sls_arg). This structure provides DLCSDLC
with additional protocol-specific configuration parameters:
struct sdl_start_psd
}
uchar_t duplex; /*link station xmit/receive capability */
uchar_t secladd; /* secondary station local address */
uchar_t prirpth; /* primary repoll timeout threshold */
uchar_t priilto; /* primary idle list timeout */
uchar_t prislto; /* primary slow list timeout */
uchar_t retxct; /* retransmit count ceiling */
uchar_t retxth; /* retransmit count threshold */
uchar_t reserved; /* currently not used */
{;
The protocol-specific parameters are:
duplex
| Specifies LS transmit-receive capability. This field must be set
to 0, indicating two-way alternating capability.
|
secladd
| Specifies the secondary station link address of the local station.
If the local station is negotiable, this address is used only if the local
station becomes a secondary station from role negotiation. This field
overlays the mpioctl (CIO_START) poll address variable,
poll_addr.
|
prirpth
| Specifies primary repoll threshold. This field specifies the
number of contiguous repolls that cause the local primary to log a temporary
error. Any value from 1 to 100 can be specified. The recommended
value is 10.
|
priilto
| Specifies primary idle list time out. If the primary station has
specified the Hold Link on Inactivity parameter and then discovers
that a secondary station is not responding, the primary station places that
secondary station on an idle list. The primary station polls
a station on the idle list less frequently than the other secondary stations
to avoid tying up the network with useless polls. This field sets the
amount of time (in seconds) that the primary station should wait between polls
to stations on the idle list. Any value from 1 to 255, inclusive, may
be specified. The recommended value is 60, giving a time-out duration
of approximately 60 seconds.
|
prislto
| Specifies primary slow list time out. When the primary station
discovers that communication with a secondary station is not productive, it
places that station on a slow list. The primary station
polls a station on the slow list less frequently than the other secondary
stations to avoid tying up the network with useless polls. This field
sets the amount of time (in seconds) that the primary station should wait
between polls to stations on the slow list. Any value from 1 to 255,
inclusive, can be specified. The recommended value is 20, giving a
time-out duration of approximately 20 seconds.
|
retxct
| Indicates retransmit count. This field specifies the number of
contiguous information frame bursts containing the same data that the local
station retransmits before it declares a permanent transmission error.
Any value from 1 to 255, inclusive, can be specified. The recommended
value is 10.
|
retxth
| Indicates retransmit threshold. This field specifies the maximum
number of information frame retransmissions allowed as a percentage of total
information frame transmission (sampled only after a block of information
frames has been sent). If the number of retransmissions exceeds the
specified percentage, the system declares a temporary error. Any value
from 1 to 100% can be specified. The recommended value is 10%.
|
Specifics for the ioctl
subroutine argument structure to alter a link station
(dlc_alter_arg) include:
- These alter flags are not
supported:
AKT
| Alter acknowledgment time out.
|
RTE
| Alter routing.
|
- The act_time (acknowledge
time out) field is ignored.
- The routing data field is
ignored.
- No protocol-specific data
area is required for DLCSDLC to alter its configuration.
No device driver-dependent data
area is supported by DLCSDLC for the query sap ioctl
operation.
No protocol-specific data area is
supported by DLCSDLC for the query link station ioctl
operation.
DLCSDLC does not currently support
the enter_short_hold option.
DLCSDLC does not currently support
the exit_short_hold option.
The add_group or
multicast address option is not supported by DLCSDLC.
The
add_functional_address option is not supported by DLCSDLC.
The
delete_functional_address option is not supported by
DLCSDLC.
The ioctype variable is
defined as a DD_DLC definition and the subtype returned is
DS_DLCSDLC.
[ Previous | Next | Table of Contents | Index |
Library Home |
Legal |
Search ]