Requests sent by the client to the server: SYSTCPER service

For the SYSTCPER service, the client request record is in the following format, defined in ezbytmih.h (an assembler mapping for this structure is in EZBYTMIA):
struct tmi_zert_request                /* zERT info server request */
{
  struct tmi_header tmierrq_hdr;       /* Header; id=TmiHr_ErRqst */
  unsigned int tmierrq_list  :1;       /* Requests connection list */
  unsigned int tmierrq_detail:1;       /* Requests detail records  */
  unsigned int tmierrq_rsvd1 :30;      /* Reserved, set to 0 */
  char         tmierrq_rsvd2[12];      /* Reserved, set to 0 */
};
The client should initialize the fields of this request structure as follows:
  • Initialize tmierrq_hdr using the length of tmi_zert_request, the appropriate record ID (TMIHr_ErRqst), and the correct version (TMIHr_Version1).
  • Initialize the tmierrq_list and tmierrq_detail fields as described in the following list.
  • Initialize all remaining fields to 0.
The two fields tmierrq_list and tmierrq_detail control the data that the SYSTCPER server sends to the client. These fields should be set as follows:
  • tmierrq_list

    If set, the server sends the client zero or more tokens that represent data buffers that contain a list of all established TCP and EE connections at the time the client connected. These connections are represented as type 119 zERT connection detail records with SMF119SC_SAEvent_Type set to 1 (connection initiation). If this field is set to 0, no such list is sent to the client.

  • tmierrq_detail

    If set, the server sends tokens to the client. These tokens represent data buffers that contain type 119 zERT connection detail records (subtype 11), describing the cryptographic protection attributes of the TCP and EE connections established by the TCP/IP stack. If this field is set to 0, the server does not send any tokens for zERT connection details.

The SYSTCPER server waits until it has received this entire record from the client before it starts processing connection information on the client's behalf. If the client does not send a complete record, then the server never reports data to the client, because the client has not completed initialization. If the server receives a record with an unrecognized version, a bad length, or a bad eyecatcher, then it sends a termination record (see Records sent by the server to the client: Termination record) with tmit_termcode = EINVAL to the client, and closes the connection.