[ Next Article |
Previous Article |
Book Contents |
Library Home |
Legal |
Search ]
Communications Programming Concepts
DLCETHER Programming Interfaces
The Standard Ethernet data link control (DLCETHER) conforms to the generic data link control (GDLC) guidelines except as follows:
Note: The dlc prefix is replaced with the edl prefix for the DLCETHER device manager.
edlclose |
DLCETHER is fully compatible with the dlcclose GDLC interface. |
edlconfig |
DLCETHER is fully compatible with the dlcconfig GDLC interface. No initialization parameters are required. |
edlmpx |
DLCETHER is fully compatible with the dlcmpx GDLC interface. |
edlopen |
DLCETHER is fully compatible with the dlcopen GDLC interface. |
edlread |
DLCETHER is compatible with the dlcread GDLC interface with the following conditions:
- The readx subroutines can have DLCETHER 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, DLCETHER 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 DLCETHER Frame Encapsulation figure
for more details.
|
The following kernel receive packet subroutines always have the DLCETHER 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.
edlselect |
DLCETHER is fully compatible with the dlcselect GDLC interface. |
edlwrite |
DLCETHER 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. DLCETHER verifies that the local (source) service access point (SAP) is enabled and that the control byte is UI (0x03). See the DLCETHER Frame Encapsulation figure
for more details. |
edlioctl |
DLCETHER is compatible with the dlcioctl GDLC interface with conditions on these operations (described in the following sections):
|
DLC_ENABLE_SAP
The ioctl subroutine argument structure for enabling a SAP (dlc_esap_arg) has the following specifics:
- The grp_addr field is a 6-byte value as specified in the draft IEEE Standard 802.3 specifications. Octet grp_addr[0] specifies the most significant byte and octet grp_addr[5] specifies the least significant byte. Each octet of the address field is transmitted, least significant bit first. Group addresses sometimes are called multicast addresses. An example of an group address follows:
0x0900_2B00_0004
Note: No checks are made by the DLCETHER device manager as to whether a received packet was accepted by the adapter due to a preset network address or group address.
- The max_ls (maximum link station) field cannot exceed 255 bytes.
- The following common SAP flags are not supported:
ENCD |
Indicates a synchronous data link control (SDLC) serial encoding. |
NTWK |
Indicates a teleprocessing network type. |
LINK |
Indicates a teleprocessing link type. |
PHYC |
Indicates a physical network call (teleprocessing). |
ANSW |
Indicates a teleprocessing autocall and autoanswer. |
- Group SAPs are not supported, so the num_grp_saps (number of group SAPs) field must be set to 0.
- The laddr_name (local address and name) field and its associated length are only used for name discovery when the common SAP flag ADDR field is set to 0. When resolve procedures are used (that is, the ADDR flag is set to 1), DLCETHER obtains the local network address from the device handler and not from the dlc_esap_arg structure.
- The local_sap (local service access point) field can be set to any value except the null SAP (0x00) or the name-discovery SAP (0xFC). Also, the low-order bit must be set to 0 (B`nnnnnnn0') to indicate an individual address.
- No protocol-specific data area is required for the DLCETHER device manager to enable a SAP.
DLC_START_LS
The ioctl subroutine argument structure for starting a link station (dlc_sls_arg) has the following specifics:
- These common link station flags are not supported:
STAT |
Indicates a station type for SDLC. |
NEGO |
Indicates a negotiable station type for SDLC. |
- The raddr_name (remote address or name) field is used only for outgoing calls when the DLC_SLS_LSVC common link station flag is active.
- The maxif (maximum I-field) length can be set to any value greater than 0. See the frame format figure
for supported byte lengths. The DLCETHER device manager adjusts this value to a maximum of 1493 bytes if set too large.
- The rcv_wind (receive window) field can be set to any value between 1 and 127, inclusive. The recommended value is 127.
- The xmit_wind (transmit window) field can be set to any value between 1 and 127, inclusive. The recommended value is 26.
- The rsap (remote SAP) field can be set to any value except null SAP (0x00) or the name-discovery SAP (0xFC). Also, the low-order bit must be set to 0 (B`nnnnnnn0') to indicate an individual address.
- The max_repoll field can be set to any value between 1 and 255, inclusive. The recommended value is 8.
- The repoll_time field is defined in increments of 0.5 seconds and can be set to any value between 1 and 255, inclusive. The recommended value is 2, giving a time-out duration of 1 to 1.5 seconds.
- The ack_time (acknowledgment time) field is defined in increments of 0.5 seconds and can be set to any value between 1 and 255, inclusive. The recommended value is 1, giving a time-out duration of 0.5 to 1 second.
- The inact_time (inactivity time) field is defined in increments of 1 second, and can be set to any value between 1 and 255, inclusive. The recommended value is 48, giving a time-out duration of 48 to 48.5 seconds.
- The force_time (force halt time) field is defined in increments of 1 second, and can be set to any value between 1 and 16383, inclusive. The recommended value is 120, giving a time-out duration of approximately 2 minutes.
- No protocol-specific data area is required for the DLCETHER device manager to start a link station.
DLC_ALTER
The ioctl subroutine argument structure for altering a link station (dlc_alter_arg) has the following specifics:
- These alter flags are not supported:
RTE |
Alters routing. |
SM1, SM2 |
Sets synchronous data link control (SDLC) control mode. |
- No protocol-specific data area is required for the DLCETHER device manager to alter a link station.
DLC_QUERY_SAP
The device driver-dependent data returned from DLCETHER for this ioctl operation is the ent_ndd_stats_t structure defined in the /usr/include/sys/cdli_entuser.h file.
DLC_QUERY_LS
No protocol-specific data area is supported by DLCETHER for this ioctl operation.
DLC_ENTER_SHOLD
The enter_short_hold option is not supported by the DLCETHER device manager.
DLC_EXIT_SHOLD
The exit_short_hold option is not supported by the DLCETHER device manager.
DLC_ADD_GRP
The add_group or multicast address option is supported by the DLCETHER device manager as a six-byte value as described above in DLC_ENABLE_SAP (group address) ioctl operation.
DLC_ADD_FUNC_ADDR
The add_functional_address option is not supported by DLCETHER.
DLC_DEL_FUNC_ADDR
The delete_functional_address option is not supported by DLCETHER.
DLC_DEL_GRP
The delete group or multicast option is supported by the DLCETHER 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 DD_DLC definition and the subtype returned is DS_DLCETHER.
[ Next Article |
Previous Article |
Book Contents |
Library Home |
Legal |
Search ]