{
{ CML$ICA_FAILURE_DATA
{
{
{ PURPOSE:
{    The purpose of this statistic is to record failure data
{    captured by NOS/VE when accessing the ICA.
{
{ FREQUENCY: At occurrence of failure.
{
{ CONTENT:
{    The  descriptive-data portion of this statistic contains:
{
{    '<mf>.<iou>.<pp>.<channel>.<element>*<severity>*<symptom>'
{
{      where <mf> is the identification of the mainframe in the form
{        $SYSTEM_mmmm_ssss.  Where 'mmmm' is the model number of
{        Central Processor zero (CP0), e.g. 0990, and 'ssss' is the
{        serial number of that processor, e.g. 0104.
{
{      where  <iou>  is  the  string  'IOUn' where n is 0 or 1.
{        This identifies the IOU associated with the channel over
{        which the failure was reported.
{
{      where <pp> is the string 'PPn' or 'CPPn' where 'n' is the decimal
{        representation of the physical PP number used to process
{        the failing request. The C prefix is used to indicate that
{        the PP is a concurrent PP.
{
{      where <channel> is  the string 'CHn' or 'CCHn' ,
{        where 'n' is the decimal representation of the channel.
{        The C prefix is used to indicate that the channel is
{        a concurrent channel.
{
{      where <element> is the element name of the ICA being
{        accessed when the failure occurred.
{
{      where <severity> is the string 'UF' for unrecovered, 'RF' for
{        recovered, 'IF' for intermediate failure log-entry, and 'IM'
{        for informative messages.
{
{        The PP reports failure data and diagnostic results  as  an
{        intermediate  failure  log-entry  prior  to retrying an i/o
{        request.  This is due to the fact that retry attempts are
{        not done immediatly but alternately with other I/O queued.
{        An intermediate failure    log-entry   will   provide   the
{        first-failure data captured by the PP  during  the  initial
{        attempt  at  the  request  or  during  a subsequent request
{        retry.
{
{        For  all failures the counter values contain
{        the failure data corresponding  to  the first  unsuccessful
{        try of the i/o request.
{
{      where <symptom> is the symptom/action statement  provided  by
{        the system.
{
{
{    The absence or presence of information in a counter word is
{    determined by the same convention used by other peripheral
{    statistics.  That is if bit 0, (left-most bit) of a counter word,
{    is not set the counter contains a bonafide value. The convention
{    does not apply to detailed status, whose presence  is
{    determined by the length of the statistic.
{    Detailed status is not a function of the ICA hardware but
{    rather the ICA software. As such the length will vary
{    depending on the mode of operation. In OSI mode detailed status
{    is 2 words long and in ICA-I mode detailed status is 3 word long.
{    Again the length of the detailed status field is determained by
{    the length of the statistic. In either case the entire field is
{    valid data.
{
{    The counter-value portion of this statistic contains:
{
{    1.  IOU number/Logical PP number
{        Bits 46 .. 51 = IOU number
{        bit  57       = 1 if concurrent pp
{        Bits 58 .. 63 = logical PP number
{    2.  IOU number/Channel Number of Controller
{        bits 00 .. 15 = channel error status if concurrent pp
{        Bits 46 .. 51 = IOU number
{        bit  57       = 1 if concurrent pp
{        Bits 58 .. 63 = Channel Number of Controller
{    3.  Logical Operation Code
{        1 - write
{        2 - read
{        3 - read_detailed_status
{        4 - queue_previous_message
{        5 - channel_active_timeout
{        6 - read_diagnostic_command
{        7 - status_return
{        8 - read_general_status
{        9 - load_memory
{        10 - enter_idle_state
{        11 - enter_diagnostic_state
{        12 - set_ica_parameters
{        13 - dump_memory
{    4.  Log-entry Class
{        0 - Recovered Failure Report
{        1 - Unrecovered Failure Report
{        2 - Intermediate Failure Report
{        3 - Informative Message
{    5.  Failure Symptom Code (tells what the system thinks is wrong)
{
{        1 - STATE TRANSITION FAILURE - The requested state transition
{            was not honored by the ICA.  The counter STATE TRANSITION
{            indicates to which state transition was requested.  Valid
{            ICA states are, (0 = reset, 1 = diagnostic, 2 = idle, 3 =
{            operational).
{
{        2 - INVALID STATE TRANSITION - The ICA changed states without
{            a change being requested by the PP.  The counters CURRENT
{            STATE and PREVIOUS STATE indicate which state transition
{            occured.  Valid ICA states are, (0 = reset, 1 =
{            diagnostic, 2 = idle, 3 = operational).
{
{        3 - GENERAL STATUS BUSY TIMEOUT - The busy bit in general
{            status did not clear within 100 milliseconds after a read
{            general status function was accepted.  (This timeout is 6
{            seconds following a load memory function).  The counter
{            PREVIOUS FUNCTION contains the last function prior to the
{            busy timeout error.
{
{        4 - RESET BUSY TIMEOUT - The busy bit in general status did
{            not clear within 5 seconds after entering RESET state.
{            This would indicate a phase one on-board diagnostic
{            failure which could not be reported via general status.
{
{        5 - FUNCTION TIMEOUT - ICA did not accept a function (by
{            deactivating the channel) within 100 milliseconds.  TIMED
{            OUT FUNCTION contains the function on which the error
{            occured.
{
{        6 - FUNCTION TIMEOUT CHANNEL ERROR - ICA did not accept a
{            function within 100 milliseconds and the channel error
{            flag was set.  TIMED OUT FUNCTION contains the function
{            on which the error occured.
{
{        7 - INPUT CHANNEL PARITY - On an input from the ICA to PP the
{            channel-error-flag was set.
{
{        8 - OUTPUT CHANNEL PARITY - On an output from the PP to the
{            ICA, the ICA reported a parity error in status but the
{            channel-error-flag was not set.
{
{        9 - IOU OUTPUT PARITY - On an output from PP to ICA both the
{            channel-error-flag and the ICA's status indicated a
{            parity error occurred.
{
{        10 - INDETERMINATE OUTPUT PARITY - On an output from PP to
{             ICA the channel-error-flag was set but there was no
{             error reported by the ICA.  This may mean there is a
{             problem in the IOU and/or the channel and/or the ICA.
{
{        11 - RESET FREQUENCY THRESHOLD - The ICA reset frequency
{             threshold was reached and the ICA has been downed.
{
{        12 - READ DIAGNOSTIC COMMAND MESSAGE CONTENT ERROR - The
{            command read by the read diagnostic message command was
{            not valid.  Only the following hexidecimal values are
{            valid: 1000, 1010, 1020, 1040, and 1050.  The INCORRECT
{            DATA counter contains the data read.
{
{        13 - READ CONFIDENCE TEST MESSAGE CONTENT ERROR - The data
{            read by the read confidence test was not 0AAAA5555(16).
{            The INCORRECT DATA counter contains the data read.
{
{        14 - UNFORMATTED WRITE GENERAL STATUS CONTENT FAILURE - An
{             unformatted write was requested in diagnostic state but
{             the send data bit was not set in general status.
{
{        15 - FORMATTED WRITE GENERAL STATUS CONTENT FAILURE - A
{             formatted write was requested in diagnostic state but
{             the send data bit was not set in general status.
{
{        16 - READ GENERAL STATUS CONTENT FAILURE - A read was
{             requested in diagnostic state but the data available
{             bit was not set in general status.
{
{        17 - ECHO STATUS GENERAL STATUS CONTENT FAILURE - The status
{            returned following a diagnostic command to echo status
{            was not valid.  Two values are valid, they are 0A92A(16)
{            and 5115(16).  The INCORRECT DATA counter contains the
{            data read.
{
{        18 - CHANNEL FULL - The channel did not go empty within one
{             millisecond following a single word write to the ICA
{             during  diagnostic state.
{
{        19 - CHANNEL ACTIVE TIMEOUT FAILURE - The channel remained
{             active more than two seconds during the diagnostic
{             channel active timeout test.
{
{        20 - UNEXPECTED TRANSPARENT FUNCTION - The ICA received a
{             valid but unexpected (out of sequence) transparent
{             function code during diagnostic state.
{
{        21 - FORCED ERROR NOT DETECTED - A forced channel error was
{             not detected by diagnostics.  Either a PP overrun or a
{             input truncated error was expected but did not occur.
{
{        22 - CHANNEL INTERFACE FAILURE - ICA on-board diagnostics
{             detected an error in channel interface logic.  Error
{             could be in ICA board, the ICI channel or cable.
{
{        23 - ICA BOARD FAILURE - ICA on-board diagnostics detected
{             an error in the ICA board itself.
{
{        24 - NO ETHERNET TRANSEIVER POWER - This indicates that
{             either the ICA board has failed or the transeiver power
{             fuse has failed.  This error is detected by ICA on-board
{             diagnostics.
{
{        25 - ETHERNET TRANSEIVER FAILURE - this indicates either a
{             ETHERNET transeiver or transeiver cable failure.  This
{             error is detected by ICA on-board diagnostics.
{
{        26 - CHECKSUM ERROR - Checksum of load data unit failed.
{
{        27 - INVALID TRANSFER ADDRESS - The transfer address in the
{             load data unit is invalid.
{
{        28 - MESSAGE LENGTH VERIFICATION ERROR - The length specified
{            in the header of a message from the ICA doesnt match the
{            size of the record read.  The expected length of the
{            message is contained in counter EXPECTED LENGTH and the
{            actual length in counter ACTUAL LENGTH.  The case were a
{            message is longer than expected is indicated by an actual
{            length value of 80000000(16).
{
{        29 - GENERAL STATUS SEND DATA TIMEOUT - The send data bit in
{             general status was not set within one second of being
{             cleared.
{
{        30 - GENERAL STATUS AVAILABLE TIMEOUT - General status was
{             not available (channel full) within one millisecond of
{             the general status function being accepted. The counter
{             PREVIOUS FUNCTION contains the last function prior to
{             the general status available timeout.
{
{        31 - CHANNEL TIMEOUT - The channel has been active for two
{             seconds without any I/O activity.  The channel was
{             disconnected by the ICA hardware channel active
{             timeout.
{
{        32 - PP OVER RUN - The PP has output more than the 1514
{             maximum length set by the ICA processor in the DMA
{             registers. While writting the ICA configuration
{             this limit is 140 and while sending a loadfile
{             is 256k.
{
{        33 - INPUT TRUNCATED - The PP deactivated the channel before
{             reading the entire message whose length has been set in
{             the DMA registers.  This error is detected by the ICA
{             software.
{
{        34 - FORMATTED OUTPUT ERROR - The ICA failed while formatting
{             data on a formatted write.  This error is detected by
{             the ICA hardware and indicates that an incomplete header
{             record was transmitted by the PP during a formatted
{             write operation.
{
{        35 - ICA DMA CONFIGURATION ERROR - A ICA DMA channel was
{             incorrectly configured when it was started.
{
{        36 - ICA DMA OPERATION TIMING ERROR - The ICA software tried
{             to write to a ICA DMA register after the DMA channel had
{             started.
{
{        37 - ICA DMA COUNT ERROR - A ICA DMA channel was started with
{             a channel count of zero.
{
{        38 - ICA DMA EXTERNAL ABORT - A bus error or a hardware abort
{             was sent to the ICA DMA by the ICA hardware.
{
{        39 - ICA DMA SOFTWARE ABORT - The ICA software set the
{             software abort bits in the DMA channel control register.
{
{        40 - INVALID DATA PACKET - The data sent with the last
{             function was not of the proper size.  This error is
{             detected by the ICA software by comparing the length
{             specified in the message header with the length of the
{             message actually written.
{
{        41 - SYSTEM ADDRESS ERROR - The system address defined in the
{             configuration data packet sent to the ICA contained an
{             invalid system address (least significant bit non zero).
{
{        42 - MULTICAST ADDRESS ERROR - The multicast address defined
{             in the configuration data packet sent to the ICA
{             contained an invalid multicast address (least
{             significant bit zero).
{
{        43 - QUEUE LENGTH ERROR - The ETHERNET output queue length
{             contained in the configuration packet sent to the ICA is
{             invalid.
{
{        44 - INVALID STATISTICS TYPE - The statistic type contained
{             in the configuration packet sent to the ICA is invalid.
{
{        45 - INVALID THRESHOLDS - The single bit thresholds received
{             in the configuration packet sent to the ICA are invalid.
{
{        46 - INVALID REPORTING INTERVAL - The reporting interval
{             requested in the configuration packet sent to the ICA is
{             invalid.
{
{        47 - CHANNEL EMPTY - The channel did not go full within one
{             millisecond following the ICA's acceptance of a function
{             which was to be followed by an input operation.
{
{        48 - CHANNEL INACTIVE - The channel was inactive following a
{             write operation and no general status errors were
{             indicated.
{
{        49 - ICA RESET - The ICA was reset and phase one of the
{             on-board diagnostics completed.  General status will
{             include the reset reason.
{
{        50 - ICA NOT READY TIMEOUT - The ICA did not reach
{             operational state within twenty seconds of a reset.
{
{        51 - ICA OPERATIONAL - The ICA has entered operational state.
{
{        52 - INCOMPLETE TRANSFER - The input/output operation did not
{             complete as indicated by the PP's A register being non
{             zero.  However the channel remained active and no
{             general status or channel errors were indicated.
{
{        53 - MISMATCH HARDWARE TYPE - The ICA hardware model type does
{             not match with that defined in NAM/VE logical configuration.
{
{        54 - GENERAL STATUS REJECT - During diagnostic testing a general
{             status ws not rejected as expected.
{
{        55 - INDETERMINATE (channel or ICA or ethernet) General
{             status indicates an error but detailed status could not
{             be obtained or did not contain values which could be
{             decoded to one of the preceding errors.
{
{        56 - CHANNEL PROTOCOL NOT SUPPORTED - the version of channel
{             protocol supported by the ICA and NOS/VE are not compatible.
{             DETAILED STATUS contains the highest channel protocol supported
{             by the ICA(counter 16 bits 48 .. 55). The counter CHANNEL PROTOCOL
{             contains the highest channel protocol supported by NOS/VE.
{
{        57 - INVALID FLOW CONTROL - The flow control value indicated in
{             general status (counter 15 bits 61 - 63) is invalid. Valid
{             flow control values are (0 = normal flow control off,
{             1 = normal flow control on).
{
{        58 - MAXIMUM SIZE EXCEEDED - The message length indicated in the
{             record header is greater than the maximum size allowed.
{             Actual Length will contain the length of the record.
{
{        59 - ETHERNET ADDRESS CHECKSUM ERROR - The checksum transfered
{             with the system address is incorrect.
{
{        60 - WRITE LENGTH ERROR - The length of the record received
{             by the ICA did not match the length indicated in the
{             headers.
{
{        61 - ICA MEMORY PARITY ERROR - An ICA memory parity error was
{             detected on the Input/Output operation.
{
{        62 - ICA MEMORY ADDRESS ERROR - An ICA memory address error
{             was detected on the Input/Output operation. This error
{             could indicate an ICA software problem.
{
{    6. Request Retry Count - The number of times the PP driver
{       retried the i/o request. (0..3)
{
{    7. Timed Out Function - The function which caused a function
{       timeout. (0 .. 0ffff(16))
{
{    8. Previous Function - The function executed prior to a general
{       status busy timeout error. (0 .. 0ffff(16))
{
{    9. Incorrect Data - Data read if verification error.
{       (0 .. 0ffffffff(16))
{
{    10. State Transition - if state transition error.  Valid ICA
{        states are (0 = reset, 1 = diagnostic, 2 = idle, 3 =
{        operational).
{
{    11. Current State - If invalid state transition error.
{        Valid states are (0 = reset, 1 = diagnostic, 2 = idle, 3 =
{        operational).
{
{    12. Previous State - If invalid state transition error.
{        Valid states are (0 = reset, 1 = diagnostic, 2 = idle, 3 =
{        operational).
{
{    13. Expected Length - If error is message length
{        verification error. (0 .. 0ffffffff(16))
{
{    14. Actual Length - If error is message length
{        verification error. (0 .. 0ffffffff(16))
{
{    15.  General Status.  General status is always returned if
{        available. (0 .. 0ffff(16))
{
{    16 .. 18 Detailed Status.  Detailed status is always returned if
{        the ICA is operational and detailed status can be obtained.
{        See note above concerning the length of this feild.
{

  CONST
    cml$ica_failure_data = cmc$min_ecc + 7000;

*copyc cmc$condition_limits

