i LAN VCI Specification

LAN VCI Specification


Previous

4.4 VCRP

The VCRP is the data structure used to pass requests between two VCMs.

The VCRP contains request information and the completion status of that request. There are basically two types of VCRPs; management VCRPs and data VCRPs. Port Management requests use management VCRPs. Management VCRPs contain a section that allows parameter buffers to be passed to the LAN driver. Transmit and Receive requests use data VCRPs. Data VCRPs contain a section that allow them to pass a packet between the VCMs. For transmit VCRPs, the packet may be contained within the VCRP or attached to the VCRP as a buffered or a direct I/O request.

The registered name for this data structure is VCRP$.

The VCRP fields are defined by $VCRPDEF in LIB.MLB and $VCRPLANDEF in LANUDEF.MLB.

Table 4-4 describes the fields of the VCRP structure.

Table 4-4 VCRP structure
  ACCESS ON  
FIELD NAME MGMT XMIT RECV DESCRIPTION
L_FLINK D D D Forward queue link
L_BLINK D D D Back queue link
W_SIZE UO UO LO Size of structure
B_TYPE UI UI LI Type of structure DYN$C_VCRP
B_RMOD UO UO UO ACB - Request modifier
L_PID UO UO UO ACB - Process Identifier
A_ASTADR UO UO UO ACB - Address of user AST routine
L_ASTPRM UO UO UO ACB - Parameter for user AST routine
A_KAST UO UO UO ACB - Address of special kernel AST routine
W_COMMON_FLAGS UI UI LI Common flags for the request
B_FLAGS UO UO UO Request-specific flags
B_MODE UO UO UO Access mode - currently unused
A_DEALLOC_RTN UO UO LI Deallocation routine address
L_FUNCTION UI UI LI Function code
L_ASSOCIATION_ID UO UO UO Context for the creator of the VCRP
L_CONNECTION_ID UO UO UO Context for the creator of the VCRP
Q_REQUEST_STATUS LI LI LI Completion status of request
A_CREATOR UO UO UO Usually the VCIB address of the VCRP
Q_CREATOR_DATA UO UO LO Context for the creator of the VCRP
A_STACK UO UO UO Pointer to the context stack area
T_INTERNAL_STACK UO UO UO Internal context area
A_LAN_P2BUFF UI E E Address of address of P2 buffer
L_LAN_P2BUFF_SIZE UI E E Number of bytes in P2 buffer
A_DCB_LINK E UI UO Address of first DCBE
L_BOFF E UI LI Offset to data
L_BCNT E UI LI Number of bytes of packet in the VCRP
L_TOTAL_PDU_SIZE E UI E Number of bytes in all segments
(B)L_LAN_FC E UI LI FC field value
Q_LAN_T_DEST E UI E Destination address
L_LAN_802XMT E UD E 802 only - overlay of next 3 fields
W_LAN_T_CTL E UD E 802 only - control field value
B_LAN_T_CTL_SIZE E UD E 802 only - control field value size
B_LAN_T_DSAP E UD E 802 only - DSAP field value
(B)L_LAN_T_RESP E UD E 802 only - response flag
A_LAN_R_HEADER E E LI Pointer to destination address of LAN header
T_SCRATCH D D D Scratch area
K_FIXED_LENGTH C C C Length of the required portion of the VCRP
T_DATA A A A Data area for data requests


Field name If the field name begins with a letter in parentheses, then the letter in the parentheses is used in the OpenVMS VAX name. Key to Access

All VCRP fields not defined in this specification should not be used by the upper VCM for any purpose.

The fields marked with access UO are not described in the following list. These fields are for the sole use of the upper VCM and the LAN driver never accesses them. Most upper VCMs will use these fields for private storage.

A detailed description of the remaining VCRP fields follows:

4.5 DCBE

The DCBE is used to connect a buffer containing part of a packet to a VCRP. In the past, the data portion of a packet had to be copied into the system data structure being used by the LAN driver. To prevent this copying from occurring (to save CPU cycles), the DCBE was created. This means that with the VCRP and the DCBE, one packet can span multiple buffers. This is called chaining. The term chaining is used to represent connecting a DCBE to a VCRP where the DCBE points to part of a packet. Note that the LAN header is always contained in the VCRP, and never in a DCBE.

Chaining is only possible in transmit VCRPs. Receive VCRPs always contain all of the packet within the VCRP and Management VCRPs do not have any fields that are allowed to point to a DCBE. Transmit VCRPs use the field VCRP$A_DCB_LINK to point to a DCBE.

The registered name for this data structure is DCBE$.

The DCBE fields are defined by $DCBEDEF in LIB.MLB.

Table 4-5 describes the fields of the DCBE structure.

Table 4-5 DCBE structure
FIELD NAME ACCESS DESCRIPTION
L_FLINK D Forward queue link
L_BLINK D Back queue link
W_SIZE UO Size of structure
B_TYPE UI Type of structure DYN$C_DECNET
B_SUB_TYPE UI Subtype of structure DYN$C_VCI_DCB
W_COMMON_FLAGS UI Common flags for the request
B_FLAGS UO Request-specific flags
B_MODE UO Access mode - currently unused
A_DEALLOC_RTN UO Deallocation routine address
A_DCB_LINK UI Address of next DCBE
L_SVAPTE UI System virtual address of PTE of data
L_BUFFER_ADDRESS UI System virtual address of data
L_BOFF UI Offset to data
L_BCNT UI Number of bytes of data in this buffer
K_DCB_HEADER C Length of the required portion of the DCBE


Key to Access

The fields marked with access UO are not described in the following list. These fields are for the sole use of the upper VCM and the LAN driver never accesses them. A detailed description of the remaining DCBE fields follows:


Previous Next