| United States-English |
|
|
|
![]() |
ACC Programmer's Reference Guide > Chapter 3 ZCOM Tables and Data StructuresInterface Table |
|
The interface table shown in Table 3-13 “Interface Table” is a structure that has one instance for each Mux interface card defined in the TTGEN configuration file. It is primarily used by the DAM for controlling the backplane interaction with the Mux interface card. (zift_type) Table 3-13 Interface Table
In the following definitions of the different fields, there are references to $PORT, $FIRQ and $STDT, transactions. For more information on these transactions, refer to the backplane protocol descriptions. ISTIME - Time of last ZMON restart/shutdown this card. This field contains the time (seconds since the Epoch) when ZMON last processed a restart or shutdown request for this card. It is used internally by ZMON to detect and ignore multiple restart/shutdown requests. BC1_ADDR - First level bus converter address for this MUX interface card For HP9000 Series K systems the address is of the form bc1/bc/s. This field refers to the first level bus converter address indicated as bc1. For other systems this field is initialized to zero. BC_ADDR - Bus converter address for this MUX interface card This field contains the I/O bus converter address representing the I/O bus that the MUX interface card is installed in. On systems that contain only one I/O bus (S8x7, I30, H50, etc), this field is initialized to zero. CARD_ADDR - Card address for this MUX interface card This field contains the I/O card address representing the I/O slot number that the MUX interface card is installed in. It is initialized by TTGEN from the slot value specified in the MUX statement of the TTGEN configuration file. INHPA - Interface HPA value (from TTGEN) The HPA value is built as follows: Table 3-14 Interface HPA Value INHPA
For the Mux interface in an HP-PB standard backplane, the card address is 4 x slot number. In the TTGEN configuration file, the card address is given as BUS:SLOT (e.g., 0:48), or BUS:BUS:SLOT. Here the 10-bit Bus Address field is translated from the 1's complement of BUS (i.e., 1023-BUS). The Slot field is specified by SLOT/4. The Module, Page, Register Set, and Reg No. fields are set to 0. For the example of BUS:SLOT=0:48, the HPA is 0xFFFB0000. For EISA standard backplanes the address is the slot number. IFTYPE - Interface card type Specified in TTGEN through the interface definition (the keyword MUX) with the following results: IFTYPE = ZCOM_ITYPE_Z7200A(6) - Z7200A HP-PB ACC 8-channel Mux This field allows for the future support of extra interface types. IFSTAT - interface card status This word indicates the current status of the Mux card. It is updated by the driver. Bit 15 indicates whether the card is usable (when set) or not (when cleared). Table 3-15 Interface Card Status IFSTAT
When the card status is down (i.e., ZCOM_IFSTAT_DWN), it can only be resumed through a control request to the driver which will reset the driver and the interface card (via "zmon restart"). ISCHDL - Scheduler event flags The scheduler uses this word to store the event flags that control the state of the backplane. ITCNTR - Interface terminal counter The terminal counter is the actual number of terminals defined on this Mux interface card. IFRTRY - Reset retry count This is used to count the number of times the Mux interface has been reset due to a backplane timeout, or firmware failure. It is incremented by ZMON each time the Mux card is reset by a request from the DAM. If it reaches an unsatisfactory level, the Mux card will be disabled (set down) by ZMON. The driver will decrement the retry count if it is not zero after every 30 successful status $STDT replies (i.e., every 5 minutes). If an unstable Mux interface fails and restarts too often, the ZCOM subsystem will mark it as "down" and stop using it. IRSERR - Restart error count This field contains the count of the number of errors which occurred during the last restart or enable. These errors are due to $PORT or $TERM commands and will be separately reported to ZMON. This field is kept for information purposes only. IFSTCN - Status update request count This counts the number of $STDT replies until IFRTRY will be decremented. INTFNO - Interface card number This is the interface number that was specified in the Mux statement of the TTGEN configuration file. IMAXPORTS - Maximum number of ports on card. This field contains the maximum number of ports supported by this specific ACC interface card. IMAXSUBC_PORT - Maximum number of subchannels per port. This is the maximum number of subchannels supported on each port of this ACC interface card. The minimum value of this field is 1 (e.g. 2/8-channel cards). IMAXSUBC_CARD - Maximum number of subchannels on card. This field contains the number of subchannels supported by this card. For a non-E1/T1 card, this value should be the same as the imaxports field. IMAXTERMS - Maximum number of terminals allowed on card. This field contains the maximum number of terminal ZLUs that may be configured on this card. IFNAME - Firmware download file name This contains the full path name of the firmware file to be downloaded into this Mux card whenever the ZCOM subsystem is started, the Mux card is reset, or is recovering from a powerfail or firmware failure. It is initialized from the information supplied in the Mux statement of the TTGEN configuration file. This field is a maximum of 256 bytes including the null terminator byte. IFFLDT, IFFMNM - Download file link time and module name These two fields contain the time (since Epoch) when the download firmware file is linked (by zlink program) and its module name. These are set up by zlink and stored in the download file. When ZMON loads the file to the Mux interface card, it extracts them from the file and puts them into these two fields. The MX command in zmntr displays these fields. IFRUDT, IFRMNM, IFRREV - ROM update time, module name and revision code The ZCOM subsystem ROM contains its module name, revision code and update time in byte locations 40~5D hex. ZMON reads these bytes from the Mux interface card when it loads the firmware file, and stores them in these fields. The MX command in zmntr displays these fields. The time is translated from the ROM ASCII time stamp and stored in Epoch format. IFWINFO - Firmware run-time information word This is a 16-bit field refreshed by the DAM once every 10 seconds with the runtime information word from the Mux firmware. It contains the average percentage activity of the Mux interface for the previous 10 seconds and the type code of the Mux front panel connected. IFBOFF - Buffer pointer adjusted offset Contained with the interface table are buffers that are used for DMA transfers between the driver and the Mux card. These buffers are a multiple of 64 bytes and must be aligned on a 64-byte address boundary. This field contains the byte offset needed to cause the buffers to start on a 64-byte boundary. TTGEN initializes this field with the byte offset value. INTFCQ - Interface control queue (zqhd_type) This queue contains pending port requests from application programs. The operation of this queue is described in the section on the DAM. This format of the queue header structure (zqhd_type) is described later in this chapter. IFDMAQ - DMA receive buffer queue (zqhd_type) Holds the current receive buffer during an $RXDT DMA transfer. This format of the queue header structure (zqhd_type) is described later in this chapter. TXCX_HEAD - Pointer to head of the express queue linked lists TXCA_HEAD - Pointer to head of the high-priority queue linked lists TXCB_HEAD - Pointer to head of the low-priority queue linked lists ITXLSTX - Pointer to express terminal list array (in union) ITXLSTA - Pointer to high-priority terminal list array (in union) ITXLSTB - Pointer to low-priority terminal list array (in union) IPLIMIT - Pointer to port/subchannel unack Tx limit array (in union) IPBYTES - Pointer to port/subchannel unack Tx size array (in union) IPSTAT - Pointer to port/subchannel status array (in union) IPCNTR - Pointer to # of terminals per port/subchannel array (in union) IPORTN - Pointer to port configuration array (in union) IFPLOOK - Pointer to PTT interrupt vector array. IFCMDBP - Pointer to current backplane command buffer (in union) These fields are used internally by the ZCOM subsystem. CARD - Interface card specific data structures (union) This field is a union which contains two structures. These structures hold information that are specific to the type of interface card associated with this IFT entry. The structure card.mmp is used if the IFT is associated with an 8-port PCI or E1/T1 interface card. Otherwise, the card.bsp structure is used for 2/8-channel NIO and EISA interface cards. CARD.MMP has the following fields shown in Table 3-16 “CARD.MMP Structure”. Table 3-16 CARD.MMP Structure
CARD.BSP has the following fields shown in Table 3-17 “CARD.BSP Structure”. Table 3-17 CARD.BSP Structure
The fields for both the card.mmp and card.bsp structures are described below. In many cases, the field names in the two structures are the same and in such cases, their function is identical. Only the number of elements in the array is different. The itxlstx through iportn fields are arrays indexed by the communication channel. For the 2/8-port ACC cards (e.g. card.bsp), each element in the array represents a physical port. For the 4-port E1/T1 ACC cards, these arrays are indexed by a combination of port and subchannel. Specifically elements 0-31 represent port 0 and subchannels 0 to 31; elements 32-63 represent port 1 and subchannels 0 to 31, etc. ITXLSTX - Express transmit list headers (zptl_type) This field is an array of list headers for the express transmit requests associated with each port or subchannel of the Mux card. Each list header represents the head of a linked list of PTTs that have pending express transmit requests waiting to be sent to the Mux card. The list linkage is maintained through the PTTXLX pointer in each physical terminal table. The express transmit requests themselves are linked to the queue maintained by the PTTXQX field in each PTT. The structure of the list header is shown below. There is one copy of this list header for each port or subchannel on the Mux interface. Table 3-18 ITXLSTX Express Transmit List Headers
ITXLSTA - High priority transmit list headers (zptl_type) This field is an array of list headers for the high priority transmit requests associated with each port or subchannel of the Mux card. Each list header represents the head of a linked list of PTTs that have pending high priority transmit requests waiting to be sent to the Mux card. The list headers in this array function identically to ITXLSTX only for the high priority transmit requests. A terminal may be linked to ITXLSTX, ITXLSTA and ITXLSTB all at the same time, if it has express, high, and low priority transmit requests in progress. ITXLSTB - Low priority transmit list headers (zptl_type) The list headers in this array function identically to ITXLSTA only for the low priority transmit requests. A terminal may be linked to ITXLSTX, ITXLSTA and ITXLSTB all at the same time, if it has express, high, and low priority transmit requests in progress. IPLIMIT - Port unacknowledged transmit limit (in bytes) This array contains the limit (in bytes) of all unacknowledged transmit messages to terminals belonging to the same port or subchannel of this interface. This array contains one element, one for each port or subchannel of the Mux card. If the DAM issues a transmit request to the Mux card and the Mux card does not have enough free buffers to hold the request data, the Mux will reject the request with an "out of buffers" error. The DAM will retry the request after an unacknowledged transmit request completes. This field is used to minimize the number of retries (and thereby increase overall performance) by imposing a limit on the size of unacknowledged transmit requests. This array is initialized by TTGEN from the default value hpiplim in the ZCOM header. This value is configured through the Port-Limit or E1T1-Port-Limit parameter in the TTGEN configuration file. IPBYTES - Port unack TX size (in bytes) This array is maintained by the DAM and keeps track of the number of 256-byte buffers currently in use by all unacknowledged transmit messages to a port of this interface card. The ipbytes array contains one element for each port/subchannel on the Mux card. The DAM compares the iplimit value for a port with the ipbytes value times 256 to determine whether it should issue a transmit request immediately or wait until a previously issued transmit request completes. The DAM uses this method to predict when the Mux card will reject a request with an “out of buffers” error and can thereby avoid sending a request now which has a high probability of needing to be retransmitted later. IPENDG_BUFS - Total pending transmit size (in # of buffers) This field is used internally by the ZCOM drivers. IPSTAT - Port/Subchannel status Depending on the card type this interface table is for, this ipstat field either contains the status of each subchannel in a 4-port E1/T1 ACC card, or the status of each port in a non-4-port E1/T1 ACC card (e.g., 2-port card or 8-port ACC card). The individual ipstat bits are handled as follows:
IPCNTR - Terminal count per port/subchannel This field contains the number of terminals defined on each port/subchannel of this Mux interface card. It is initialized by TTGEN based on the number of Term entries in the TTGEN configuration file and is kept for informational purposes only. IPORTN - Port configuration buffer (zpconf_type) This array contains the configuration bytes for each port on the Mux card. The Port statements in the Port-Definition section of the TTGEN configuration file are used to define the initial values of this array. Each element of the array is associated with a single port on the Mux card. Each element can be dynamically configured by calling the zport routine. The layout is similar to the data portion of the $PORT backplane transaction command for the 2/8-channel ACC cards and is as shown in Table 3-19 “Port Configuration Buffer IPORTN”. Table 3-19 Port Configuration Buffer IPORTN
The layout for the 4-channel E1/T1 ACC card is as follows: Table 3-20 4-Channel E1/T1 ACC Card Format
ISUBCH_BUF - Port subchannel configuration buffer (subchbuf_def) This array contains the subchannel configuration bytes for each port on the ACC E1/T1 4-port Mux card. The Subch statements in the Subchannel-Definition section of the TTGEN configuration file are used to define the initial values of this array. Each element of the array is associated with a single port on the Mux card. Each element can be dynamically configured by calling the zconfig routine. The structure layout is as shown in Table 3-21 “Port Subchannel Configuration Structure”. Table 3-21 Port Subchannel Configuration Structure
Where: Each element of the timeslot array has the structure shown
in Table 3-22 Timeslot Array Element Structure
Each element of the subchannel specification array has the following structure: Table 3-23 Subchannel Specification Array Element Structure
IFIRQBP, IRESPBP, ISTDTBP - DMA reply buffer pointers (char *) These fields point to the corresponding buffers kept at the end of the interface table that are used by the DAM for DMA operations. The actual values of these pointers are initialized at ZCOM subsystem initialization time by the LDM. These pointers are chosen by the LDM so that each buffer is 64-byte aligned. (The buffers must be aligned so that the DMA may read/write directly to them). These fields are not used for ACC E1/T1 cards. IFPNTR - Pointer to active physical terminal table This field contains the address of the currently active physical terminal table entry within this interface table. This field is not used for ACC E1/T1 cards It is maintained by the DAM. IFCMDBUF - Current backplane command buffer This field is the buffer area for DMA transfer of a backplane command to the Mux interface card. The actual area being used is offset by the number of bytes specified in IFBOFF. This area is accessed by the pointer field IFCMDBP. IFIRQBUF, IRESPBUF, ISTDTBUF - DMA response buffers These are response buffers that are written to by DMA read requests to the Mux interface card. The FIRQ buffer contains the results of an $FIRQ backplane transaction. The Response buffer contains the response that provides the DAM with the completion status from the Mux card firmware. The Status buffer contains the data returned from a $STDT transaction. This data is updated into the physical terminal tables by the DAM. The actual area being used is offset by the number of bytes specified in IFBOFF. This area is accessed by the pointer set up in the corresponding pointer fields IFIRQBP, IRESPBP, ISTDTBP. These fields are not used for ACC E1/T1 cards. ISCRATCH - Scratch area for buffer alignment This area is needed to insure that DMA buffers can be aligned on a 64-byte boundary. This is a requirement of the hardware. IFPLOOK - Physical terminal table lookup This table is used by the DAM during FIRQ processing to determine the physical terminal table address based on the port and terminal number passed back from the Mux interface. It is indexed by the value [(port number * 8) + terminal number] for the 2/8-channel NIO and EISA ACC cards. For the ACC E1/T1 and 8-Port PCI cards, it is simply indexed by the terminal number. The DAM uses this table as an interrupt vector to the PTT associated with an unsolicited interrupt (FIRQ). This table is variable in size and is dynamically allocated from HP-UX kernel memory. Usually only a few of the values in the array are used. Unused entries are null filled. The LDM creates and initializes this table during startup of the ZCOM subsystem. This table is not accessible by user space applications. This field is an array of pointers, which will be accessed by an array index. ICFG_LKUPT - Optional E1/T1 tunable parameters (zcfg_lookup_t) This structure contains the optional E1/T1 tunable parameters that allow you to fine tune the allocation of resources (memory) within the E1/T1 card. Specifically, these parameters allow you to fine tune how card memory is divided up between internal tables and I/O buffers. These parameters may be specified in the TTGEN Interface-Definition section. This structure has the fields shown in Table 3-24 “Optional E1/T1 Tunable Parameters”. Table 3-24 Optional E1/T1 Tunable Parameters
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||