Layout of SMF records for the channel initiator

The layouts of channel accounting data (SMF type 116, subtype 10) and channel initiator statistics data (SMF type 115 , subtype 231 records) are described in this topic.


Processing the SMF data for the CHINIT

The data written to SMF is in the standard triplet format.


Accounting data SMF type 116, subtype 10

There is the standard SMF header.

The triplets are mapped by qws5 in csqdsmfc.h and csqdqws5.macro, and have the following layout:

  • 4 bytes offset to the QWHS
  • 2 bytes length of the QWHS
  • 2 bytes count of the number of instances of QWHS
  • 4 bytes offset to the QCST
  • 2 bytes length of the QCST
  • 2 bytes count of the number of instances of QCST
The QWHS mapped is mapped by csqdqwhs.macro and csqdsmfc.h, and has the following key fields:

  • qwhsnsda 1 byte, count of the number of self defining section.
  • qwhssmfc 1 bit. If this is on there are multiple SMF records containing information for this interval. If this is off, this is the last or only record.
  • Qwhstime 8 bytes in STCK format. The local time of the start of the interval.
  • qwhsdurn 8 bytes in STCK format. The duration from the start of the interval to the end of the interval.
  • Qwhsstck 8 bytes STCK format. The end of the interval in GMT.

The QCST is mapped by csqdsmfc.h and csqdqcst.macro.


Statistics data SMF type 115, subtype 231

There is the standard SMF header.

The triplets are mapped by qwsx in csqdsmfc.h and csqdqwsx.macro, and have the following layout:

  • 4 bytes offset to the QWHS
  • 2 bytes length of the QWHS
  • 2 bytes count of the number of instances of QWHS
CHINIT Control Information, number of channels. and so on is mapped by csqdsmfc.h and csqdqcct.macro:

  • 4 bytes offset to the QCCT
  • 2 bytes length of the QCCT
  • 2 bytes count of the number of instances of the QCCT
Dispatcher tasks are mapped by csqdsmfc.h and the QCT_DSP structure in the CSQDQCTA macro:

  • 4 bytes offset to the QCT_DSP
  • 2 bytes length of the QCT_DSP
  • 2 bytes count of the number of instances of the QCT_DSP
Adapter tasks are mapped by csqdsmfc.h and the QCT_ADP structure in the CSQDQCTA macro:

  • 4 bytes offset to the QCT_ADP
  • 2 bytes length of the QCT_ADP
  • 2 bytes count of the number of instances of QCT_ADP
SSL tasks are mapped by csqdsmfc.h and the QCT_SSL structure in the CSQDQCTA macro:

  • 4 bytes offset to the QCT_SSL
  • 2 bytes length of the QCT_SSL
  • 2 bytes count of the number of instances of QCT_SSL
DNS task is mapped by csqdsmfc.h and the QCT_DNS structure in the CSQDQCTA macro:

  • 4 bytes offset to the QCT_DNS
  • 2 bytes length of the QCT_DNS
  • 2 bytes count of the number of instances of QCT_DNS

Typically one record contains all the data. If there are a large number of dispatchers, adapters, or SSL tasks, the data is split over more than one record.

If this happens, the count of instances of the dispatchers can be zero, and information about a group of TCBs can be spread across multiple records. For example the number of instances can look like this:
Table 1. Example data
Count First record Last record
QWHS 1 1
QCCT 1 0
QDSP 50 5
QADP 0 10
QSSL 0 3
QDNS 0 1

This example shows that there were 55 dispatcher TCBs within the SMF interval.

The field qwhs.qwhssmfc indicates a continuation. If this bit is on, there are multiple SMF records containing information for this interval. If this bit is off, this is the last or only record.