Fibre Channel (FC) statistics

The following table lists:
  • Performance statistics calculations accomplished by the CIM agent
  • Respective fields in the statistics file that is reported for individual FC ports.
Table 1. Calculations
CIMOM field Calculation
portType PORT_TYPE_TAG
deviceId

PORT_FC_WWPN_TAG

portId PORT_ID_TAG
nodeId NODE_ID
LinkFailures LINK_FAILURES
LossOfSignalCounter LOSS_SIGNAL
LossOfSyncCounter LOSS_SYNC
PrimitiveSeqProtocolErrCount PRIMITIVE_SEQ_PROTOCOL_ERRCOUNT
CRCErrors INVALID_CRC
InvalidTransmissionWords INVALID_WORD
BBCreditZeroTime ZERO_BUFFER_CREDIT_COUNTER
writeBytesTransmitted BYTES_TO_CONTROLLER + BYTES_TO_CLUSTERNODE + BYTES_TO_HOST + BYTES_TO_OTHER_CLUSTERNODE
BytesReceived BYTES_FROM_CLUSTERNODE + BYTES_FROM_CONTROLLER + BYTES_FROM_HOST + BYTES_FROM_OTHER_CLUSTERNODE
DataTransmissionDelayCount DATA_TRANS_DELAY_COUNT
DataTransmissionDelayTime DATA_TRANS_DELAY_TIME
DataTransmissionDelayMeasured DATA_TRANS_DELAY_MEASURED
Var File name XML field Description
PORT_ID_TAG Nn_stats "id" Indicates the port identifier for the node
PORT_TYPE_TAG Nn_stats "type"  
PORT_FC_WWPN_TAG Nn_stats "wwpn" Indicates the worldwide port name for the node
LINK_FAILURES Nn_stats "lf" Indicates a link failure count
LOSS_SYNC Nn_stats "lsy" Indicates the loss-of-synchronization count
LOSS_SIGNAL Nn_stats "lsi" Indicates the lost-of-signal count
PRIMITIVE_SEQ_PROTOCOL_ERRCOUNT Nn_stats "pspe" Indicates the primitive sequence-protocol error count
INVALID_WORD Nn_stats "itw" Indicates the number of transmission word counts that are not valid
INVALID_CRC Nn_stats "icrc" Indicates the number of CRC that is not valid
ZERO_BUFFER_CREDIT_COUNTER Nn_stats "bbcz" Indicates the total time in microseconds for which the buffer credit counter was at zero. This statistic is only reported by 8 Gbps Fibre Channel ports. For other port types, this statistic is 0
BYTES_FROM_CLUSTERNODE Nn_stats "lnbr" Indicates the bytes received to other nodes in the same cluster
BYTES_FROM_CONTROLLER Nn_stats "cbr" Indicates the bytes received from controllers
BYTES_FROM_HOST Nn_stats "hbr" Indicates the bytes received from hosts
BYTES_FROM_OTHER_CLUSTERNODE Nn_stats "rmbr" Indicates the bytes received to other nodes in the other clusters
BYTES_TO_CLUSTERNODE Nn_stats "lnbt" Indicates the bytes transmitted to other nodes in the same cluster
BYTES_TO_HOST Nn_stats "hbt" Indicates the bytes transmitted to hosts
BYTES_TO_CONTROLLER Nn_stats "cbt" Indicates the bytes transmitted to disk controllers
BYTES_TO_OTHER_CLUSTERNODE Nn_stats "rmbt" Indicates the bytes transmitted to other nodes in the other clusters
DATA_TRANS_DELAY_MEASURED Nn_stats "dtdm" Indicates the number of transfers that had their data transmission delay measured
DATA_TRANS_DELAY_COUNT Nn_stats "dtdc" Indicates the number of transfers that experienced excessive data transmission delay
DATA_TRANS_DELAY_TIME Nn_stats "dtdt" Indicates the total time in microseconds for which data transmission was excessively delayed

The following code example shows an illustration of the calculations in a scripting form.

Request
def get_latest_cimom_sample_fc_port_stats(url, username, password):
    xml = get_latest_stats(url, username, password)
 
    fields = {
        "LINK_FAILURES": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "lf",
            "value": 0},
        "LOSS_SYNC": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "lsy",
            "value": 0},
        "LOSS_SIGNAL": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "lsi",
            "value": 0},
        "PRIMITIVE_SEQ_PROTOCOL_ERRCOUNT": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "pspe",
            "value": 0},
        "INVALID_WORD": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "itw",
            "value": 0},
        "INVALID_CRC": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "icrc",
            "value": 0},
        "ZERO_BUFFER_CREDIT_COUNTER": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "bbcz",
            "value": 0},
        "BYTES_FROM_CLUSTERNODE": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "lnbr",
            "value": 0},
        "BYTES_FROM_CONTROLLER": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "cbr",
            "value": 0},
        "BYTES_FROM_HOST": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "hbr",
            "value": 0},
        "BYTES_FROM_OTHER_CLUSTERNODE": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "rmbr",
            "value": 0},
        "BYTES_TO_CLUSTERNODE": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "lnbt",
            "value": 0},
        "BYTES_TO_HOST": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "hbt",
            "value": 0},
        "BYTES_TO_CONTROLLER": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "cbt",
            "value": 0},
        "BYTES_TO_OTHER_CLUSTERNODE": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "rmbt",
            "value": 0},
        "DATA_TRANS_DELAY_MEASURED": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "dtdm",
            "value": 0},
        "DATA_TRANS_DELAY_COUNT": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "dtdc",
            "value": 0},
        "DATA_TRANS_DELAY_TIME": {
            "filename": "Nn_stats",
            "element": "port",
            "field": "dtdt",
            "value": 0}
    }
    populate_fields(xml, fields)
    cimom_fields = {
        'LinkFailures': fields['LINK_FAILURES']['value'],
        'LossOfSignalCounter': fields['LOSS_SIGNAL']['value'],
        'LossOfSyncCounter': fields['LOSS_SYNC']['value'],
        'PrimitiveSeqProtocolErrCount': fields['PRIMITIVE_SEQ_PROTOCOL_ERRCOUNT']['value'],
        'CRCErrors': fields['INVALID_CRC']['value'],
        'InvalidTransmissionWords': fields['INVALID_WORD']['value'],
        'BBCreditZeroTime': fields['ZERO_BUFFER_CREDIT_COUNTER']['value'],
        'writeBytesTransmitted': fields['BYTES_TO_CONTROLLER']['value'] + fields['BYTES_TO_CLUSTERNODE']['value'] + fields['BYTES_TO_HOST']['value'] + fields['BYTES_TO_OTHER_CLUSTERNODE']['value'],
        'BytesReceived': fields['BYTES_FROM_CLUSTERNODE']['value'] + fields['BYTES_FROM_CONTROLLER']['value'] + fields['BYTES_FROM_HOST']['value'] + fields['BYTES_FROM_OTHER_CLUSTERNODE']['value'],
        'DataTransmissionDelayCount': fields['DATA_TRANS_DELAY_COUNT']['value'],
        'DataTransmissionDelayTime': fields['DATA_TRANS_DELAY_TIME']['value'],
        'DataTransmissionDelayMeasured': fields['DATA_TRANS_DELAY_MEASURED']['value']
    }
    return cimom_fields

pprint.pprint(get_latest_cimom_sample_fc_port_stats(url, username, password))
Response

{'BBCreditZeroTime': 0,
'BytesReceived': 1710209,
'CRCErrors': 0,
'DataTransmissionDelayCount': 32,
'DataTransmissionDelayMeasured': 20098258,
'DataTransmissionDelayTime': 998,
'InvalidTransmissionWords': 7,
'LinkFailures': 6,
'LossOfSignalCounter': 0,
'LossOfSyncCounter': 6,
'PrimitiveSeqProtocolErrCount': 0,
'writeBytesTransmitted': 628974}