[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Communications Programming Concepts
DLCSDLC Programming Interfaces
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. |
DLC_ENABLE_SAP
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.
DLC_START_LS
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 as follows:
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%. |
DLC_ALTER
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.
DLC_QUERY_SAP
No device driver-dependent data area is supported by DLCSDLC for the query sap ioctl operation.
DLC_QUERY_LS
No protocol-specific data area is supported by DLCSDLC for the query link station ioctl operation.
DLC_ENTER_SHOLD
DLCSDLC does not currently support the enter_short_hold option.
DLC_EXIT_SHOLD
DLCSDLC does not currently support the exit_short_hold option.
DLC_ADD_GRP
The add_group or multicast address option is not
supported by DLCSDLC.
DLC_ADD_FUNC_ADDR
The add_functional_address option is not supported
by DLCSDLC.
DLC_DEL_FUNC_ADDR
The delete_functional_address option is not supported
by DLCSDLC.
IOCINFO
The ioctype variable is defined as
a DD_DLC definition and the subtype returned is DS_DLCSDLC.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]