[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Communications Programming Concepts

DLCTOKEN Programming Interfaces

The token-ring data link control (DLCTOKEN) conforms to the generic data link control (GDLC) guidelines except where noted below. Additional structures and definitions for DLCTOKEN can be found in the /usr/include/sys/trlextcb.h file.

Note: The dlc prefix is replaced with the trl prefix for DLCTOKEN.
trlclose DLCTOKEN is fully compatible with the dlcclose GDLC interface.
trlconfig DLCTOKEN is fully compatible with the dlcconfig GDLC interface. No initialization parameters are required.
trlmpx DLCTOKEN is fully compatible with the dlcmpx GDLC interface.
trlopen DLCTOKEN is fully compatible with the dlcopen GDLC interface.
trlread DLCTOKEN is compatible with the dlcread GDLC interface with the following conditions:
  • The readx subroutines can have DLCTOKEN data link header information prefixed to the I-field being passed to the application. This is optional based on the readx subroutine data link header length extension parameter in the gdl_io_ext structure.
  • If this field is nonzero, DLCTOKEN copies the data link header and the I-field to user space and sets the actual length of the data link header into the length field.
  • If the field is 0, no data link header information is copied to user space. See the DLCTOKEN Frame Encapsulation figure for more details.

The following kernel receive packet function handlers always have the DLCTOKEN data link header information within the communications memory buffer (mbuf) and can locate it by subtracting the length passed (in the gdl_io_ext structure) from the data offset field of the mbuf structure.

trlselect DLCTOKEN is fully compatible with the dlcselect GDLC interface.
trlwrite DLCTOKEN is compatible with the dlcwrite GDLC interface, with the exception that network data can only be written as an unnumbered information (UI) packet and must have the complete data link header prefixed to the data. DLCTOKEN verifies that the local (source) service access point (SAP) is enabled and that the control byte is UI (0x03). See the DLCTOKEN Frame Encapsulation figure for more details.
trlioctl DLCTOKEN is compatible with the dlcioctl GDLC interface, with conditions on the following operations:

The following sections describe these conditions in detail.

DLC_ENABLE_SAP

The ioctl subroutine argument structure for enabling a SAP (dlc_esap_arg) has the following specifics:

DLC_START_LS

The ioctl subroutine argument structure for starting a link station (dlc_sls_arg) has the following specifics:

DLC_ALTER

The ioctl subroutine argument structure for altering an LS (dlc_alter_arg) has the following specifics:

DLC_QUERY_SAP

The device driver-dependent data returned from DLCTOKEN for this ioctl operation is the tok_ndd_stats_t structure defined in the /usr/include/sys/cdli_tokuser.h file.

DLC_QUERY_LS

There is no protocol-specific data area supported by DLCTOKEN for this ioctl operation.

DLC_ENTER_SHOLD

The enter_short_hold option is not supported by DLCTOKEN.

DLC_EXIT_SHOLD

The exit_short_hold option is not supported by DLCTOKEN.

DLC_ADD_GROUP

The add_group, or multicast address, option is supported by the DLCTOKEN device manager. This ioctl operation is a four-byte value as described in the DLC_ENABLE_SAP ioctl operation definition.

DLC_ADD_FUNC_ADDR

The len_func_addr_mask (functional address mask length) field must be set to 4, and the func_addr_mask (functional address mask) field must be the logical OR operation with the functional address on the adapter. Only bits 1 through 29 are valid. Bits 0, 30, and 31 are ignored. The most significant two bytes of the full six-byte functional address are automatically compared for 0xC000 by the adapter and cannot be added.

DLC_DEL_FUNC_ADDR

The len_func_addr_mask (functional address mask length) field must be set to 4, and the func_addr_mask (functional address mask) field must have each bit that you wish to reset set to 1 within the functional address on the adapter. Only bits 1 through 29 are valid. Bits 0, 30, and 31 are ignored. The most significant two bytes of the full six-byte functional address are automatically compared for 0xC000 by the adapter and cannot be deleted.

DLC_DEL_GRP

The delete group or multicast option is supported by the DLCTOKEN device manager. The address being removed must match an address that was added with a DLC_ENABLE_SAP or DLC_ADD_GRP ioctl operation.

IOCINFO

The ioctype variable returned is defined as a DD_DLC definition, and the subtype returned is DS_DLCTOKEN.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]