NOF API verbs

This chapter provides the following information for each NOF API verb:

  • Description of the verb's purpose and usage
  • Whether the verb can be issued to an active node, an inactive node, the domain configuration file, or the SNA network data file (unless otherwise stated, verbs may be issued either to an active node or to an inactive node)
  • Verb control block (VCB) structure, as defined in the NOF API header file nof_c.h
  • Parameters supplied to the verb by the application
  • Parameters returned to the application
  • Error return codes for unsuccessful execution

Most parameters supplied to and returned by the NOF interface are hexadecimal values. To simplify coding, these values are represented by meaningful symbolic constants defined in the header file values_c.h, which is included by the NOF header file nof_c.h. For example, the opcode parameter of the ACTIVATE_SESSION verb is the hexadecimal value represented by the symbolic constant AP_ACTIVATE_SESSION. The file values_c.h also includes definitions of parameter types such as AP_UINT16 that are used in the NOF VCBs.

It is important that you use the symbolic constant and not the hexadecimal value when setting values for supplied parameters, or when testing values of returned parameters. This is because different Linux systems store these values differently in memory, so the value shown may not be in the format recognized by your system.

The error return codes described in this chapter are specific to each verb. Additional return codes, which are common to all NOF API verbs, are described in Common return codes.

NOF API indications, which the application can accept by registering using the REGISTER_INDICATION_SINK verb, are described separately in NOF Indications.

Note: The NOF VCBs contain many parameters marked as reserved; some of these are used internally by the CS Linux software, and others are not used in this version but may be used in future versions. Your application must not attempt to access any of these reserved parameters; instead, it must set the entire contents of the VCB to zero to ensure that all of these parameters are zero, before it sets other parameters that are used by the verb. This ensures that CS Linux will not misinterpret any of its internally-used parameters, and also that your application will continue to work with future CS Linux versions in which these parameters may be used to provide new functions.

To set the VCB contents to zero, use memset:

memset(nofvcb, 0, sizeof(nofvcb));